## Overview Gitblit is an open-source, integrated pure Java stack for managing, viewing, and serving [Git][git] repositories. Its designed primarily as a tool for small workgroups who want to host [Git][git] repositories on a Windows machine. Having said that, it works equally well on any standard Linux distribution. ### Current Release [%VERSION%](http://gitblit.com/%DISTRIBUTION%) based on [%JGIT%][jgit]   (*%BUILDDATE%*) sources @ [Github][gitbltsrc] ### Design Principles 1. [Keep It Simple, Stupid](http://en.wikipedia.org/wiki/KISS_principle) 2. Offer useful features for serving Git repositories. If feature is complex, refer to #1. 3. All dependencies must be retrievable from a publicly accessible [Maven](http://maven.apache.org) repository.
This is to ensure authenticity of dependencies and to keep the Gitblit distribution svelte. ### Features - Out-of-the-box integrated stack requiring minimal configuration - JGit SmartHTTP servlet - Browser and git client authentication - Four repository access control configurations and a Read-Only flag - 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 the browser's reported timezone - Author and Committer email address display can be controlled - Dynamic zip downloads feature - Markdown view support - Syntax highlighting - Customizable regular expression handling for commit messages - Single text file for server configuration - Single text file for users configuration - Simple repository stats and activity graph (uses Google Charts) - Optional utility pages ### 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 - Gitblit is an integrated, full-stack solution. There is no WAR build at this time. ### Todo List - Review spots where Gitblit can cache data instead of abusing the disk - stats - users.properties access - available repositories - etc - Code documentation - Unit testing ### Idea List - Ticgit activity/timeline - Ticgit query feature with paging support - Ticgit ticket change history - View images on Blob page - View other binary files on Blob page - Markdown editing feature - Blame (waiting for the [JGit][jgit] team to do the hard part) ### License Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0) ### 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 Gitblit zip distribution file. - [google-code-prettify](http://code.google.com/p/google-code-prettify) (Apache 2.0) - [JavaService](http://forge.ow2.org/projects/javaservice) (BSD and LGPL) - magnifying glass search icon courtesy of [Gnome](http://gnome.org) (Creative Commons CC-BY) - modified Git logo originally designed by [Henrik Nyh](http://henrik.nyh.se/2007/06/alternative-git-logo-and-favicon) - other icons courtesy of [FatCow Hosting](http://www.fatcow.com/free-icons) (Creative Commons CC-BY) ### Downloaded Dependencies The following dependencies are automatically downloaded from the Apache Maven repository and from the Eclipse Maven repository when Gitblit is launched for the first time. - [JGit][jgit] (EDL 1.0) - [Wicket](http://wicket.apache.org) (Apache 2.0) - [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) (Apache 2.0) - [MarkdownPapers](http://markdown.tautua.org) (Apache 2.0) - [Jetty](http://eclipse.org/jetty) (Apache 2.0, EPL 1.0) - [SLF4J](http://www.slf4j.org) (MIT/X11) - [Log4j](http://logging.apache.org/log4j) (Apache 2.0) - [JCommander](http://jcommander.org) (Apache 2.0) - [BouncyCastle](http://www.bouncycastle.org) (MIT/X11) ### Other Build Dependencies - [Fancybox image viewer](http://fancybox.net) (MIT and GPL dual-licensed) ## Building [Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured. 1. Clone the git repository from [Github][gitbltsrc]. 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 Gitblit. [jgit]: http://eclipse.org/jgit "Eclipse JGit Site" [git]: http://git-scm.com "Official Git Site" [gitbltsrc]: http://somewhere.com "gitblit git repository"