|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- ## 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.<br/>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
- <ul class='noBullets'>
- <li>![anonymous](blank.png) *Anonymous View, Clone & Push*</li>
- <li>![push](lock_go_16x16.png) *Authenticated Push*</li>
- <li>![clone](lock_pull_16x16.png) *Authenticated Clone & Push*</li>
- <li>![view](shield_16x16.png) *Authenticated View, Clone & Push*</li>
- <li>![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)
- </ul>
- - 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
- <ul class='noBullets'>
- <li>![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository</li>
- <li>![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*</li>
- </ul>
-
- ### 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.<br/>
- *There will be lots of build errors.*
- 3. Using Ant, execute the `build.xml` script in the project root.<br/>
- *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.<br/>
- 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"
|