@@ -55,11 +55,6 @@ | |||
<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/jetty-webapp-7.4.3.v20110701-javadoc.jar!/"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="lib" path="ext/markdownpapers-core-1.1.1.jar" sourcepath="ext/markdownpapers-core-1.1.1-sources.jar"> | |||
<attributes> | |||
<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/markdownpapers-core-1.1.1-javadoc.jar!/"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="lib" path="ext/gson-1.7.1.jar" sourcepath="ext/gson-1.7.1-sources.jar"> | |||
<attributes> | |||
<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/gson-1.7.1-javadoc.jar!/"/> | |||
@@ -97,5 +92,10 @@ | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="lib" path="ext/javax.servlet-3.0.1.jar" sourcepath="ext/javax.servlet-3.0.1-sources.jar"/> | |||
<classpathentry kind="lib" path="ext/markdownpapers-core-1.2.3.jar" sourcepath="ext/markdownpapers-core-1.2.3-sources.jar"> | |||
<attributes> | |||
<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/markdownpapers-core-1.2.3-javadoc.jar!/"/> | |||
</attributes> | |||
</classpathentry> | |||
<classpathentry kind="output" path="bin"/> | |||
</classpath> |
@@ -5,20 +5,20 @@ Gitblit is an open-source, pure Java stack for managing, viewing, and serving [G | |||
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/> | |||
1. *Gitblit GO* - a complete & integrated pure Java stack | |||
This is what you should download if you want to go from zero to Git in less than 5 mins. | |||
Gitblit GO is like a mashup of Apache httpd, [Git][git], and Gitweb with simplified configuration and maintenance. | |||
All dependencies are downloaded on first execution. | |||
2. *Gitblit WAR* - a traditional WAR distribution | |||
This is what you should download if you want to deploy Gitblit into your own servlet container (e.g. Tomcat, Jetty, etc). | |||
All dependencies are bundled. | |||
</ul> | |||
### Tools | |||
<ul class='noBullets'> | |||
<li>*Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings | |||
</ul> | |||
- *Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings | |||
### Java Runtime Requirement | |||
@@ -28,14 +28,15 @@ Gitblit requires a Java 6 Runtime Environment (JRE) or a Java 6 Development Kit | |||
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%* | |||
- improved: updated ui with Twitter's Bootstrap CSS toolkit | |||
<br/>**New:** *web.loginMessage = gitblit* | |||
- improved: updated ui with Twitter's Bootstrap CSS toolkit | |||
**New:** *web.loginMessage = gitblit* | |||
- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) | |||
- fixed: Set the RSS content type for Firefox 4 (issue 22) | |||
- fixed: Null pointer exception if did not set federation strategy (issue 20) | |||
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later | |||
- added: IUserService.setup(IStoredSettings) for custom user service implementations | |||
- added: setting to control Gitblit GO context path for proxy setups<br/>**New:** *server.contextPath = /* | |||
- added: setting to control Gitblit GO context path for proxy setups | |||
**New:** *server.contextPath = /* | |||
issues, binaries, and sources @ [Google Code][googlecode]<br/> | |||
sources @ [Github][gitbltsrc] |
@@ -2,13 +2,11 @@ | |||
- JGit SmartHTTP servlet | |||
- Browser and git client authentication | |||
- Four *per-repository* access control configurations with a Read-Only control 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> | |||
- ![anonymous](blank.png) *Anonymous View, Clone & Push* | |||
- ![push](lock_go_16x16.png) *Authenticated Push* | |||
- ![clone](lock_pull_16x16.png) *Authenticated Clone & Push* | |||
- ![view](shield_16x16.png) *Authenticated View, Clone & Push* | |||
- ![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only) | |||
- Ability to federate with one or more other Gitblit instances | |||
- Gitweb inspired web UI | |||
- Administrators may create, edit, rename, or delete repositories through the web UI | |||
@@ -27,14 +25,13 @@ | |||
- Customizable regular expression substitution for commit messages (i.e. bug or code review link integration) | |||
- Single text file for users configuration | |||
- 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> | |||
- ![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository | |||
- ![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)* | |||
## Gitblit GO Features | |||
- Out-of-the-box integrated stack requiring minimal configuration | |||
- Automatically generates a self-signed certificate for *localhost* https communications<br/>(includes script to generate a self-signed certificate for *your hostname*, see [setup](/setup.html) for details) | |||
- Automatically generates a self-signed certificate for *localhost* https communications | |||
(includes script to generate a self-signed certificate for *your hostname*, see [setup](/setup.html) for details) | |||
- Single text file for configuring server and gitblit | |||
- A Windows service installation script and configuration tool | |||
@@ -1,62 +1,62 @@ | |||
## Screenshots | |||
<table class="screenshots"> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/00.png" title="Repository & User List">![Repositories](thumbs/00.png)</a> | |||
<a rel="screenshots_group" href="screenshots/00.png" title="Repository & User List"><img alt="Repositories" src="thumbs/00.png" /></a> | |||
<br/>Repository & User List | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/01.png" title="New User">![New User](thumbs/01.png)</a> | |||
<a rel="screenshots_group" href="screenshots/01.png" title="New User"><img alt="New User" src="thumbs/01.png" /></a> | |||
<br/>New User | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/02.png" title="Edit Repository">![Edit Repository](thumbs/02.png)</a> | |||
<a rel="screenshots_group" href="screenshots/02.png" title="Edit Repository"><img alt="Edit Repository" src="thumbs/02.png" /></a> | |||
<br/>Edit Repository | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/03.png" title="Repository Summary">![Summary](thumbs/03.png)</a> | |||
<a rel="screenshots_group" href="screenshots/03.png" title="Repository Summary"><img alt="Summary" src="thumbs/03.png" /></a> | |||
<br/>Repository Summary | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/04.png" title="Repository Log">![Log](thumbs/04.png)</a> | |||
<a rel="screenshots_group" href="screenshots/04.png" title="Repository Log"><img alt="Log" src="thumbs/04.png" /></a> | |||
<br/>Repository Log | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/10.png" title="Repository Tags">![Tags](thumbs/10.png)</a> | |||
<a rel="screenshots_group" href="screenshots/10.png" title="Repository Tags"><img alt="Tags" src="thumbs/10.png" /></a> | |||
<br/>Repository Tags | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/05.png" title="Repository Tree">![Tree](thumbs/05.png)</a> | |||
<a rel="screenshots_group" href="screenshots/05.png" title="Repository Tree"><img alt="Tree" src="thumbs/05.png" /></a> | |||
<br/>Repository Tree | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/06.png" title="Commit Page">![Commit Page](thumbs/06.png)</a> | |||
<a rel="screenshots_group" href="screenshots/06.png" title="Commit Page"><img alt="Commit Page" src="thumbs/06.png" /></a> | |||
<br/>Commit Page | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/07.png" title="Commit Diff">![Commitdiff](thumbs/07.png)</a> | |||
<a rel="screenshots_group" href="screenshots/07.png" title="Commit Diff"><img alt="Commit Diff" src="thumbs/07.png" /></a> | |||
<br/>Commit Diff | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics">![Metrics](thumbs/09.png)</a> | |||
<a rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics"><img alt="Metrics" src="thumbs/09.png" /></a> | |||
<br/>Branch Metrics | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting">![Blob](thumbs/08.png)</a> | |||
<a rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting"><img alt="Blob" src="thumbs/08.png" /></a> | |||
<br/>Blob View with Syntax Highlighting | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/11.png" title="Blame">![Blame](thumbs/11.png)</a> | |||
<a rel="screenshots_group" href="screenshots/11.png" title="Blame"><img alt="Blame" src="thumbs/11.png" /></a> | |||
<br/>Blame | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/12.png" title="Federation Panels">![FederationPanels](thumbs/12.png)</a> | |||
<a rel="screenshots_group" href="screenshots/12.png" title="Federation Panels"><img alt="Federation Panels" src="thumbs/12.png" /></a> | |||
<br/>Federation Panels | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration">![RegistrationStatus](thumbs/13.png)</a> | |||
<a rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration"><img alt="Registration Status" src="thumbs/13.png" /></a> | |||
<br/>Detailed Status of a Registration | |||
</td><td> | |||
<a rel="screenshots_group" href="screenshots/14.png" title="Send Proposal">![Propose](thumbs/14.png)</a> | |||
<a rel="screenshots_group" href="screenshots/14.png" title="Send Proposal"><img alt="Propose" src="thumbs/14.png" /></a> | |||
<br/>Send Proposal | |||
</td></tr> | |||
<tr><td> | |||
<a rel="screenshots_group" href="screenshots/15.png" title="Reviewing Received Proposal">![ReviewProposal](thumbs/15.png)</a> | |||
<a rel="screenshots_group" href="screenshots/15.png" title="Reviewing Received Proposal"><img alt="Review Proposal" src="thumbs/15.png" /></a> | |||
<br/>Reviewing Received Proposal | |||
</td></tr> | |||
@@ -1,32 +1,33 @@ | |||
## Gitblit WAR Setup | |||
1. Download [Gitblit WAR %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) to the webapps folder of your servlet container.<br/> | |||
1. Download [Gitblit WAR %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) to the webapps folder of your servlet container. | |||
2. You may have to manually extract the WAR (zip file) to a folder within your webapps folder. | |||
3. Copy the `WEB-INF/users.properties` file to a location outside the webapps folder that is accessible by your servlet container. | |||
4. The Gitblit webapp is configured through its `web.xml` file.<br/> | |||
4. The Gitblit webapp is configured through its `web.xml` file. | |||
Open `web.xml` in your favorite text editor and make sure to review and set: | |||
- <context-parameter> *git.repositoryFolder* (set the full path to your repositories folder) | |||
- <context-parameter> *realm.userService* (set the full path to `users.properties`) | |||
5. You may have to restart your servlet container. | |||
6. Open your browser to <http://localhost/gitblit> or whatever the url should be. | |||
7. Click the *Login* link and enter the default administrator credentials: **admin / admin**<br/> | |||
7. Click the *Login* link and enter the default administrator credentials: **admin / admin** | |||
**NOTE:** Make sure to change the administrator username and/or password!! | |||
## Gitblit GO Setup | |||
1. Download and unzip [Gitblit GO %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%GO%).<br/> | |||
1. Download and unzip [Gitblit GO %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%GO%). | |||
*Its best to eliminate spaces in the path name.* | |||
2. The server itself is configured through a simple text file.<br/> | |||
2. The server itself is configured through a simple text file. | |||
Open `gitblit.properties` in your favorite text editor and make sure to review and set: | |||
- *git.repositoryFolder* (path may be relative or absolute) | |||
- *server.tempFolder* (path may be relative or absolute) | |||
- *server.httpPort* and *server.httpsPort* | |||
- *server.httpBindInterface* and *server.httpsBindInterface*<br/> | |||
- *server.httpBindInterface* and *server.httpsBindInterface* | |||
**https** is strongly recommended because passwords are insecurely transmitted form your browser/git client using Basic authentication! | |||
3. Execute `gitblit.cmd` or `java -jar gitblit.jar` from a command-line | |||
4. Wait a minute or two while all dependencies are downloaded and your self-signed *localhost* certificate is generated.<br/>Please see the section titled **Creating your own Self-Signed Certificate** to generate a certificate for *your hostname*. | |||
4. Wait a minute or two while all dependencies are downloaded and your self-signed *localhost* certificate is generated. | |||
Please see the section titled **Creating your own Self-Signed Certificate** to generate a certificate for *your hostname*. | |||
5. Open your browser to <http://localhost:8080> or <https://localhost:8443> depending on your chosen configuration. | |||
6. Click the *Login* link and enter the default administrator credentials: **admin / admin**<br/> | |||
6. Click the *Login* link and enter the default administrator credentials: **admin / admin** | |||
**NOTE:** Make sure to change the administrator username and/or password!! | |||
### Creating your own Self-Signed Certificate | |||
@@ -45,7 +46,8 @@ If you want to serve your repositories to another machine over https then you wi | |||
2. Set *your hostname* into the *HOSTNAME* variable. | |||
3. Execute the script.<br/>This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*. | |||
**NOTE:**<br/>If you use `makekeystore_jdk.cmd`, the certificate password AND the keystore password must match and must be set as *server.storePassword* or specified with the *storePassword* command-line parameter! | |||
**NOTE:** | |||
If you use `makekeystore_jdk.cmd`, the certificate password AND the keystore password must match and must be set as *server.storePassword* or specified with the *storePassword* command-line parameter! | |||
Additionally, if you want to change the value of *server.storePassword* (recommended) you will have to generate a new certificate afterwards. | |||
@@ -53,7 +55,7 @@ Additionally, if you want to change the value of *server.storePassword* (recomme | |||
Gitblit uses [Apache Commons Daemon](http://commons.apache.org/daemon) to install and configure its Windows service. | |||
1. Review the contents of the `installService.cmd` | |||
2. Set the *ARCH* value as appropriate for your installed Java Virtual Machine.<br/> | |||
2. Set the *ARCH* value as appropriate for your installed Java Virtual Machine. | |||
3. Add any necessary *--StartParams* as enumerated below in **Command-Line Parameters**. | |||
4. Execute the script. | |||
@@ -70,8 +72,8 @@ If you have installed a JDK, you might consider using the `gitblitw.exe` utility | |||
1. Execute `gitblitw.exe` | |||
2. On the *Java* tab uncheck *Use default*. | |||
3. Manually navigate your filesystem and specify the server VM with the `...` button<br/><pre> | |||
Java Virtual Machine: | |||
C:\Program Files\Java\jre6\bin\server\jvm.dll</pre> | |||
Java Virtual Machine: | |||
C:\Program Files\Java\jre6\bin\server\jvm.dll</pre> | |||
#### Command-Line Parameters | |||
Command-Line parameters override the values in `gitblit.properties` at runtime. | |||
@@ -112,8 +114,8 @@ Any important changes to the setting keys or default values will always be menti | |||
6. Review and optionally apply any new settings as indicated in the [release log](releases.html). | |||
#### Upgrading Windows Service | |||
You may need to delete your old service definition and install a new one depending on what has changed in the release. | |||
You may need to delete your old service definition and install a new one depending on what has changed in the release. | |||
## Gitblit Configuration | |||
### Administering Repositories | |||
@@ -133,7 +135,7 @@ All repository settings are stored within the repository `.git/config` file unde | |||
federationStrategy = FEDERATE_THIS | |||
isFederated = false | |||
federationSets = | |||
#### Repository Names | |||
Repository names must be unique and are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS. The name must be composed of letters, digits, or `/ _ - .`<br/> | |||
Whitespace is illegal. | |||
@@ -152,7 +154,7 @@ The format of `users.properties` follows Jetty's convention for HashRealms: | |||
username,password,role1,role2,role3... | |||
#### Usernames | |||
Usernames must be unique and are case-insensitive.<br/> | |||
Usernames must be unique and are case-insensitive. | |||
Whitespace is illegal. | |||
#### Passwords | |||
@@ -164,7 +166,7 @@ There are two actual *roles* in Gitblit: *#admin*, which grants administrative p | |||
## Authentication and Authorization Customization | |||
Instead of maintaining a `users.properties` file, you may want to integrate Gitblit into an existing environment. | |||
You may use your own custom *com.gitblit.IUserService* implementation by specifying its fully qualified classname in the *realm.userService* setting.<br/> | |||
You may use your own custom *com.gitblit.IUserService* implementation by specifying its fully qualified classname in the *realm.userService* setting. | |||
Your user service class must be on Gitblit's classpath and must have a public default constructor. | |||
@@ -314,22 +316,23 @@ public interface IUserService { | |||
### Https with Self-Signed Certificates | |||
You must tell Git/JGit not to verify the self-signed certificate in order to perform any remote Git operations. | |||
**NOTE:**<br/> | |||
The default self-signed certificate generated by Gitlbit GO is bound to *localhost*.<br/> | |||
If you are using Eclipse/EGit/JGit clients, you will have to generate your own certificate that specifies the exact hostname used in your clone/push url.<br/> | |||
**NOTE:** | |||
The default self-signed certificate generated by Gitlbit GO is bound to *localhost*. | |||
If you are using Eclipse/EGit/JGit clients, you will have to generate your own certificate that specifies the exact hostname used in your clone/push url. | |||
You must do this because Eclipse/EGit/JGit (<= 1.1.0) always verifies certificate hostnames, regardless of the *http.sslVerify=false* client-side setting. | |||
- Eclipse/EGit/JGit | |||
- **Eclipse/EGit/JGit** | |||
1. Window->Preferences->Team->Git->Configuration | |||
2. Click the *New Entry* button | |||
3. <pre>Key = *http.sslVerify* | |||
Value = *false*</pre> | |||
- Command-line Git ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html)) | |||
<pre>git config --global --bool --add http.sslVerify false</pre> | |||
3. <pre>Key = <em>http.sslVerify</em> | |||
Value = <em>false</em></pre> | |||
- **Command-line Git** ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html)) | |||
<pre>git config --global --bool --add http.sslVerify false</pre> | |||
### Cloning an Access Restricted Repository | |||
- Eclipse/EGit/JGit<br/>Nothing special to configure, EGit figures out everything. | |||
<pre>https://yourserver/git/your/repository</pre> | |||
- Command-line Git<br/>*My testing indicates that your username must be embedded in the url. YMMV.* | |||
<pre>https://username@yourserver/git/your/repository</pre> | |||
- **Eclipse/EGit/JGit** | |||
Nothing special to configure, EGit figures out everything. | |||
<pre>https://yourserver/git/your/repository</pre> | |||
- **Command-line Git** | |||
My testing indicates that your username must be embedded in the url. YMMV. | |||
<pre>https://username@yourserver/git/your/repository</pre> |
@@ -27,7 +27,7 @@ This value can be anything you want: an integer, a sentence, an haiku, etc. You | |||
The federation feature is completely disabled if your passphrase value is empty. | |||
**NOTE**:<br/> | |||
**NOTE**: | |||
Changing your *federation.passphrase* will break any registrations you have established with other Gitblit instances. | |||
### Pulling Gitblit Instance Requirements | |||
@@ -46,8 +46,8 @@ String usersAndRepositoriesToken = SHA1(passphrase + "-USERS_AND_REPOSITORIES"); | |||
String repositoriesToken = SHA1(passphrase + "-REPOSITORIES"); | |||
%ENDCODE% | |||
The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings.<br/> | |||
The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and user accounts.<br/> | |||
The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings. | |||
The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and user accounts. | |||
The *REPOSITORIES* token only allows pulling of the repositories. | |||
Individual Gitblit repository configurations such as *description* and *accessRestriction* are always mirrored. | |||
@@ -64,11 +64,11 @@ Federation Sets (*federation.sets*) are named groups of repositories. The Feder | |||
Once you have properly setup your passphrase and can see your federation tokens, you are ready to share them with a pulling Gitblit instance. | |||
The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance.<br/> | |||
The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance. | |||
To send a proposal: | |||
1. Login to your Gitblit instance as an administrator | |||
2. Select and click the *propose* link for the appropriate token at the bottom of the repositories page | |||
2. Select and click the *propose* link for the appropriate token on the *federation* page | |||
3. Confirm the publicly accessible url of your (origin) Gitblit instance | |||
4. Enter the url of the pulling Gitblit instance you want to federate with | |||
5. Optionally enter a message for the administrators | |||
@@ -84,7 +84,7 @@ Your proposal includes: | |||
2. the federation token you selected and its type | |||
3. the list of your *non-excluded* repositories, and their configuration details, that you propose to share | |||
Submitting a proposal does not automatically register your server with the pulling Gitblit instance.<br/> | |||
Submitting a proposal does not automatically register your server with the pulling Gitblit instance. | |||
Registration is a manual process for an administrator. | |||
### Federation Proposals (Pulling Gitblit Instance) | |||
@@ -142,7 +142,7 @@ After a repository has been cloned it is flagged as *isFederated* (which identif | |||
#### Origin Verification | |||
During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration.<br/> | |||
During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration. | |||
If they do not match, the repository is skipped and this is indicated in the log. | |||
#### User Accounts | |||
@@ -153,8 +153,8 @@ The pulling Gitblit instance will store a registration-specific `users.propertie | |||
If you specify *federation.N.mergeAccounts=true*, then the user accounts from the origin Gitblit instance will be integrated into the `users.properties` file of your Gitblit instance and allow sign-on of those users. | |||
**NOTE:**<br/> | |||
Upgrades from older Gitblit versions will not have the *#notfederated* role assigned to the *admin* account. Without that role, your admin account WILL be transferred with an *ALL* or *USERS_AND_REPOSITORIES* token.<br/> | |||
**NOTE:** | |||
Upgrades from older Gitblit versions will not have the *#notfederated* role assigned to the *admin* account. Without that role, your admin account WILL be transferred with an *ALL* or *USERS_AND_REPOSITORIES* token. | |||
Please consider adding the *#notfederated* role to your admin account! | |||
#### Server Settings | |||
@@ -178,12 +178,12 @@ By default, federated repositories can not be pushed to, they are read-only by t | |||
<table> | |||
<tr><th>federation.N.url</th> | |||
<td>string</td> | |||
<td>the url of the origin Gitblit instance *(required)*</td> | |||
<td>the url of the origin Gitblit instance <em>(required)</em></td> | |||
</tr> | |||
<tr><th>federation.N.token</th> | |||
<td>string</td> | |||
<td>the token provided by the origin Gitblit instance *(required)*</td> | |||
<td>the token provided by the origin Gitblit instance <em>(required)</em></td> | |||
</tr> | |||
<tr><th>federation.N.frequency</th> | |||
@@ -193,42 +193,42 @@ By default, federated repositories can not be pushed to, they are read-only by t | |||
<tr><th>federation.N.folder</th> | |||
<td>string</td> | |||
<td>the destination folder, relative to *git.repositoriesFolder*, for these repositories.<br/>default is *git.repositoriesFolder*</td> | |||
<td>the destination folder, relative to <em>git.repositoriesFolder</em>, for these repositories.<br/>default is <em>git.repositoriesFolder</em></td> | |||
</tr> | |||
<tr><th>federation.N.bare</th> | |||
<td>boolean</td> | |||
<td>if **true** *(default)*, each repository is cloned as a bare repository (i.e. no working folder).</td> | |||
<td>if <b>true</b> <em>(default)</em>, each repository is cloned as a bare repository (i.e. no working folder).</td> | |||
</tr> | |||
<tr><th>federation.N.mirror</th> | |||
<td>boolean</td> | |||
<td>if **true** *(default)*, each repository HEAD is reset to *origin/master* after each pull. The repository is flagged *isFrozen* after the initial clone.<p>If **false**, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.</td> | |||
<td>if <b>true</b> <em>(default)</em>, each repository HEAD is reset to <em>origin/master</em> after each pull. The repository is flagged <em>isFrozen</em> after the initial clone.<br/><br/>If <b>false</b>, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.</td> | |||
</tr> | |||
<tr><th>federation.N.mergeAccounts</th> | |||
<td>boolean</td> | |||
<td>if **true**, merge the retrieved accounts into the `users.properties` of **this** Gitblit instance.<br/>*default is false*</td> | |||
<td>if <b>true</b>, merge the retrieved accounts into the <code>users.properties</code> of <b>this</b> Gitblit instance.<br/><em>default is false</em></td> | |||
</tr> | |||
<tr><th>federation.N.sendStatus</th> | |||
<td>boolean</td> | |||
<td>if **true**, send the status of the federated pull to the origin Gitblit instance.<br/>*default is false*</td> | |||
<td>if <b>true</b>, send the status of the federated pull to the origin Gitblit instance.<br/><em>default is false</em></td> | |||
</tr> | |||
<tr><th>federation.N.include</th> | |||
<td>string array<br/>(space-delimited)</td> | |||
<td>list of included repositories *(wildcard and fuzzy matching supported)*</td> | |||
<td>list of included repositories <em>(wildcard and fuzzy matching supported)</em></td> | |||
</tr> | |||
<tr><th>federation.N.exclude</th> | |||
<td>string array<br/>(space-delimited)</td> | |||
<td>list of excluded repositories *(wildcard and fuzzy matching supported)*</td> | |||
<td>list of excluded repositories <em>(wildcard and fuzzy matching supported)</em></td> | |||
</tr> | |||
<tr><th>federation.N.notifyOnError</th> | |||
<td>boolean</td> | |||
<td>if **true**, send an email to the administrators on an error.<br/>*default is false*</td> | |||
<td>if <b>true</b>, send an email to the administrators on an error.<br/><em>default is false</em></td> | |||
</tr> | |||
</table> | |||
@@ -257,7 +257,7 @@ This example is considered *nearly* perfect because while the origin Gitblit's s | |||
#### Just Repositories Example | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/> | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. | |||
The repositories will be put in *git.repositoriesFolder*/example2. | |||
federation.example2.url = https://tomcat.gitblit.com/gitblit | |||
@@ -269,7 +269,7 @@ The repositories will be put in *git.repositoriesFolder*/example2. | |||
#### All-but-One Repository Example | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/> | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. | |||
The repositories will be put in *git.repositoriesFolder*/example3. | |||
federation.example3.url = https://tomcat.gitblit.com/gitblit | |||
@@ -282,7 +282,7 @@ The repositories will be put in *git.repositoriesFolder*/example3. | |||
#### Just One Repository Example | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/> | |||
This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. | |||
The repositories will be put in *git.repositoriesFolder*/example4. | |||
federation.example4.url = https://tomcat.gitblit.com/gitblit |
@@ -6,8 +6,8 @@ There are a few ways this can occur: | |||
1. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false* | |||
1. Window->Preferences->Team->Git->Configuration | |||
2. Click the *New Entry* button | |||
3. <pre>Key = *http.sslVerify* | |||
Value = *false*</pre> | |||
3. <pre>Key = <em>http.sslVerify</em> | |||
Value = <em>false</em></pre> | |||
2. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push between machines. | |||
1. Review the contents of `makekeystore.cmd` | |||
2. Set *your hostname* in the *HOSTNAME* variable. | |||
@@ -37,12 +37,29 @@ Run the server as *root* (security concern) or change the ports you are serving | |||
Confirm that the <context-param> *realm.userService* value in your `web.xml` file actually points to a `users.properties` file. | |||
### Gitblit won't open my grouped repository (/group/myrepo.git) or browse my log/branch/tag/ref?! | |||
This is likely an url encoding/decoding problem with forward slashes. There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`: | |||
This is likely an url encoding/decoding problem with forward slashes: | |||
**bad** | |||
http://192.168.1.2/log/myrepo.git/refs/heads/master | |||
**good** | |||
http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster | |||
**NOTE:** | |||
You can not trust the url in the address bar of your browser since your browser may *prettify* the url. When in doubt, *View Source* of the generated html to confirm the *href*. | |||
There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`: | |||
1. try setting *web.mountParameters* to *false*.<br/>This changes the url scheme from mounted (*/commit/myrepo.git/abcdef*) to parameterized (*/commit/?r=myrepo.git&h=abcdef*). | |||
2. try changing *web.forwardSlashCharacter* to an asterisk or a **!** | |||
Also, if you are running Gitblit behind a proxy, you must ensure that the proxy does not decode and then re-encode request urls with interpretation of *%2F*. If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes). | |||
### Running Gitblit behind mod_proxy or some other proxy layer | |||
You must ensure that the proxy does not decode and then re-encode request urls with interpretation of forward-slashes (*%2F*). If your proxy layer does re-encode embedded forward-slashes then you may not be able to browse grouped repositories or logs, branches, and tags **unless** you set *web.mountParameters=false*. | |||
If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes). | |||
## General Interest Questions | |||
@@ -74,7 +91,7 @@ Additionally, Git and Gitweb do not offer repository creation or user management | |||
No (mostly). Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/> | |||
Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution. | |||
**mostly**<br/> | |||
#### mostly | |||
JGit does not fully support the git-gc featureset (garbage collection) so you may want native Git to periodically run git-gc until [JGit][jgit] fully supports this feature. | |||
### Can I run Gitblit in conjunction with my existing Git tooling? | |||
@@ -89,7 +106,8 @@ No. Gitblit stores its repository configuration information within the `.git/co | |||
### Can I manually edit users.properties, gitblit.properties, or .git/config? | |||
Yes. You can manually manipulate all of them and (most) changes will be immediately available to Gitblit.<br/>Exceptions to this are noted in `gitblit.properties`. | |||
**NOTE:**<br/>Care must be taken to preserve the relationship between user roles and repository names.<br/>Please see the *User Roles* section of the [setup](/setup.html) page for details. | |||
**NOTE:** | |||
Care must be taken to preserve the relationship between user roles and repository names.<br/>Please see the *User Roles* section of the [setup](/setup.html) page for details. | |||
### Can I restrict access to paths within a repository? | |||
No. Access restrictions apply to the repository as a whole. |
@@ -48,15 +48,15 @@ The following dependencies are automatically downloaded by Gitblit GO (or alread | |||
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/> | |||
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.<br/> | |||
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. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite.<br/> | |||
5. 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. 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/> | |||
- By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite. | |||
- 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. | |||
@@ -3,28 +3,30 @@ | |||
### Current Release | |||
**%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%* | |||
- improved: updated ui with Twitter's Bootstrap CSS toolkit | |||
<br/>**New:** *web.loginMessage = gitblit* | |||
- improved: updated ui with Twitter's Bootstrap CSS toolkit | |||
**New:** *web.loginMessage = gitblit* | |||
- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) | |||
- fixed: Set the RSS content type for Firefox 4 (issue 22) | |||
- fixed: Null pointer exception if did not set federation strategy (issue 20) | |||
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later | |||
- added: IUserService.setup(IStoredSettings) for custom user service implementations | |||
- added: setting to control Gitblit GO context path for proxy setups<br/>**New:** *server.contextPath = /* | |||
- added: setting to control Gitblit GO context path for proxy setups | |||
**New:** *server.contextPath = /* | |||
- updated: MarkdownPapers 1.2.3 | |||
### Older Releases | |||
**0.6.0** ([go](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.6.0.zip)|[war](http://code.google.com/p/gitblit/downloads/detail?name=gitblit-0.6.0.war)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=fedclient-0.6.0.zip)) based on [JGit 1.1.0 (201109151100-r)][jgit] *released 2011-09-27* | |||
- added: federation feature to allow gitblit instances (or gitblit federation clients) to pull repositories and, optionally, settings and accounts from other gitblit instances. This is something like [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html) 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: federation feature to allow gitblit instances (or gitblit federation clients) to pull repositories and, optionally, settings and accounts from other gitblit instances. This is something like [svn-sync](http://svnbook.red-bean.com/en/1.5/svn.ref.svnsync.html) for gitblit. | |||
**New:** *federation.name =* | |||
**New:** *federation.passphrase =* | |||
**New:** *federation.allowProposals = false* | |||
**New:** *federation.proposalsFolder = proposals* | |||
**New:** *federation.defaultFrequency = 60 mins* | |||
**New:** *federation.sets =* | |||
**New:** *mail.* settings for sending emails | |||
**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 | |||
@@ -42,8 +44,10 @@ | |||
- fixed: users can now change their passwords (issue 1) | |||
- fixed: always show root repository group first, i.e. don't sort root group with other groups | |||
- fixed: tone-down repository group header color | |||
- added: optionally display repository on-disk size on repositories page<br/>**New:** *web.showRepositorySizes = true* | |||
- added: forward-slashes ('/', %2F) can be encoded using a custom character to workaround some servlet container default security measures for proxy servers<br/>**New:** *web.forwardSlashCharacter = /* | |||
- added: optionally display repository on-disk size on repositories page | |||
**New:** *web.showRepositorySizes = true* | |||
- added: forward-slashes ('/', %2F) can be encoded using a custom character to workaround some servlet container default security measures for proxy servers | |||
**New:** *web.forwardSlashCharacter = /* | |||
- updated: MarkdownPapers 1.1.0 | |||
- updated: Jetty 7.4.3 | |||
@@ -411,10 +411,10 @@ public class Build { | |||
237000, 0, 0, "c94f54227b08100974c36170dcb53329435fe5ad", "", ""); | |||
public static final MavenObject MARKDOWNPAPERS = new MavenObject("MarkdownPapers", | |||
"org/tautua/markdownpapers", "markdownpapers-core", "1.1.1", 87000, 58000, 278000, | |||
"07046e6d8f33866398dfc3955698925df9ff7719", | |||
"178b49c34dbab6301ce848b67e7957bcf9b94d6a", | |||
"160d370f6cb119a1b46a00f37cc28d23fd27daed"); | |||
"org/tautua/markdownpapers", "markdownpapers-core", "1.2.3", 87000, 58000, 278000, | |||
"657ff8e54936a25a6d8a53c2b12213cada10594a", | |||
"1c60eb17b4a4547f87fb13adad2c3f204a54003c", | |||
"760d0dac5b3529c5fcd13075f2097bf81ad0e6ce"); | |||
public static final MavenObject BOUNCYCASTLE = new MavenObject("BouncyCastle", | |||
"org/bouncycastle", "bcprov-jdk16", "1.46", 1900000, 1400000, 4670000, |