Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Implementation of git-http-backend for IIS7/ASP.NET
C# CSS JavaScript Other
Pull request Compare This branch is 62 commits ahead, 1 commit behind JeremySkinner:master.
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
GitAspx.sln Use NGit as backend library for HTTP services


This is a simple implementation of git-http-backend written in ASP.NET 
that can be used to read/write git repositories on Windows with IIS, or Linux with mono xsp or apache.

Inspired by Grack (

This is largely untested, but has been developed with IIS7.5 under Windows 7 x64. 

The version of GitSharp included is a custom build with some minor changes and bug fixes.
Current GitSharp.dll version is (linquize)
Current GitSharp.Core.dll version is (linquize)

- Development tools: Visual Web Developer 2010 with .NET 4
- ASP.NET: MVC3 (Razor)
- Windows: IIS5.1+ (for IIS5.1, add application settings: extension=*, path=c:\windows\\framework\v4.0.30319\aspnet_isapi.dll)
- Linux: Mono 2.10.2, xsp, use xsp standalone or apache

Edit the web.config and change the "RepositoriesDirectory" app-setting to point to a directory containing git repositories.

Assuming that your repositories directory looks like this:


...and the RepositoriesDirectory app-setting is configured to be C:\Repositories:

		<add key="RepositoriesDirectory" value="C:\Repositories" />
		<add key="RepositoryLevel" value="1" />
...and the application is configured under IIS7 on port 8000, then issuing the following command will cone the Repo1.git repository:

git clone http://localhost:8000/Repo1.git

Once cloned, push/pull work as expected.

This fork includes a file viewer and file download function.
If your source code contains *.cs, *.csproj, *.vb, *.vbproj, *.java, web.config, bin directory, etc...,
please remove those extensions and "Hidden Segments" you need in IIS "Request Filtering".

There are currently no tests (something I hope to rectify soon). If you run into a problem, the best way to troubleshoot is by using Fiddler to see the raw request/response data.
Something went wrong with that request. Please try again.