blob: a2260497c3f46cbfa9d291089e5221222afa5151 [file] [log] [blame]
Gitblit is an open source, pure Java Git solution for managing, viewing, and serving [Git]( repositories. It can serve repositories over the GIT, HTTP, and SSH transports; it can authenticate against multiple providers; and it allows you to get up-and-running with an attractive, capable Git server in less than 5 minutes.
More information about Gitblit can be found [here](
<a href=''><img src=''></a>
Gitblit is distributed under the terms of the [Apache Software Foundation license, version 2.0](
The text of the license is included in the file LICENSE in the root of the project.
Java Runtime Requirement
Gitblit requires at Java 7 Runtime Environment (JRE) or a Java 7 Development Kit (JDK).
Getting help
| Source | Location |
| ------------- |--------------------------------------------------------|
| Documentation | [Gitblit website]( |
| Issues | [Google Code]( |
| Forums | [Google Groups](!forum/gitblit) |
| Twitter | @gitblit or @jamesmoger |
| Google+ | +gitblit or +jamesmoger |
GitHub pull requests or Gitblit Tickets are preferred. Any contributions must be distributed under the terms of the [Apache Software Foundation license, version 2.0](
Gitblit practices the [git-flow][1] branching model.
- **master** is the current stable release + fixes accumulated since release.
- **develop** is the integration branch for the next major release.
- **ticket/N** are feature or hotfix branches to be merged to **master** or **develop**, as appropriate.
**Feature Development**
Development of new features is mostly done using [Gitblit Tickets][2] hosted at [][3]. This allows continuous dogfooding and improvement of Gitbit's own issue-tracker and pull-request mechanism.
**Release Planning**
Release planning is mostly done using Gitblit Milestones and Gitblit Tickets hosted at [][3].
When Gitblit is preparing for a release, a **release-{milestone}** branch will be created, tested, & fixed until it is ready to be merged to **master** and tagged as the next major release. After the release is tagged, the **release-{milestone}** branch will also be merged back into **develop** and then the release branch will be removed.
Building Gitblit
Gitblit uses submodules.
Make sure to clone using `--recursive` OR to execute `git submodule update --init --recursive`.
[Eclipse]( is recommended for development as the project settings are preconfigured.
1. Import the gitblit project into your Eclipse workspace.
*There will be lots of build errors.*
2. 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.*
3. Select your gitblit project root and **Refresh** the project, this should correct all build problems.
4. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite.
*This will clone some repositories from the web and run through the unit tests.*
5. Execute the *com.gitblit.GitBlitServer* class to start Gitblit GO.
Building Tips & Tricks
1. If you are running Ant from an ANSI-capable console, consider setting the `MX_COLOR` environment variable before executing Ant.<pre>set MX_COLOR=true</pre>
2. The build script will honor your Maven proxy settings. If you need to fine-tune this, please review the [settings.moxie]( documentation.