Mercurial, MercurialEclipse, TortoiseHg and SSH Server with Win7

There is problem with the Usercredentials passed by MercurialEclipse to a remote SSH repository. There are two ways to fix this issue, one is to authenticate with a public/private keypair and the use of TortoisePlink/PuttyPlink, the other way is to install openSSh on the Windows machine with cygwin and the openSSH package.

I decided to use the public/private Key authentication with Plink because it’s more comfortable in conjunction with Pageant because you only need to give your password only once, despite if youre using Tortoise or Eclipse. Here is the HowTo:

1. Set up the public/private key authentication as described in the Post here.

### To get TortoiseHg working: ###
2. Find out the path to TortoisePlink.exe. It should be located in your TortoiseHg install directory
3. Locate the path to your private key file (.ppk)
4. To tell TortoiseHg and MercurialEclipse to connect with ssh and the public/private keypair you need to add a config value in
the mercurial.ini. Edit it via TortoiseHg -> File -> Settings -> Edit File and add the following lines
[ui]
username = dwasser
ssh=”C:\Programme\TortoiseHg\TortoisePlink.exe” -ssh -agent -i “C:\Dev\Putty\dwasser.ppk”

Here is a screenshot of the EditFile dialog (be careful, use the String above it contains the -agent property which means that Pageant should be used)

Sometimes there is some trouble with the Windowspath to TortoisePlink.exe. If so, extend your Path Variable to the
Tortoise directory and set the ssh value in the mercurial.ini to:
ssh=TortoisePlink.exe -ssh -agent -i “C:\Dev\Putty\dwasser.ppk”

This is important, because this configuration will be used by TortoiseHg

    and

MercurialEclipse. It tells the Applications to use TortoisePlink as “ssh bridge”.
If you want to use cygwin with openSSH, install it, add the folder cygwin/bin to the PATH variable
of Windows and use the following configuration instead : ssh = C:\yourpathto\cygwin\bin\ssh

5. Now all Actions should work. For example you should be able to clone a repository by clicking
File -> clone and enter an Url in this way ssh://dwasser@192.168.103.64//sources//myproj . Don’t forget to mask the slashes!!

### To get MercurialEclipse working: ###
6. Nothing special here, just create a new Project of type mercurial and enter the URL. Also use an Url of this type: ssh://dwasser@192.168.103.64//sources//myproj

Analyzed the MyEclipse 7.5 deployment problem

My colleague an me analyzed the MyEclipse 7.5 deployment problem. We think there is missing a possibility to disable the Export/Deployment of related Projects
under WebProject->Properties->Java Build Path->Projects,
like it is possible for jars under WebProject->Properties->Java Build Path->Order and Export.

In our Project structure we have several webprojects and many Java projects
which are needed by the webprojects. We deploy these projects as jar files
into different lib folders of the server. This job is done by an ant task.

The jar projects are attached to the webprojects by the jar files under
WebProject->Properties->Java Build Path->Order and Export with
an unchecked export check box.
Some of these Projects are also attached to the webproject via
WebProject->Properties->Java Build Path->Projects.

This causes the new deployment builder to deploy the classes
of these projects into the webproject .war too. Therefore the project
is deployed twice – once as .class files in the war and secondly as .jar in a
lib folder of the server. The server crashes on start up.

The old deployment builder doesn’t care about these projects,
everything worked as supposed.

I assume that the new deployment builder looks into the .project
files of the Java projects. There he finds an entry
com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder
which causes this instance of the deployment bulider to deploy the
Java Project into the webproject of the calling deployment builder.

If I remove the entry in the .project file and everything works fine.
Unfortunately, after some starts of MyEclipse, the entry is rewritten
by MyEclipse.

As solution I can remove the project dependency’s under
WebProject->Properties->Java Build Path->Projects.
But why is Eclipse deploying these projects into my server? I think
there must be a possibility to tell eclipse not to deploy these projects.

Maybe the Genuitec guys will provide a solution…

Problems with redeployment using MyEclipse 7.5

Two weeks ago I upgraded to MyEclipse 7.5 and run into problems with the automatic server redeployment. The webprojects automatic deployment copies class and configuration files of required projects into the projects .war.
With all the wrong classes in the deployment, my webserver crashes while starting.
This happens despite a correct configuration of MyEclipse.
The deployment configuration is set to:
“Ignore dependent Java projects” but the DeploymentBuilder shows the behavior of the
“Use Smart Deployment for dependent Java projects” configuration. (see http://www.myeclipseide.com/documentation/quickstarts/webprojects/#dependent_projects)
Obviously MyEclipse ignores the configuration…

I searched around and there seems to be a problem with the
com.genuitec.eclipse.ast.deploy.core.DeploymentBuilder.
Unfortunately MyEclipse is not OpenSource and I can’t fix the problem by my own..
So I post the Problem to MyEclipse. If you have similar problems, follow the Thread here