From f6740d55ff80bc6e16da5c3df0ee1ba2235d6629 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 26 Sep 2011 15:33:19 -0400 Subject: [PATCH] Implemented a Federation Client. Bare clone tweaks. Documentation. --- docs/00_index.mkd | 162 ++++++++++++++---------------------------------------- 1 files changed, 42 insertions(+), 120 deletions(-) diff --git a/docs/00_index.mkd b/docs/00_index.mkd index 9ad1c4e..e499abe 100644 --- a/docs/00_index.mkd +++ b/docs/00_index.mkd @@ -1,130 +1,52 @@ ## 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. - +<a href="screenshots.html" title="Screenshots"><img class="overview" src="thumbs/00.png" alt="Screenshots" /></a> + +Gitblit is an open-source, pure Java stack for managing, viewing, and serving [Git][git] repositories.<br/> +Its designed primarily as a tool for small workgroups who want to host centralized repositories. + +Gitblit is available in two variations: +<ul class='noBullets'> +<li>*Gitblit GO* - a complete & integrated pure Java stack<p> + This is what you should download if you want to go from zero to Git in less than 5 mins.<br/> + Gitblit GO is like a mashup of Apache httpd, [Git][git], and Gitweb with simplified configuration and maintenance.<br/> + All dependencies are downloaded on first execution.<p> +<li>*Gitblit WAR* - a traditional WAR distribution<p> + This is what you should download if you want to deploy Gitblit into your own servlet container (e.g. Tomcat, Jetty, etc).<br/> + All dependencies are bundled. +</ul> + +### Java Runtime Requirement + +Gitblit requires a Java 6 Runtime Environment (JRE) or a Java 6 Development Kit (JDK). + ### Current Release -[%VERSION%](http://gitblit.com/%DISTRIBUTION%) based on [%JGIT%][jgit] (*%BUILDDATE%*) +**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)) based on [%JGIT%][jgit] *released %BUILDDATE%* +- added: federation feature to allow gitblit instances to pull repositories and, optionally, settings and accounts from other gitblit instances.<br/> +This is something like svn-sync for gitblit. +<br/>**New:** *federation.name =* +<br/>**New:** *federation.passphrase =* +<br/>**New:** *federation.allowProposals = false* +<br/>**New:** *federation.proposalsFolder = proposals* +<br/>**New:** *federation.defaultFrequency = 60 mins* +<br/>**New:** *federation.sets =* +<br/>**New:** *mail.* settings for sending emails +<br/>**New:** user role *#notfederated* to prevent a user account from being pulled by a federated Gitblit instance +- added: google-gson dependency +- added: javamail dependency +- updated: MarkdownPapers 1.1.1 +- updated: Wicket 1.4.18 +- updated: JGit 1.1.0 + +issues, binaries, and sources @ [Google Code][googlecode]<br/> 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 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 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 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 -- 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 - - - -### 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) -- [JSch - Java Secure Channel](http://www.jcraft.com/jsch) (BSD) -- [JUnit](http://junit.org) (Common Public License) - -## Building from Source -[Eclipse](http://eclipse.org) is recommended for development as the project settings are preconfigured. - -Additionally, [Google CodePro AnalytiX](http://code.google.com/javadevtools), [eclipse-cs](http://eclipse-cs.sourceforge.net), [FindBugs](http://findbugs.sourceforge.net), and [EclEmma](http://www.eclemma.org) are recommended development tools. - -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. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite.<br/> -*This will clone some repositories from the web and run through the unit tests.* -5. Review the settings in `gitblit.properties` in your project root. - - By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite.<br/> - - If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user. -6. Execute the *com.gitblit.Launcher* class to start Gitblit. +Gitblit is distributed under the terms of the [Apache Software Foundation license, version 2.0][apachelicense] [jgit]: http://eclipse.org/jgit "Eclipse JGit Site" [git]: http://git-scm.com "Official Git Site" -[gitbltsrc]: http://somewhere.com "gitblit git repository" \ No newline at end of file +[gitbltsrc]: http://github.com/gitblit "gitblit git repository" +[googlecode]: http://code.google.com/p/gitblit "gitblit project management" +[apachelicense]: http://www.apache.org/licenses/LICENSE-2.0 "Apache License, Version 2.0" \ No newline at end of file -- Gitblit v1.9.1