GitSharp

From eqqon

(Difference between revisions)
Jump to: navigation, search
m (License)
m (Status of the Project)
 
(96 intermediate revisions not shown)
Line 1: Line 1:
__NOTOC__
__NOTOC__
[[Category:CSharp]]
[[Category:CSharp]]
-
 
-
 
-
 
<div style="float:right;margin:10px;">
<div style="float:right;margin:10px;">
-
<div style="width:500px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
+
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
 +
[[Image:Gitsharp.png|150px|right]]
 +
'''[http://github.com/downloads/henon/GitSharp/GitSharp-0.3.0.056f5345c8835fabc1a8f90548a9c5b0abdf9a68-release-net-3.5.zip Download]''' the latest binary release.
=== Releases ===
=== Releases ===
-
* [[/v0.1.0]] (2009.09.26) [http://cloud.github.com/downloads/henon/GitSharp/gitsharp_v0.1.0_bin.zip Download]
+
* [[/v0.3.0| GitSharp 0.3]]  
-
* [[/v0.1.3]] (2009.10.11) [http://cloud.github.com/downloads/henon/GitSharp/gitsharp_v0.1.3_bin.zip Download]
+
* [[/v0.2.0| GitSharp 0.2]]  
 +
* [[/v0.1.3| GitSharp 0.1.3]]
 +
* [[/v0.1.0| GitSharp 0.1]]
</div>
</div>
-
<div style="width:500px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
+
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
-
=== News ===
+
=== Documentation ===
-
* October 11th: Nulltoken fixed the GitIndex, Henon added diffing of Commits to the api, tagged it v0.1.3
+
* [http://henon.github.com/GitSharp/ GitSharp online API documentation]
-
* October 8th: Nulltoken completely ported the core and all remaining jgit revisions, tagged the version as v0.1.2
+
* [[/Examples]] ... a collection of code samples demonstrating the intuitive API.
-
* September 26th: First release (version 0.1.0).
+
* [[/Compatibility]] of git# with respect to original git, .NET and Mono
-
* September 22th: We got a [https://spreadsheets.google.com/ccc?key=tqdArp3Ob2ZUADD54xD6oLw&hl=en collaboration space] where you can see the porting progress and who is working on what.
+
* [[/Dependencies]] ... a list of included open source components and tools
-
* September 19th: Rolenun significantly improved the command line interface. Caytchen implemented the Commands "git init" and "git clone".
+
* [[/Contributing]] to gitsharp. Everything you need to know to get started.
-
* August 25th, 2009: Jim Radford added git# at his [http://tc.openmv.org/project.html?projectId=project11 TeamCity integration server]. We now have automatic builds on both, Windows and Mono. Since the other TeamCity account does not support Mono it can now be viewed as a code mirror ;)
+
-
* August 15th, 2009: Dan Rigby created the IRC channel #GitSharp on freenode. It's a nice place to chat a little or ask questions about git.
+
-
* July 2nd, 2009: Mauricio Scheffer has set up git# on the build and integration service [http://teamcity.codebetter.com/project.html?projectId=project44 teamcity.codebetter.com]
+
-
* July 1st, 2009: Writing of blobs, trees and commits works
+
-
* June 15th, 2009: Reading of commit history, trees, blobs and tags works. See the demo browser screenshot below.
+
-
</div>
+
-
<div style="width:500px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
+
;Developer Docs
-
 
+
* [[Image:Git_Index_Diagrams_by_Rolenun.pdf|Git Index Diagrams]] <small>(Beware: IE may freeze)</small>
-
=== Documentation ===
+
-
* [[/Examples]] is a collection of code samples demonstrating the intuitive API.
+
</div>
</div>
-
<div style="width:500px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
 
-
<big><big>Agreed, git support on Windows could be better ...</big></big>
 
-
<h1> ... want to improve the situation?</h1>
 
-
<br>Contribute to <big><big><big>Git#</big></big></big>, the most advanced open source implementation for .NET
 
-
<br>Every little bit helps:
+
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
-
* Link to the [http://www.eqqon.com/index.php/GitSharp Git# website] to promote the project.
+
-
* Tell your friends ...
+
-
* Code! Tackle some of the un-ported jgit classes or unit tests.
+
-
 
+
-
<br>So let's all stop complaining about the situation, start rocking and have fun!
+
-
</div>
+
-
 
+
-
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;margin-top:100px;clear:both;">
+
'''What is Git?'''
'''What is Git?'''
Line 65: Line 46:
'''Popularity'''
'''Popularity'''
-
According to [http://git.or.cz/gitwiki/GitSurvey2008 a survey by the git community] it is rapidly gaining more users. This is a graph of the survey results :<br>
+
According to [http://git.or.cz/gitwiki/GitSurvey2008 a survey by the git community] it is rapidly gaining more users. A graph of the survey results clearly demonstrates the trend.
 +
 
[[Image:Git survey responses (1) thumb-2-.png]]<br>
[[Image:Git survey responses (1) thumb-2-.png]]<br>
<small>(borrowed from [http://bugsquash.blogspot.com/ Mauricio Scheffer])</small>
<small>(borrowed from [http://bugsquash.blogspot.com/ Mauricio Scheffer])</small>
</div>
</div>
-
</div>
 
-
= Git# --> Git for .NET and Mono =
 
-
<big><big>... a native Windows version of the fast & free open source version control system</big></big>
 
-
<br>
 
-
'''GitSharp''' is the most advanced CSharp implementation for the .NET framework and Mono. It is aimed to be fully compatible to the original git and shall be a light weight library for cool applications that are based on git as their object database or are reading or manipulating repositories in some way.
 
-
== What you could do with Git#  ==
+
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
-
;Git# as object oriented interface to your git repo
+
-
:Want to manipulate you git repo from C#? Want to calculate statistics or create a beautiful visualization? Use git#'s well designed object oriented API to access and manipulate repositories.
+
-
;Git# as object database
+
=== News ===
-
:Git is an object database with built-in history and branching. If you need to create snapshots of your application's configuration or your user's data with alternative configuration branches then use git. By moving the HEAD in the repository you can easily implement undo/redo operations. For instance, one could build a wiki on top of git# or a distributed content management system. Write-support is already implemented so you could already give it a try.
+
* October 28th: gitsharp 0.2 released.
 +
* October 11th: gitsharp 0.1.3 released.
 +
* October 8th: gitsharp 0.1.2 tagged.
 +
* September 26th: First release (version 0.1.0).
 +
* September 22th: We got a [https://spreadsheets.google.com/ccc?key=tqdArp3Ob2ZUADD54xD6oLw&hl=en collaboration space] where you can see the porting progress and who is working on what.
 +
* September 19th: Rolenun significantly improved the command line interface. Caytchen implemented the Commands "git init" and "git clone".
 +
* August 25th, 2009: Jim Radford added git# at his [http://tc.openmv.org/project.html?projectId=project11 TeamCity integration server]. We now have automatic builds on both, Windows and Mono. Since the other TeamCity account does not support Mono it can now be viewed as a code mirror ;)
 +
* August 15th, 2009: Dan Rigby created the IRC channel #GitSharp on freenode. It's a nice place to chat a little or ask questions about git.
 +
* July 2nd, 2009: Mauricio Scheffer has set up git# on the build and integration service [http://teamcity.codebetter.com/project.html?projectId=project44 teamcity.codebetter.com]
 +
* July 1st, 2009: Writing of blobs, trees and commits works
 +
* June 15th, 2009: Reading of commit history, trees, blobs and tags works. See the demo browser screenshot below.
 +
</div>
-
;Git# as (distributed) file system
+
<div style="width:300px;margin:20px;padding:10px;border:1px solid;background:white;clear:both;">
-
:Git has been designed by Linus Thorwalds to be a file system that is very good at content-tracking and keeping multiple distributed versions of the same content in sync. If your application needs to implement backup and/or content synchronization routines then it can build on top of git to do that. (We still need to implement remote transport for this.)
+
=== Public Echo ===
 +
Most recent first:
 +
* [http://www.chodounsky.net/bonobo-git-server/bonobo-git-serverscreenshots/ Jakub Chodounsky created Bonobo Git Server]
 +
* [https://build.opensuse.org/package/show?package=gitsharp&project=home:nestalk Nestalk packaged gitsharp for Suse]
 +
* [http://www.h-online.com/open/news/item/MonoDevelop-2-4-released-1024208.html MonoDevelop determined to build on GitSharp for git support]
 +
* [http://bugsquash.blogspot.com/2009/10/git-filter-branch-with-gitsharp.html Mauricio Scheffer shows how to use GitSharp for correcting history]
 +
* [http://www.linux.org.ru/view-message.jsp?msgid=4130789 Russian Linux magazine reports release of GitSharp] (Russian)
 +
* [http://codezine.jp/article/detail/4497 Japanese online magazine reports release of GitSharp] (Japanese)
 +
* [http://www.heise.de/ix/meldung/GitSharp-Versionskontrollsystem-nach-C-portiert-823311.html German IT magazine reports release of gitsharp] (German)
 +
* [http://www.infoq.com/news/2009/10/Git-Sharp InfoQ reports release of gitsharp]
 +
* [http://osss.cn/news/2009/10/13/gitsharp-%E9%A6%96%E6%AC%A1%E5%85%AC%E5%BC%80%E5%8F%91%E8%A1%8C/ Report about release of gitsharp on OSSS.cn] (Chinese)
 +
* [http://www.h-online.com/open/First-public-release-of-GitSharp-arrives--/news/114453 The H reports release of gitsharp]
 +
* [http://tirania.org/blog/archive/2009/Oct-12.html Miguel de Icaza writes a nice blog entry about our release] His post triggers reports all over the world.
 +
* [http://www.linux-magazine.com/Online/News/GitSharp-Project-Working-Toward-Better-Git-for-Windows Report on Linux magazine about GitSharp]
 +
* [http://tirania.org/blog/archive/2009/Sep-01-1.html Miguel de Icaza blogs about GitSharp's progress]
-
;Git# as peer-to-peer content distribution system
+
</div>
-
:If you need to build a content distribution framework that will easily and efficiently transport content to different machines then you can easily build one on top of git.  (We still need to implement remote transport for this.)
+
-
;Git# as a future replacement of msysGit?
 
-
:[http://code.google.com/p/msysgit/ msysGit] currently is the most complete and usable native provider for git on Windows. The problem with msysGit is, that it can not be easily extended by or embedded in other applications. Apart from being a lightweight library, in the future git# might also become a real alternative to msysGit but we are still far away from that.
 
-
== Status of the Project ==
 
-
Porting from JGit is done. We still need to implement most of the command line interface (git.exe).
 
-
;Development Status:
+
</div>
-
* '''GitSharp.Core''' (equivalent to jgit) - Beta
+
-
* '''GitSharp.CLI''' (git.exe) - Alpha
+
-
* '''GitSharp''' (a user friendly api) - Alpha
+
-
<br>
+
= GitSharp - Git for .NET and Mono =
-
==== Test Summary ====  
+
<big><big>... a native Windows version of the fast & free open source version control system</big></big>
-
;As of October, 8th 2009 on Windows
 
-
<font style="color:green;">1105 passed</font>  |  <font style="color:red;">6 failed</font>  |  '''1111''' total tests
 
-
<table style="width:450px;height:10px">
 
-
<tr>
 
-
<td style="width:99%;height:100%;background-color:chartreuse;"></td>
 
-
<td style="width:1%;height:100%;background-color:red;"></td>
 
-
</tr>
 
-
</table>
 
-
For more details on the tests, see our [http://tc.openmv.org/project.html?projectId=project11 integration server].
 
<br>
<br>
-
 
+
'''GitSharp''' is an implementation of [http://git-scm.com/ Git] for the Dot.Net Framework and Mono. It is aimed to be fully compatible to the original Git and shall be a light weight library for cool applications that are based on Git as their object database or are reading or manipulating repositories in some way.  
-
==== Porting Status ====
+
-
 
+
-
;As of October the 8th, 2009: Porting is complete. Future jgit commits will be tracked and ported on a regular basis.
+
-
 
+
-
<table style="width:450px;height:10px">
+
-
<tr>
+
-
<td style="width:100%;height:100%;background-color:chartreuse;"></td>
+
-
<!--td style="width:0%;height:100%;background-color:silver;"></td-->
+
-
</tr>
+
-
</table>
+
-
 
+
-
== Get the Source Code ==
+
-
 
+
-
;public clone url: git://github.com/henon/GitSharp.git
+
-
 
+
-
== Contributing ==
+
-
If you never contributed to a github project or are a git newbie read the [[Collaborative Github Workflow]] guide.
+
-
 
+
-
The typical collaborative workflow with git can be described like this: Fork the [http://github.com/henon/GitSharp repository at github] clone your local repo and start coding. When you are done with the task, push to your fork on github and send a pull-request to henon. After other contributor's commits have been applied to the main repository your fork needs to be updated by pulling from henon/GitSharp. If you are not familiar with this workflow read the [[Collaborative Github Workflow|in-depth description with git commands]].
+
<br>
<br>
-
Never mind, if you haven't got the time to do some coding. Promoting the project and giving feedback are also most valuable contributions.
+
Navigation: [http://github.com/henon/GitSharp/downloads Downloads] | [http://github.com/henon/GitSharp Sources] | [http://henon.github.com/GitSharp/ API Docs] | [http://code.google.com/p/gitsharp/issues/list Bugs & Issues] | [http://tc.openmv.org/project.html?projectId=project11 Integration Server] | [http://groups.google.com/group/gitsharp/ Mailing List] | [http://github.com/henon/GitSharp.Demo GitSharp.Demo]
-
<br><br>
+
-
=== Short Contributor's How-To ===
+
-
* Join the [http://groups.google.com/group/gitsharp/ mailing list] and if you like to discuss/ask things in realtime the IRC channel '''#GitSharp''' on freenode.
+
-
* See what work is open and allocate it at [https://spreadsheets.google.com/ccc?key=tqdArp3Ob2ZUADD54xD6oLw&hl=en our collaboration spreadsheet]. Request edit rights on the ML.
+
-
* Please '''*do not* use github fork queue''', just [[Collaborative Github Workflow|pull from henon/GitSharp]] to get other's changes
+
-
* Feel free to include your copyright to the files you contributed something to
+
-
* When you feel like your contribution should go into the main branch (henon/GitSharp) then post on the ML.  
+
-
* When you corrupted your fork read [[Fixing Corrupt Git Branch]]
+
-
<br>
+
== Status of the Project ==
-
 
+
GitSharp is a quite usable and stable library used by several projects to interact with git repositories. To get an idea check out the Demo (see below)! GitSharp development is currently on hold because we believe that the libgit2 project and its C# bindings [https://github.com/libgit2/libgit2sharp/wiki libgit2sharp] are far more promising to work on.
-
=== Porting from JGit ===
+
-
 
+
-
Porting of the core is done. As soon as there are new commits in jgit we are going to port them over. However, there is still a lot of work to do, i.e. port implementations of CLI commands from jgit/pgm or port unit tests from the original git to test the command line.  
+
-
 
+
-
* Port small portions with few dependencies first and comment out code that is ported but can not yet compile due to missing dependencies.
+
-
* Please '''do not''' rename java classes, methods, constants etc. or else porting of dependent code will be more complicated and error prone. We are going to rename according to .NET conventions as soon as all code is ported.
+
-
* Please '''do''' keep order of methods, properties,... in sync with the Java version. If you work with a refactoring tool, make sure to configure it accordingly to this recommendation.
+
-
* Please '''consider''' committing ''small and atomic change-sets'' (instead of committing all your changes at the end of the day) in order to ease reviewing, merging and cherry-picking. You will benefit from it next time you pull.
+
-
* Check out the list of [[/Non Trivial Java To CSharp Conversions|non-trivial Java to C# conversions]].
+
-
* Please make sure you base your porting work on the same version of the [http://github.com/henon/jgit/tree/master jgit code] as all other developers to avoid inconsistencies.  
+
-
 
+
-
<br>
+
-
;Clone from
+
-
{{code|git://github.com/henon/jgit.git}}
+
-
 
+
-
This mirror of the original jgit code base represents the currently tracked jgit version that has been ported into GitSharp.Core.
+
-
 
+
-
=== Collaborate! ===
+
-
;Via the Mailing List:
+
-
Feel free to join the [http://groups.google.com/group/gitsharp/ git# mailing list]
+
-
 
+
-
We will post status updates regularly to keep you informed about the project status.
+
-
 
+
-
;Via IRC:
+
-
Visit us on freenode in Channel #GitSharp
+
-
== Compatibilty Issues ==
+
;Modules:
-
We are striving for maximum compatitbility of GitSharp against the original Git. However there are some differences that can not be avoided.
+
* '''GitSharp.Core''' - a manual line by line port of jgit (outdated)
 +
* '''GitSharp.CLI''' (git.exe) - quite incomplete
 +
* '''GitSharp''' - a user friendly api designed to be easier to use and learn than GitSharp.Core
-
;Platform Issues
+
== Projects using GitSharp ==
-
* git clone with hard links is not supported on Windows.
+
=== Bonobo Git Server ===
 +
Jakub Chodounský created [http://www.chodounsky.net/bonobo-git-server Bonobo Git Server] for
 +
Windows (Git application server hosted on IIS with many features - based on the gitsharp library.
-
;Implementation Issues
 
-
There is a long list of not implemented features. They will be listed here later.
 
-
== File a Bug Report ==
+
=== GitSharp.Demo ===
 +
[http://github.com/henon/GitSharp.Demo GitSharp.Demo] is a small repository browser project that demonstrates the use of the GitSharp library and the user oriented API.
-
Please file any bugs at [http://github.com/henon/GitSharp/issues git# issue tracker]. Please always specify the release version number or the commit hash of the actual GitSharp version you are using when reporting bugs.
+
The source demonstrates how easy it is to ...
 +
* open and interact with a git repository
 +
* iterate over the file-tree of a specific revision
 +
* get the contents of a single file of a specific revision
 +
* get the changes between two commits
 +
* display a modification as text diff
-
== Screenshots ==
+
[[Image:2010.01.31 gitsharp.demo.png|200px]]
-
=== Demo repository browser ===
+
-
GitSharp.Demo is a small repository browser project that should demonstrate the use of the GitSharp library. Get the sources at [http://github.com/henon/GitSharp.Demo github].
+
-
[[Image:2009.06.21 browser.png|200px]]
+
=== TicGit.net ===
 +
[[TicGit.net]] a small distributed issue tracker that uses git to keep track of tickets. It demonstrates the use of gitsharp's commiting API. TicGit is a toy project inspired by Scott Chacon's ruby application "ticgit".
-
It shows how to
+
[[Image:TicGit_Screenshot1.png|200px]]
-
* open a repository
+
-
* get the branches and tags
+
-
* get the commit history for a branch or tag
+
-
* recursive into the tree of a commit
+
-
* get the contents of a single file in a commit's tree (this commit's version of the file)
+
-
* get the changes between two commits (see screenshot of the diff viewer)
+
-
[[Image:2009.10.11 commitdiff.png|200px]]
 
== License ==
== License ==
-
Git# is derived from the Java library [http://www.jgit.org jgit] and is released under the BSD license like jgit.  
+
Git# is derived from the Java library [http://www.eclipse.org/jgit jgit] and is released under the same BSD license as jgit.  
Please refer to the LICENSE.txt files for the complete license, and please refer to the individual source file  
Please refer to the LICENSE.txt files for the complete license, and please refer to the individual source file  
Line 247: Line 178:
Thanks to all the kind people who contributed in one way or another. These are the credits:
Thanks to all the kind people who contributed in one way or another. These are the credits:
-
* Dave Cameron: for fixing bugs
+
* '''Dave Cameron''': for fixing bugs
-
* Björn Carlson (hackerbaloo): for killing bugs that crept into the core
+
* '''Björn Carlson (hackerbaloo)''': for killing bugs that crept into the core
-
* Emeric Fermas (nulltoken): for eliminating some of the hardest to find bugs and for verifying the complete test suite against jgit
+
* '''Emeric Fermas (nulltoken)''': for eliminating some of the hardest to find bugs and for verifying the complete test suite against jgit
-
* Martinho Fernandes (eue): for fixing bugs
+
* '''Martinho Fernandes (eue)''': for fixing bugs
-
* Andriano Machado (ammachado): for porting massive amounts of code and tests, also fixing many bugs
+
* '''Andriano Machado (ammachado)''': for porting massive amounts of code and tests, also fixing many bugs
-
* Jim Radford: for the continuous integration server account and the support
+
* '''Jim Radford''': for the continuous integration server account and the support
-
* Gil Ran: for porting and fixing lots of tests and initial efforts on Mono
+
* '''Gil Ran''': for porting and fixing lots of tests and initial efforts on Mono
-
* Dan Rigby: for porting and fixing tests
+
* '''Meinrad Recheis (henon)''': I started this project and put all my effort into having it take off
-
* rolenun: for the command line interface framework. hey, what is your real name?
+
* '''Dan Rigby''': for setting up the #GitSharp irc channel as well as porting and fixing tests
-
* Stefan Schake (caytchen): for porting huge parts of the transport layer, and hunting down nasty bugs.
+
* '''rolenun''': for the command line interface framework. hey, what is your real name?
-
* Mauricio Scheffer (mausch): for the testing and build server expertise and CI server trouble shooting
+
* '''Stefan Schake (caytchen)''': for porting huge parts of the transport layer, and hunting down nasty bugs.
-
* Neil Stalker (nestalk): for caring much about gitsharp's Mono compatibility and squashing bugs
+
* '''Mauricio Scheffer (mausch)''': for the testing and build server expertise and CI server trouble shooting
-
* Kevin Thompson: for initially porting large amounts of code and letting me rise the baby  
+
* '''Neil Stalker (nestalk)''': for caring much about gitsharp's Mono compatibility and squashing bugs
 +
* '''Kevin Thompson''': for initially porting large amounts of code and letting me rise the baby  
Furthermore, much appreciation and thanks to ...
Furthermore, much appreciation and thanks to ...
-
* Linus Torvalds and the git community for creating and maintaining it.
+
* '''Linus Torvalds and the git community''' for creating and maintaining it.
-
* Shawn O. Pearce and the jgit/egit community. Git# is based on their excellent work.
+
* '''Shawn O. Pearce and the jgit/egit community'''. Git# is based on their excellent work.
--[[User:Henon|Henon]] 22:45, 13 October 2009 (CEST)
--[[User:Henon|Henon]] 22:45, 13 October 2009 (CEST)
-
== Motto ==
+
== Links ==
-
;Brain: Come, Pinky we need to get back to the lab and prepare for tomorrow night.
+
* [http://git.or.cz/ git]
-
;Pinky: But why, Brain? What are we going to do tomorrow night?
+
* [http://www.kernel.org/pub/software/scm/git/docs/ git online manual]
-
;Brain: The same thing we do every night, Pinky. Try to get '''Git#''' done!!
+
* [http://www.eclipse.org/jgit JGit]
 +
* [http://www.git-scm.com git - classic package - source documentation and binaries]
 +
* [http://www.spheredev.org git 4 the lazy tutorial]

Latest revision as of 20:44, 26 May 2011

Gitsharp.png

Download the latest binary release.

Releases

Documentation

Developer Docs


What is Git?

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git was initially designed and developed by Linus Torvalds for Linux kernel development.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

Git is used for version control of files, much like tools such as Mercurial, Bazaar, Subversion, CVS, Perforce, and Visual SourceSafe.

Git's key characteristics make it stand out against the other SCM tools:

  • Strong and efficient support for non-linear development
  • Distributed development
  • Multiple protocol support such as HTTP, FTP, ssh, rsync, etc.
  • Efficient handling of large projects
  • Pluggable merge strategy


Popularity

According to a survey by the git community it is rapidly gaining more users. A graph of the survey results clearly demonstrates the trend.

Git survey responses (1) thumb-2-.png
(borrowed from Mauricio Scheffer)


News

  • October 28th: gitsharp 0.2 released.
  • October 11th: gitsharp 0.1.3 released.
  • October 8th: gitsharp 0.1.2 tagged.
  • September 26th: First release (version 0.1.0).
  • September 22th: We got a collaboration space where you can see the porting progress and who is working on what.
  • September 19th: Rolenun significantly improved the command line interface. Caytchen implemented the Commands "git init" and "git clone".
  • August 25th, 2009: Jim Radford added git# at his TeamCity integration server. We now have automatic builds on both, Windows and Mono. Since the other TeamCity account does not support Mono it can now be viewed as a code mirror ;)
  • August 15th, 2009: Dan Rigby created the IRC channel #GitSharp on freenode. It's a nice place to chat a little or ask questions about git.
  • July 2nd, 2009: Mauricio Scheffer has set up git# on the build and integration service teamcity.codebetter.com
  • July 1st, 2009: Writing of blobs, trees and commits works
  • June 15th, 2009: Reading of commit history, trees, blobs and tags works. See the demo browser screenshot below.

Public Echo

Most recent first:


GitSharp - Git for .NET and Mono

... a native Windows version of the fast & free open source version control system


GitSharp is an implementation of Git for the Dot.Net Framework and Mono. It is aimed to be fully compatible to the original Git and shall be a light weight library for cool applications that are based on Git as their object database or are reading or manipulating repositories in some way.


Navigation: Downloads | Sources | API Docs | Bugs & Issues | Integration Server | Mailing List | GitSharp.Demo

Status of the Project

GitSharp is a quite usable and stable library used by several projects to interact with git repositories. To get an idea check out the Demo (see below)! GitSharp development is currently on hold because we believe that the libgit2 project and its C# bindings libgit2sharp are far more promising to work on.

Modules
  • GitSharp.Core - a manual line by line port of jgit (outdated)
  • GitSharp.CLI (git.exe) - quite incomplete
  • GitSharp - a user friendly api designed to be easier to use and learn than GitSharp.Core

Projects using GitSharp

Bonobo Git Server

Jakub Chodounský created Bonobo Git Server for Windows (Git application server hosted on IIS with many features - based on the gitsharp library.


GitSharp.Demo

GitSharp.Demo is a small repository browser project that demonstrates the use of the GitSharp library and the user oriented API.

The source demonstrates how easy it is to ...

  • open and interact with a git repository
  • iterate over the file-tree of a specific revision
  • get the contents of a single file of a specific revision
  • get the changes between two commits
  • display a modification as text diff

2010.01.31 gitsharp.demo.png

TicGit.net

TicGit.net a small distributed issue tracker that uses git to keep track of tickets. It demonstrates the use of gitsharp's commiting API. TicGit is a toy project inspired by Scott Chacon's ruby application "ticgit".

TicGit Screenshot1.png


License

Git# is derived from the Java library jgit and is released under the same BSD license as jgit.

Please refer to the LICENSE.txt files for the complete license, and please refer to the individual source file header to determine which license covers it and who contributed and therefor holds copyrights to the files.

Copyright (C) 2007-2009, The Git Development Community and the GitSharp Team See source file headers for specific copyrights of contributors



All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the Git Development Community nor the GitSharp Team nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Thanks and Credits

Thanks to all the kind people who contributed in one way or another. These are the credits:

  • Dave Cameron: for fixing bugs
  • Björn Carlson (hackerbaloo): for killing bugs that crept into the core
  • Emeric Fermas (nulltoken): for eliminating some of the hardest to find bugs and for verifying the complete test suite against jgit
  • Martinho Fernandes (eue): for fixing bugs
  • Andriano Machado (ammachado): for porting massive amounts of code and tests, also fixing many bugs
  • Jim Radford: for the continuous integration server account and the support
  • Gil Ran: for porting and fixing lots of tests and initial efforts on Mono
  • Meinrad Recheis (henon): I started this project and put all my effort into having it take off
  • Dan Rigby: for setting up the #GitSharp irc channel as well as porting and fixing tests
  • rolenun: for the command line interface framework. hey, what is your real name?
  • Stefan Schake (caytchen): for porting huge parts of the transport layer, and hunting down nasty bugs.
  • Mauricio Scheffer (mausch): for the testing and build server expertise and CI server trouble shooting
  • Neil Stalker (nestalk): for caring much about gitsharp's Mono compatibility and squashing bugs
  • Kevin Thompson: for initially porting large amounts of code and letting me rise the baby

Furthermore, much appreciation and thanks to ...

  • Linus Torvalds and the git community for creating and maintaining it.
  • Shawn O. Pearce and the jgit/egit community. Git# is based on their excellent work.

--Henon 22:45, 13 October 2009 (CEST)

Links