GitSharp
From eqqon
m (→Contributing) |
m (→Contributing) |
||
Line 85: | Line 85: | ||
<br><br> | <br><br> | ||
;Short how-to: | ;Short how-to: | ||
- | * | + | * Make small logical changes, execute the TestSuite to see the impact of the change |
- | + | ||
* Provide a meaningful commit message. | * Provide a meaningful commit message. | ||
* Include your Signed-Off-By line | * Include your Signed-Off-By line | ||
Line 92: | Line 91: | ||
<br> | <br> | ||
;Porting from JGit: clone the jgit repository git://repo.or.cz/egit.git | ;Porting from JGit: clone the jgit repository git://repo.or.cz/egit.git | ||
+ | * Port small and simple methods 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 tests are ported. | * 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 tests are ported. | ||
* Please make sure you base your porting work on the same version of the jgit code as all other developers to avoid inconsistencies. The current jgit commit we are based on is | * Please make sure you base your porting work on the same version of the jgit code as all other developers to avoid inconsistencies. The current jgit commit we are based on is |
Revision as of 17:18, 18 June 2009
Agreed, git support on Windows could be better ...
... want to improve the situation?
Contribute to Git#, the most advanced open source implementation of git for .NET
Every little bit helps:
- Link to the Git# website to promote the project.
- Tell your friends ...
- Code! Tackle one of the missing features or add unit tests.
So let's all stop complaining about the situation, start rocking and have fun!
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# --> Git for .NET
... a native Windows version of the fast & free open source version control system
Git# is the most advanced of all emerging C# implementations of git for Windows and the .NET framework. It is aimed to be fully compatible to the original git for linux and can be used as stand alone command line application (potentially replacing msysGit) or as library for windows applications such as gui frontends or plugins for IDEs.
What you can do with Git#
- 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 dotgit's well designed object oriented API to access git repositories.
- Git# as replacement of msysgit
- Well, this is our ultimate goal, but we are not yet there. Please help making this vision come true by contributing to the project.
- Git# as object database
- 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 dotgit or a distributed content management system. (We need to implement write-support for this.)
- Git# as (distributed) file system
- 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 need to implement write-support and remote support for this.)
- Git# as peer-to-peer content distribution system
- 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 need to implement write-support and remote support for this.)
Status of the Project
- Development Status
- Pre-Alpha, "fast-forward" =P, still need to port large portions of java code. Wanna help?
Watch the commit history on github to keep informed!
- Test Summary
153 passed | 7 failed | 160/1000 tests ported to C#
To execute the testsuite start the TestGUI, select "All Assemblies" from the tree and hit "Run". This are up-to-date stats:
- Porting Status
- 6373/24588 lines of code (without comments and tests) are ported => 25.92% complete
Get the Source Code
- public clone url
- git://github.com/henon/GitSharp.git
Contributing
Fork the repository at github and start coding. We will pull your commits regularly.
However, feedback and bug reports are also contributions.
- Short how-to
- Make small logical changes, execute the TestSuite to see the impact of the change
- Provide a meaningful commit message.
- Include your Signed-Off-By line
- Make sure all code is under the proper license (BSD)
- Porting from JGit
- clone the jgit repository git://repo.or.cz/egit.git
- Port small and simple methods 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 tests are ported.
- Please make sure you base your porting work on the same version of the jgit code as all other developers to avoid inconsistencies. The current jgit commit we are based on is
- commit c6e3b9fe2da0293f11eae202ec35fb343191a82d
- Author: Shawn O. Pearce <spearce@spearce.org>
- Date: Wed Jun 3 10:19:00 2009 -0700
To go back to that commit type
- git checkout c6e3b9fe2da0293f11eae202ec35fb343191a82d
Changes after that commit can be tracked later after Git# is completely ported.
File a Bug Report
Please file any bugs at git# issue tracker.
Subscribe to the Mailing List
Subscribe to the Git# list by sending email to gitsharp-request@freelists.org with 'subscribe' in the subject
To post on the mailing list, simply send email to gitsharp@freelists.org
License
Git# is derived from the Java library jgit and is released under the BSD license like 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 (see source file headers for a list 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 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
Many thanks go to ...
- Linus Thorwalds, the creator of git
- Shawn O. Pearce, the main contributor of jgit. Git# is largely based on his work.
- Kevin Thompson, for porting a lot of code from jgit. Git# is based on his initial efforts.
Motto
- Brain
- Come, Pinky we need to get back to the lab and prepare for tomorrow night.
- Pinky
- But why, Brain? What are we going to do tomorrow night?
- Brain
- Try to get Git# done!!