I had issues with getting Git up and running in a Hudson that was hosted as a Windows Service. The Git Commands would simply hang, the console output stopped at the line where the Git command was executed.

If I took the service down and started hudson from the command-line everything worked out great.

It turns out that when Hudson is started as a windows service there is no HOME environment variable set. And this is where Git finds the keys for SSH identification.

I found information regarding this here:



The fix for me was to make a simple change to the hudson.xml that is located in HUDSON_HOME.

<description>This service runs Hudson continuous integration system.></description>  
<env name="HUDSON_HOME" value="%BASE%"/>  
<env name="HOME" value="C:\Documents and Settings\hudson"/>  

This adds the environment variable for the home directory when the service starts up. Now Git can fetch when I run Hudson as a service. Naturally you have to change the path to correspond to the location of the .shh/ directory to use. In our case there is a dedicated user running hudson.