A co-worker – Terri Donahue – was helping a client the other day with some troubleshooting for GIT’s remote push capabilities on Window Server (IIS7). She had zero previous experience with GIT but after some research and testing she got it working. I thought it might be useful to others so asked that she do a casual write up for a guest post that I could put on my blog, so here it is. Enjoy!
Let me begin by saying I have never installed a code versioning utility. I recently was trying to resolve an issue with a GIT for Windows implementation. After working unsuccessfully to get the implementation working, I decided to give it a go myself. I quickly setup a test server and was on my way. There are many different informational sites for this and after a couple of unsuccessful (for what I was trying to do) attempts, I followed these steps.
Since the purpose of this install was to successfully integrate the GIT client with a Windows IIS Web server, I started out with the web files. The site that I followed was http://www.chodounsky.net/bonobo-git-server/. This has a link to a zipped IIS application folder that can be directly added as an application within an existing website or as a new website. It also has a link to Installation that provides all of the pre-requisites and specific installation instructions for IIS6 and IIS7. I chose to set this up as an application within my Default Web Site as shown here:
Since I am running a 64-bit OS, I had the choice to either set my application pool to enable 32-bit Applications or to run the native 64-bit SQL client. I chose to download and install the 64-bit System.Data.SQLite.dll (from this location: http://www.chodounsky.net/wp-content/uploads/downloads/2011/04/System.Data_.SQLite.x64.zip)and replace the 32-bit version of the file in the bin folder. After you have done that, convert the folder to an application by right clicking on the folder and choosing Convert to Application.
The important thing here is to ensure that IIS user rights are correct for the App_Data folder. This setting will depend on how you have your server configured. For mine, I granted the IIS_USERS group Modify access on this directory. Since that is the rights that are needed on the repositories as well, I created a GITRepo directory within the App_Data folder that inherits these rights.
Once you have done this, you are ready to login to the web interface and complete setting up your repositories. The default username and password for access to the portal is admin/admin. I am using http://localhost/bonobo for my test URL. Once you login you see the Repository Management page. Click on the link on the left hand side of the page labeled Global Settings. Update the Repository Directory to point to your App_Data/Repo directory and click Save.
You are now ready to begin creating your repository. Click on the Repositories link to open the Repository Management screen again. Click Create new repository, fill in your information, save, and you are ready to go.
I am running GIT on the same server but it can be run from your local machine and deployed to your remote Git for Windows host. The important thing is the URL.
Open your Git client. I am using Git Gui. Once all changes have been staged and commited, you are ready to push to your repository. Click the Push button and you will see this screen:
Enter your http location of your Git for Windows implementation. It will always be in the form of http://url_host/application/git.aspx/reposityname. If you installed this as its own website, that url would change to http://url_host/git.aspx/repositoryname. Make any changes necessary for transfer options and click Push. You will be prompted for the username/password that has access to the repository and then the Push will be completed. SUCCESS:
There you go! Hope this helps save some time and frustration for someone else who might be working on running GIT on a Windows Server. And, of course, if you need a managed Windows hosting solution with support team members like Terri, you should consider checking out OrcsWeb and the Complete Care Managed Services option.