<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/jetty-webapp-7.4.3.v20110701-javadoc.jar!/"/>\r
</attributes>\r
</classpathentry>\r
- <classpathentry kind="lib" path="ext/markdownpapers-core-1.1.1.jar" sourcepath="ext/markdownpapers-core-1.1.1-sources.jar">\r
- <attributes>\r
- <attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/markdownpapers-core-1.1.1-javadoc.jar!/"/>\r
- </attributes>\r
- </classpathentry>\r
<classpathentry kind="lib" path="ext/gson-1.7.1.jar" sourcepath="ext/gson-1.7.1-sources.jar">\r
<attributes>\r
<attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/gson-1.7.1-javadoc.jar!/"/>\r
</attributes>\r
</classpathentry>\r
<classpathentry kind="lib" path="ext/javax.servlet-3.0.1.jar" sourcepath="ext/javax.servlet-3.0.1-sources.jar"/>\r
+ <classpathentry kind="lib" path="ext/markdownpapers-core-1.2.3.jar" sourcepath="ext/markdownpapers-core-1.2.3-sources.jar">\r
+ <attributes>\r
+ <attribute name="javadoc_location" value="jar:platform:/resource/gitblit/ext/markdownpapers-core-1.2.3-javadoc.jar!/"/>\r
+ </attributes>\r
+ </classpathentry>\r
<classpathentry kind="output" path="bin"/>\r
</classpath>\r
Its designed primarily as a tool for small workgroups who want to host centralized repositories.\r
\r
Gitblit is available in two variations:\r
-<ul class='noBullets'>\r
-<li>*Gitblit GO* - a complete & integrated pure Java stack<p>\r
- This is what you should download if you want to go from zero to Git in less than 5 mins.<br/>\r
- Gitblit GO is like a mashup of Apache httpd, [Git][git], and Gitweb with simplified configuration and maintenance.<br/>\r
- All dependencies are downloaded on first execution.<p>\r
-<li>*Gitblit WAR* - a traditional WAR distribution<p>\r
- This is what you should download if you want to deploy Gitblit into your own servlet container (e.g. Tomcat, Jetty, etc).<br/>\r
+\r
+1. *Gitblit GO* - a complete & integrated pure Java stack\r
+ \r
+ This is what you should download if you want to go from zero to Git in less than 5 mins. \r
+ Gitblit GO is like a mashup of Apache httpd, [Git][git], and Gitweb with simplified configuration and maintenance. \r
+ All dependencies are downloaded on first execution.\r
+2. *Gitblit WAR* - a traditional WAR distribution\r
+ \r
+ This is what you should download if you want to deploy Gitblit into your own servlet container (e.g. Tomcat, Jetty, etc). \r
All dependencies are bundled.\r
-</ul>\r
\r
### Tools\r
-<ul class='noBullets'>\r
-<li>*Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings\r
-</ul>\r
+\r
+- *Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings\r
\r
### Java Runtime Requirement\r
\r
\r
**%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%*\r
\r
-- improved: updated ui with Twitter's Bootstrap CSS toolkit\r
-<br/>**New:** *web.loginMessage = gitblit*\r
+- improved: updated ui with Twitter's Bootstrap CSS toolkit \r
+ **New:** *web.loginMessage = gitblit*\r
- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8)\r
- fixed: Set the RSS content type for Firefox 4 (issue 22)\r
- fixed: Null pointer exception if did not set federation strategy (issue 20)\r
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
- added: IUserService.setup(IStoredSettings) for custom user service implementations\r
-- added: setting to control Gitblit GO context path for proxy setups<br/>**New:** *server.contextPath = /*\r
+- added: setting to control Gitblit GO context path for proxy setups \r
+ **New:** *server.contextPath = /*\r
\r
issues, binaries, and sources @ [Google Code][googlecode]<br/>\r
sources @ [Github][gitbltsrc]\r
- JGit SmartHTTP servlet\r
- Browser and git client authentication\r
- Four *per-repository* access control configurations with a Read-Only control flag\r
- <ul class='noBullets'>\r
- <li>![anonymous](blank.png) *Anonymous View, Clone & Push*</li>\r
- <li>![push](lock_go_16x16.png) *Authenticated Push*</li>\r
- <li>![clone](lock_pull_16x16.png) *Authenticated Clone & Push*</li>\r
- <li>![view](shield_16x16.png) *Authenticated View, Clone & Push*</li>\r
- <li>![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)\r
- </ul>\r
+ - ![anonymous](blank.png) *Anonymous View, Clone & Push*\r
+ - ![push](lock_go_16x16.png) *Authenticated Push*\r
+ - ![clone](lock_pull_16x16.png) *Authenticated Clone & Push*\r
+ - ![view](shield_16x16.png) *Authenticated View, Clone & Push*\r
+ - ![freeze](cold_16x16.png) Freeze repository (i.e. deny push, make read-only)\r
- Ability to federate with one or more other Gitblit instances\r
- Gitweb inspired web UI\r
- Administrators may create, edit, rename, or delete repositories through the web UI\r
- Customizable regular expression substitution for commit messages (i.e. bug or code review link integration)\r
- Single text file for users configuration\r
- Optional utility pages\r
- <ul class='noBullets'>\r
- <li>![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository</li>\r
- <li>![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*</li>\r
- </ul>\r
+ - ![docs](book_16x16.png) Docs page which enumerates all Markdown files within a repository\r
+ - ![tickets](bug_16x16.png) Ticgit ticket pages *(based on last MIT release bf57b032 2009-01-27)*\r
\r
## Gitblit GO Features\r
- Out-of-the-box integrated stack requiring minimal configuration\r
-- 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)\r
+- Automatically generates a self-signed certificate for *localhost* https communications \r
+ (includes script to generate a self-signed certificate for *your hostname*, see [setup](/setup.html) for details)\r
- Single text file for configuring server and gitblit\r
- A Windows service installation script and configuration tool\r
\r
## Screenshots\r
<table class="screenshots">\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/00.png" title="Repository & User List">![Repositories](thumbs/00.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/00.png" title="Repository & User List"><img alt="Repositories" src="thumbs/00.png" /></a>\r
<br/>Repository & User List\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/01.png" title="New User">![New User](thumbs/01.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/01.png" title="New User"><img alt="New User" src="thumbs/01.png" /></a>\r
<br/>New User\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/02.png" title="Edit Repository">![Edit Repository](thumbs/02.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/02.png" title="Edit Repository"><img alt="Edit Repository" src="thumbs/02.png" /></a>\r
<br/>Edit Repository\r
</td></tr>\r
\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/03.png" title="Repository Summary">![Summary](thumbs/03.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/03.png" title="Repository Summary"><img alt="Summary" src="thumbs/03.png" /></a>\r
<br/>Repository Summary\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/04.png" title="Repository Log">![Log](thumbs/04.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/04.png" title="Repository Log"><img alt="Log" src="thumbs/04.png" /></a>\r
<br/>Repository Log\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/10.png" title="Repository Tags">![Tags](thumbs/10.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/10.png" title="Repository Tags"><img alt="Tags" src="thumbs/10.png" /></a>\r
<br/>Repository Tags\r
</td></tr>\r
\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/05.png" title="Repository Tree">![Tree](thumbs/05.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/05.png" title="Repository Tree"><img alt="Tree" src="thumbs/05.png" /></a>\r
<br/>Repository Tree\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/06.png" title="Commit Page">![Commit Page](thumbs/06.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/06.png" title="Commit Page"><img alt="Commit Page" src="thumbs/06.png" /></a>\r
<br/>Commit Page\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/07.png" title="Commit Diff">![Commitdiff](thumbs/07.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/07.png" title="Commit Diff"><img alt="Commit Diff" src="thumbs/07.png" /></a>\r
<br/>Commit Diff\r
</td></tr>\r
\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics">![Metrics](thumbs/09.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/09.png" title="Branch Metrics"><img alt="Metrics" src="thumbs/09.png" /></a>\r
<br/>Branch Metrics\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting">![Blob](thumbs/08.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/08.png" title="Blob View with Syntax Highlighting"><img alt="Blob" src="thumbs/08.png" /></a>\r
<br/>Blob View with Syntax Highlighting\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/11.png" title="Blame">![Blame](thumbs/11.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/11.png" title="Blame"><img alt="Blame" src="thumbs/11.png" /></a>\r
<br/>Blame\r
</td></tr>\r
\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/12.png" title="Federation Panels">![FederationPanels](thumbs/12.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/12.png" title="Federation Panels"><img alt="Federation Panels" src="thumbs/12.png" /></a>\r
<br/>Federation Panels\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration">![RegistrationStatus](thumbs/13.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/13.png" title="Detailed Status of a Registration"><img alt="Registration Status" src="thumbs/13.png" /></a>\r
<br/>Detailed Status of a Registration\r
</td><td>\r
- <a rel="screenshots_group" href="screenshots/14.png" title="Send Proposal">![Propose](thumbs/14.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/14.png" title="Send Proposal"><img alt="Propose" src="thumbs/14.png" /></a>\r
<br/>Send Proposal\r
</td></tr>\r
\r
<tr><td>\r
- <a rel="screenshots_group" href="screenshots/15.png" title="Reviewing Received Proposal">![ReviewProposal](thumbs/15.png)</a>\r
+ <a rel="screenshots_group" href="screenshots/15.png" title="Reviewing Received Proposal"><img alt="Review Proposal" src="thumbs/15.png" /></a>\r
<br/>Reviewing Received Proposal\r
</td></tr>\r
\r
## Gitblit WAR Setup\r
\r
-1. Download [Gitblit WAR %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) to the webapps folder of your servlet container.<br/>\r
+1. Download [Gitblit WAR %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%) to the webapps folder of your servlet container. \r
2. You may have to manually extract the WAR (zip file) to a folder within your webapps folder.\r
3. Copy the `WEB-INF/users.properties` file to a location outside the webapps folder that is accessible by your servlet container. \r
-4. The Gitblit webapp is configured through its `web.xml` file.<br/>\r
+4. The Gitblit webapp is configured through its `web.xml` file. \r
Open `web.xml` in your favorite text editor and make sure to review and set:\r
- <context-parameter> *git.repositoryFolder* (set the full path to your repositories folder)\r
- <context-parameter> *realm.userService* (set the full path to `users.properties`)\r
5. You may have to restart your servlet container. \r
6. Open your browser to <http://localhost/gitblit> or whatever the url should be.\r
-7. Click the *Login* link and enter the default administrator credentials: **admin / admin**<br/>\r
+7. Click the *Login* link and enter the default administrator credentials: **admin / admin** \r
**NOTE:** Make sure to change the administrator username and/or password!! \r
\r
## Gitblit GO Setup\r
\r
-1. Download and unzip [Gitblit GO %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%GO%).<br/>\r
+1. Download and unzip [Gitblit GO %VERSION%](http://code.google.com/p/gitblit/downloads/detail?name=%GO%). \r
*Its best to eliminate spaces in the path name.* \r
-2. The server itself is configured through a simple text file.<br/>\r
+2. The server itself is configured through a simple text file. \r
Open `gitblit.properties` in your favorite text editor and make sure to review and set:\r
- *git.repositoryFolder* (path may be relative or absolute)\r
- *server.tempFolder* (path may be relative or absolute)\r
- *server.httpPort* and *server.httpsPort*\r
- - *server.httpBindInterface* and *server.httpsBindInterface*<br/>\r
+ - *server.httpBindInterface* and *server.httpsBindInterface* \r
**https** is strongly recommended because passwords are insecurely transmitted form your browser/git client using Basic authentication!\r
3. Execute `gitblit.cmd` or `java -jar gitblit.jar` from a command-line\r
-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*.\r
+4. Wait a minute or two while all dependencies are downloaded and your self-signed *localhost* certificate is generated. \r
+ Please see the section titled **Creating your own Self-Signed Certificate** to generate a certificate for *your hostname*.\r
5. Open your browser to <http://localhost:8080> or <https://localhost:8443> depending on your chosen configuration.\r
-6. Click the *Login* link and enter the default administrator credentials: **admin / admin**<br/>\r
+6. Click the *Login* link and enter the default administrator credentials: **admin / admin** \r
**NOTE:** Make sure to change the administrator username and/or password!! \r
\r
### Creating your own Self-Signed Certificate\r
2. Set *your hostname* into the *HOSTNAME* variable.\r
3. Execute the script.<br/>This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*.\r
\r
-**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!\r
+**NOTE:** \r
+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!\r
\r
Additionally, if you want to change the value of *server.storePassword* (recommended) you will have to generate a new certificate afterwards.\r
\r
Gitblit uses [Apache Commons Daemon](http://commons.apache.org/daemon) to install and configure its Windows service.\r
\r
1. Review the contents of the `installService.cmd`\r
-2. Set the *ARCH* value as appropriate for your installed Java Virtual Machine.<br/>\r
+2. Set the *ARCH* value as appropriate for your installed Java Virtual Machine.\r
3. Add any necessary *--StartParams* as enumerated below in **Command-Line Parameters**.\r
4. Execute the script.\r
\r
1. Execute `gitblitw.exe`\r
2. On the *Java* tab uncheck *Use default*.\r
3. Manually navigate your filesystem and specify the server VM with the `...` button<br/><pre>\r
- Java Virtual Machine:\r
- C:\Program Files\Java\jre6\bin\server\jvm.dll</pre>\r
+Java Virtual Machine:\r
+C:\Program Files\Java\jre6\bin\server\jvm.dll</pre>\r
\r
#### Command-Line Parameters\r
Command-Line parameters override the values in `gitblit.properties` at runtime.\r
6. Review and optionally apply any new settings as indicated in the [release log](releases.html).\r
\r
#### Upgrading Windows Service\r
-You may need to delete your old service definition and install a new one depending on what has changed in the release. \r
- \r
+You may need to delete your old service definition and install a new one depending on what has changed in the release.\r
+\r
## Gitblit Configuration\r
\r
### Administering Repositories\r
federationStrategy = FEDERATE_THIS\r
isFederated = false\r
federationSets = \r
- \r
+\r
#### Repository Names\r
Repository names must be unique and are CASE-SENSITIVE ON CASE-SENSITIVE FILESYSTEMS. The name must be composed of letters, digits, or `/ _ - .`<br/>\r
Whitespace is illegal.\r
username,password,role1,role2,role3...\r
\r
#### Usernames\r
-Usernames must be unique and are case-insensitive.<br/>\r
+Usernames must be unique and are case-insensitive. \r
Whitespace is illegal.\r
\r
#### Passwords\r
## Authentication and Authorization Customization\r
Instead of maintaining a `users.properties` file, you may want to integrate Gitblit into an existing environment.\r
\r
-You may use your own custom *com.gitblit.IUserService* implementation by specifying its fully qualified classname in the *realm.userService* setting.<br/>\r
+You may use your own custom *com.gitblit.IUserService* implementation by specifying its fully qualified classname in the *realm.userService* setting.\r
\r
Your user service class must be on Gitblit's classpath and must have a public default constructor. \r
\r
### Https with Self-Signed Certificates\r
You must tell Git/JGit not to verify the self-signed certificate in order to perform any remote Git operations.\r
\r
-**NOTE:**<br/>\r
-The default self-signed certificate generated by Gitlbit GO is bound to *localhost*.<br/>\r
-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/>\r
+**NOTE:** \r
+The default self-signed certificate generated by Gitlbit GO is bound to *localhost*. \r
+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. \r
You must do this because Eclipse/EGit/JGit (<= 1.1.0) always verifies certificate hostnames, regardless of the *http.sslVerify=false* client-side setting. \r
\r
-- Eclipse/EGit/JGit\r
+- **Eclipse/EGit/JGit**\r
1. Window->Preferences->Team->Git->Configuration\r
2. Click the *New Entry* button\r
- 3. <pre>Key = *http.sslVerify* \r
- Value = *false*</pre>\r
-- Command-line Git ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html))\r
- <pre>git config --global --bool --add http.sslVerify false</pre>\r
+ 3. <pre>Key = <em>http.sslVerify</em>\r
+Value = <em>false</em></pre>\r
+- **Command-line Git** ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html)) \r
+<pre>git config --global --bool --add http.sslVerify false</pre>\r
\r
### Cloning an Access Restricted Repository \r
-- Eclipse/EGit/JGit<br/>Nothing special to configure, EGit figures out everything.\r
- <pre>https://yourserver/git/your/repository</pre>\r
-- Command-line Git<br/>*My testing indicates that your username must be embedded in the url. YMMV.*\r
- <pre>https://username@yourserver/git/your/repository</pre>\r
-
\ No newline at end of file
+- **Eclipse/EGit/JGit** \r
+Nothing special to configure, EGit figures out everything.\r
+<pre>https://yourserver/git/your/repository</pre>\r
+- **Command-line Git** \r
+My testing indicates that your username must be embedded in the url. YMMV. \r
+<pre>https://username@yourserver/git/your/repository</pre>
\ No newline at end of file
\r
The federation feature is completely disabled if your passphrase value is empty.\r
\r
-**NOTE**:<br/>\r
+**NOTE**: \r
Changing your *federation.passphrase* will break any registrations you have established with other Gitblit instances.\r
\r
### Pulling Gitblit Instance Requirements\r
String repositoriesToken = SHA1(passphrase + "-REPOSITORIES");\r
%ENDCODE%\r
\r
-The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings.<br/>\r
-The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and user accounts.<br/>\r
+The *ALL* token allows another Gitblit instance to pull all your repositories, user accounts, and server settings. \r
+The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and user accounts. \r
The *REPOSITORIES* token only allows pulling of the repositories.\r
\r
Individual Gitblit repository configurations such as *description* and *accessRestriction* are always mirrored.\r
\r
Once you have properly setup your passphrase and can see your federation tokens, you are ready to share them with a pulling Gitblit instance.\r
\r
-The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance.<br/>\r
+The registration process can be partially automated by sending a *federation proposal* to the pulling Gitblit instance. \r
To send a proposal:\r
\r
1. Login to your Gitblit instance as an administrator\r
-2. Select and click the *propose* link for the appropriate token at the bottom of the repositories page\r
+2. Select and click the *propose* link for the appropriate token on the *federation* page\r
3. Confirm the publicly accessible url of your (origin) Gitblit instance\r
4. Enter the url of the pulling Gitblit instance you want to federate with\r
5. Optionally enter a message for the administrators\r
2. the federation token you selected and its type\r
3. the list of your *non-excluded* repositories, and their configuration details, that you propose to share\r
\r
-Submitting a proposal does not automatically register your server with the pulling Gitblit instance.<br/>\r
+Submitting a proposal does not automatically register your server with the pulling Gitblit instance. \r
Registration is a manual process for an administrator.\r
\r
### Federation Proposals (Pulling Gitblit Instance)\r
\r
#### Origin Verification\r
\r
-During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration.<br/>\r
+During a federated pull operation, Gitblit does check that the *origin* of the local repository starts with the url of the federation registration. \r
If they do not match, the repository is skipped and this is indicated in the log.\r
\r
#### User Accounts\r
\r
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.\r
\r
-**NOTE:**<br/>\r
-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/>\r
+**NOTE:** \r
+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. \r
Please consider adding the *#notfederated* role to your admin account!\r
\r
#### Server Settings \r
<table>\r
<tr><th>federation.N.url</th>\r
<td>string</td>\r
-<td>the url of the origin Gitblit instance *(required)*</td>\r
+<td>the url of the origin Gitblit instance <em>(required)</em></td>\r
</tr>\r
\r
<tr><th>federation.N.token</th>\r
<td>string</td>\r
-<td>the token provided by the origin Gitblit instance *(required)*</td>\r
+<td>the token provided by the origin Gitblit instance <em>(required)</em></td>\r
</tr>\r
\r
<tr><th>federation.N.frequency</th>\r
\r
<tr><th>federation.N.folder</th>\r
<td>string</td>\r
-<td>the destination folder, relative to *git.repositoriesFolder*, for these repositories.<br/>default is *git.repositoriesFolder*</td>\r
+<td>the destination folder, relative to <em>git.repositoriesFolder</em>, for these repositories.<br/>default is <em>git.repositoriesFolder</em></td>\r
</tr>\r
\r
<tr><th>federation.N.bare</th>\r
<td>boolean</td>\r
-<td>if **true** *(default)*, each repository is cloned as a bare repository (i.e. no working folder).</td>\r
+<td>if <b>true</b> <em>(default)</em>, each repository is cloned as a bare repository (i.e. no working folder).</td>\r
</tr>\r
\r
<tr><th>federation.N.mirror</th>\r
<td>boolean</td>\r
-<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>\r
+<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>\r
</tr>\r
\r
<tr><th>federation.N.mergeAccounts</th>\r
<td>boolean</td>\r
-<td>if **true**, merge the retrieved accounts into the `users.properties` of **this** Gitblit instance.<br/>*default is false*</td>\r
+<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>\r
</tr>\r
\r
<tr><th>federation.N.sendStatus</th>\r
<td>boolean</td>\r
-<td>if **true**, send the status of the federated pull to the origin Gitblit instance.<br/>*default is false*</td>\r
+<td>if <b>true</b>, send the status of the federated pull to the origin Gitblit instance.<br/><em>default is false</em></td>\r
</tr>\r
\r
<tr><th>federation.N.include</th>\r
<td>string array<br/>(space-delimited)</td>\r
-<td>list of included repositories *(wildcard and fuzzy matching supported)*</td>\r
+<td>list of included repositories <em>(wildcard and fuzzy matching supported)</em></td>\r
</tr>\r
\r
<tr><th>federation.N.exclude</th>\r
<td>string array<br/>(space-delimited)</td>\r
-<td>list of excluded repositories *(wildcard and fuzzy matching supported)*</td>\r
+<td>list of excluded repositories <em>(wildcard and fuzzy matching supported)</em></td>\r
</tr>\r
\r
<tr><th>federation.N.notifyOnError</th>\r
<td>boolean</td>\r
-<td>if **true**, send an email to the administrators on an error.<br/>*default is false*</td>\r
+<td>if <b>true</b>, send an email to the administrators on an error.<br/><em>default is false</em></td>\r
</tr>\r
</table>\r
\r
\r
#### Just Repositories Example\r
\r
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>\r
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. \r
The repositories will be put in *git.repositoriesFolder*/example2.\r
\r
federation.example2.url = https://tomcat.gitblit.com/gitblit\r
\r
#### All-but-One Repository Example\r
\r
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>\r
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. \r
The repositories will be put in *git.repositoriesFolder*/example3.\r
\r
federation.example3.url = https://tomcat.gitblit.com/gitblit\r
\r
#### Just One Repository Example\r
\r
-This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance.<br/>\r
+This assumes that the *token* is the *REPOSITORIES* token from the origin gitblit instance. \r
The repositories will be put in *git.repositoriesFolder*/example4.\r
\r
federation.example4.url = https://tomcat.gitblit.com/gitblit\r
1. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false*\r
1. Window->Preferences->Team->Git->Configuration\r
2. Click the *New Entry* button\r
- 3. <pre>Key = *http.sslVerify* \r
- Value = *false*</pre>\r
+ 3. <pre>Key = <em>http.sslVerify</em>\r
+Value = <em>false</em></pre>\r
2. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push between machines.\r
1. Review the contents of `makekeystore.cmd`\r
2. Set *your hostname* in the *HOSTNAME* variable.\r
Confirm that the <context-param> *realm.userService* value in your `web.xml` file actually points to a `users.properties` file.\r
\r
### Gitblit won't open my grouped repository (/group/myrepo.git) or browse my log/branch/tag/ref?!\r
-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`:\r
+This is likely an url encoding/decoding problem with forward slashes:\r
+\r
+**bad**\r
+\r
+ http://192.168.1.2/log/myrepo.git/refs/heads/master\r
+\r
+**good**\r
+\r
+ http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster\r
+\r
+**NOTE:** \r
+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*.\r
+\r
+There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`:\r
\r
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*).\r
2. try changing *web.forwardSlashCharacter* to an asterisk or a **!**\r
\r
-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).\r
+### Running Gitblit behind mod_proxy or some other proxy layer\r
+\r
+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*.\r
+\r
+If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes).\r
\r
## General Interest Questions\r
\r
No (mostly). Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>\r
Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution.\r
\r
-**mostly**<br/>\r
+#### mostly\r
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.\r
\r
### Can I run Gitblit in conjunction with my existing Git tooling?\r
### Can I manually edit users.properties, gitblit.properties, or .git/config?\r
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`.\r
\r
-**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.\r
+**NOTE:** \r
+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.\r
\r
### Can I restrict access to paths within a repository?\r
No. Access restrictions apply to the repository as a whole.\r
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.\r
\r
1. Clone the git repository from [Github][gitbltsrc].\r
-2. Import the gitblit project into your Eclipse workspace.<br/>\r
+2. Import the gitblit project into your Eclipse workspace. \r
*There will be lots of build errors.*\r
-3. Using Ant, execute the `build.xml` script in the project root.<br/>\r
+3. Using Ant, execute the `build.xml` script in the project root. \r
*This will download all necessary build dependencies and will also generate the Keys class for accessing settings.*\r
4. Select your gitblit project root and **Refresh** the project, this should correct all build problems.\r
-5. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite.<br/>\r
+5. Using JUnit, execute the `com.gitblit.tests.GitBlitSuite` test suite. \r
*This will clone some repositories from the web and run through the unit tests.*\r
5. Review the settings in `gitblit.properties` in your project root.\r
- - By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite.<br/>\r
+ - By default, the *git.repositoriesFolder* points to the repositories cloned by the test suite. \r
- If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user. \r
6. Execute the *com.gitblit.Launcher* class to start Gitblit.\r
\r
### Current Release\r
**%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%*\r
\r
-- improved: updated ui with Twitter's Bootstrap CSS toolkit\r
-<br/>**New:** *web.loginMessage = gitblit*\r
+- improved: updated ui with Twitter's Bootstrap CSS toolkit \r
+ **New:** *web.loginMessage = gitblit*\r
- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8)\r
- fixed: Set the RSS content type for Firefox 4 (issue 22)\r
- fixed: Null pointer exception if did not set federation strategy (issue 20)\r
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
- added: IUserService.setup(IStoredSettings) for custom user service implementations\r
-- added: setting to control Gitblit GO context path for proxy setups<br/>**New:** *server.contextPath = /*\r
+- added: setting to control Gitblit GO context path for proxy setups \r
+ **New:** *server.contextPath = /*\r
+- updated: MarkdownPapers 1.2.3\r
\r
### Older Releases\r
\r
**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*\r
\r
-- 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.\r
-<br/>**New:** *federation.name =*\r
-<br/>**New:** *federation.passphrase =*\r
-<br/>**New:** *federation.allowProposals = false*\r
-<br/>**New:** *federation.proposalsFolder = proposals*\r
-<br/>**New:** *federation.defaultFrequency = 60 mins*\r
-<br/>**New:** *federation.sets =*\r
-<br/>**New:** *mail.* settings for sending emails\r
-<br/>**New:** user role *#notfederated* to prevent a user account from being pulled by a federated Gitblit instance\r
+- 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. \r
+ **New:** *federation.name =* \r
+ **New:** *federation.passphrase =* \r
+ **New:** *federation.allowProposals = false* \r
+ **New:** *federation.proposalsFolder = proposals* \r
+ **New:** *federation.defaultFrequency = 60 mins* \r
+ **New:** *federation.sets =* \r
+ **New:** *mail.* settings for sending emails \r
+ **New:** user role *#notfederated* to prevent a user account from being pulled by a federated Gitblit instance \r
- added: google-gson dependency\r
- added: javamail dependency\r
- updated: MarkdownPapers 1.1.1\r
- fixed: users can now change their passwords (issue 1)\r
- fixed: always show root repository group first, i.e. don't sort root group with other groups\r
- fixed: tone-down repository group header color\r
-- added: optionally display repository on-disk size on repositories page<br/>**New:** *web.showRepositorySizes = true*\r
-- 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 = /*\r
+- added: optionally display repository on-disk size on repositories page \r
+ **New:** *web.showRepositorySizes = true*\r
+- added: forward-slashes ('/', %2F) can be encoded using a custom character to workaround some servlet container default security measures for proxy servers \r
+ **New:** *web.forwardSlashCharacter = /*\r
- updated: MarkdownPapers 1.1.0\r
- updated: Jetty 7.4.3\r
\r
237000, 0, 0, "c94f54227b08100974c36170dcb53329435fe5ad", "", "");\r
\r
public static final MavenObject MARKDOWNPAPERS = new MavenObject("MarkdownPapers",\r
- "org/tautua/markdownpapers", "markdownpapers-core", "1.1.1", 87000, 58000, 278000,\r
- "07046e6d8f33866398dfc3955698925df9ff7719",\r
- "178b49c34dbab6301ce848b67e7957bcf9b94d6a",\r
- "160d370f6cb119a1b46a00f37cc28d23fd27daed");\r
+ "org/tautua/markdownpapers", "markdownpapers-core", "1.2.3", 87000, 58000, 278000,\r
+ "657ff8e54936a25a6d8a53c2b12213cada10594a",\r
+ "1c60eb17b4a4547f87fb13adad2c3f204a54003c",\r
+ "760d0dac5b3529c5fcd13075f2097bf81ad0e6ce");\r
\r
public static final MavenObject BOUNCYCASTLE = new MavenObject("BouncyCastle",\r
"org/bouncycastle", "bcprov-jdk16", "1.46", 1900000, 1400000, 4670000,\r