## Overview Git:Blit is an open-source, integrated pure-Java stack for managing, viewing, and serving [Git](http://git-scm.com) repositories. Its designed primarily as a tool for small workgroups who want to host [Git](http://git-scm.com) repositories on a Windows machine. Of course, since its pure-Java it should run with any JVM on any platform, but there are already [many compelling Git solutions](https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools) for non-Windows environments. ### Current Version [{0}](http://gitblit.com/{1}) based on [{2}](http://eclipse.org/jgit)   (*{3}*) ### Features - Out-of-the-box integrated stack requiring minimal configuration - JGit SmartHTTP servlet - Browser and git client authentication - Four repository access control configurations - *Anonymous View, Clone & Push* - *Authenticated Push* - *Authenticated Clone & Push* - *Authenticated View, Clone & Push* - Freeze repository temporarily or permanently (i.e. deny push, make read-only) - Gitweb inspired UI - Administrators may create, edit, rename, or delete repositories through the web UI - Administrators may create, edit, rename, or delete users through the web UI - Repository Owners may edit repositories through the web UI - Automatically generates a self-signed certificate for https communications - Dates can optionally be displayed using browser's reported timezone - Author and Committer email address display can be controlled - Syntax highlighting - Customizable regular expression handling for commit messages - Single text file for server configuration - Single text file for users configuration - Simple repository stats - Optional read-only Docs page which enumerates all Markdown files within a repository - Optional read-only Ticgit Ticket pages *(based on last MIT release bf57b032 2009-01-27)* ### Limitations - HTTP/HTTPS are the only supported protocols - Access controls are not path-based, they are repository-based - Only Administrators can create, rename or delete repositories - Git:Blit is a full-stack solution, its not just a webapp so at this time there is no WAR build ### Todo List - Review spots where Git:Blit can cache data instead of abusing the disk - Unit testing - Ticgit activity/timeline - Ticgit query feature with paging support - Ticgit ticket change history - Implement Markdown editing - View images on Blob page - View other binary files on Blob page ### License TBD ### Inspirations - [Gitweb](http://www.git-scm.com) - [Fossil](http://www.fossil-scm.org) ## Architecture ![block diagram](architecture.png "Git Blit Architecture") ### Bundled Dependencies The following dependencies are bundled with the Git:Blit zip file. - [google-code-prettify](http://code.google.com/p/google-code-prettify) - [JavaService](http://forge.ow2.org/projects/javaservice) - icons courtesy of [FatCow Hosting](http://www.fatcow.com/free-icons) ### Downloaded Dependencies The following dependencies are automatically downloaded from the Apache Maven repository and from the Eclipse Maven repository when Git:Blit is launched for the first time. - [JGit](http://eclipse.org/jgit) - [Wicket](http://wicket.apache.org) - [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) - [MarkdownPapers](http://markdown.tautua.org) - [Jetty](http://eclipse.org/jetty) - [SLF4J](http://www.slf4j.org) - [Log4j](http://logging.apache.org/log4j) - [JCommander](http://jcommander.org) - [BouncyCastle](http://www.bouncycastle.org) ## Building [Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured. 1. Clone the git repository from here. 2. Import the gitblit project into your Eclipse workspace.
*There will be lots of build errors.* 3. Using Ant, execute the `build.xml` script in the project root.
*This will download all necessary build dependencies and will also generate the Keys class for accessing settings.* 4. Select your gitblit project root and **Refresh** the project, this should correct all build problems. 5. Review the settings in `gitblit.properties` in your project root.
Make sure you set an appropriate value for *git.repositoriesFolder*. 6. Execute the *com.gitblit.Launcher* class to start Git:Blit.