| | |
| | | ## 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.
|
| | | Git:Blit 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.
|
| | |
|
| | | 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.
|
| | | 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}*)
|
| | | [{0}](http://gitblit.com/{1}) based on [{2}][jgit] (*{3}*)
|
| | |
|
| | | sources @ [Github][gitbltsrc]
|
| | |
|
| | | ### Design Principles
|
| | | 1. [KISS](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 repository.<br/>This is to ensure authenticity of dependencies and to keep the Git:Blit 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
|
| | | - *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)
|
| | | - Four repository access control configurations and a Read-Only flag
|
| | | <ul class='noBullets'>
|
| | | <li> *Anonymous View, Clone & Push*</li>
|
| | | <li> *Authenticated Push*</li>
|
| | | <li> *Authenticated Clone & Push*</li>
|
| | | <li> *Authenticated View, Clone & Push*</li>
|
| | | <li> 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 browser's reported timezone
|
| | | - Dates can optionally be displayed using the browser''s reported timezone
|
| | | - Author and Committer email address display can be controlled
|
| | | - 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
|
| | | - 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)*
|
| | | - Simple repository stats and activity graph (uses Google Charts)
|
| | | - Optional utility pages
|
| | | <ul class='noBullets'>
|
| | | <li> Docs page which enumerates all Markdown files within a repository</li>
|
| | | <li> 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
|
| | | - Git:Blit is a full-stack solution, its not just a webapp so at this time there is no WAR build
|
| | | - Git:Blit is an integrated, full-stack solution. There is no WAR build at this time.
|
| | |
|
| | | ### Todo List
|
| | | - Manual certificate generation with BouncyCastle
|
| | | - User list with edit and delete links
|
| | | - Review spots where Git:Blit can cache data instead of abusing the disk
|
| | | - stats
|
| | | - users.properties access
|
| | | - available repositories
|
| | | - etc
|
| | | - Download zip feature
|
| | | - Site documentation
|
| | | - Code documentation
|
| | | - Unit testing
|
| | |
|
| | | ### Idea List
|
| | | - 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
|
| | | - Markdown editing feature
|
| | | - Blame feature (waiting for the [JGit][jgit] team to do the hard part)
|
| | |
|
| | | ### License
|
| | | TBD
|
| | |
| | | 
|
| | |
|
| | | ### Bundled Dependencies
|
| | | The following dependencies are bundled with the Git:Blit zip file.
|
| | | The following dependencies are bundled with the Git:Blit zip distribution 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)
|
| | | - [google-code-prettify](http://code.google.com/p/google-code-prettify) (Apache 2.0)
|
| | | - [JavaService](http://forge.ow2.org/projects/javaservice) (BSD and LGPL)
|
| | | - icons courtesy of [FatCow Hosting](http://www.fatcow.com/free-icons) (Creative Commons CC-BY)
|
| | | - magnifying glass search icon courtesy of [Gnome](http://gnome.org) (Creative Commons CC-BY)
|
| | |
|
| | | ### 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)
|
| | | - [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 here.
|
| | | 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/>
|
| | |
| | | 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 Git:Blit. |
| | | 6. Execute the *com.gitblit.Launcher* class to start Git:Blit.
|
| | |
|
| | | [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
|
| | | [git]: http://git-scm.com "Official Git Site"
|
| | | [gitbltsrc]: http://somewhere.com "gitblit git repository" |