.classpath | ●●●●● patch | view | raw | blame | history | |
docs/00_index.mkd | ●●●●● patch | view | raw | blame | history | |
docs/01_features.mkd | ●●●●● patch | view | raw | blame | history | |
docs/01_screenshots.mkd | ●●●●● patch | view | raw | blame | history | |
docs/01_setup.mkd | ●●●●● patch | view | raw | blame | history | |
docs/02_federation.mkd | ●●●●● patch | view | raw | blame | history | |
docs/03_faq.mkd | ●●●●● patch | view | raw | blame | history | |
docs/04_design.mkd | ●●●●● patch | view | raw | blame | history | |
docs/04_releases.mkd | ●●●●● patch | view | raw | blame | history | |
src/com/gitblit/build/Build.java | ●●●●● patch | view | raw | blame | history |
.classpath
@@ -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> docs/00_index.mkd
@@ -5,20 +5,20 @@ 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 @@ **%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] docs/01_features.mkd
@@ -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 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> -  *Anonymous View, Clone & Push* -  *Authenticated Push* -  *Authenticated Clone & Push* -  *Authenticated View, Clone & Push* -  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 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> -  Docs page which enumerates all Markdown files within a repository -  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 docs/01_screenshots.mkd
@@ -1,62 +1,62 @@ ## Screenshots <table class="screenshots"> <tr><td> <a rel="screenshots_group" href="screenshots/00.png" title="Repository & User List"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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"></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> docs/01_setup.mkd
@@ -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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ ## 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 @@ ### 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> docs/02_federation.mkd
@@ -27,7 +27,7 @@ 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 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 @@ 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 @@ 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 @@ #### 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 @@ 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 @@ <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 @@ <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 @@ #### 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 @@ #### 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 @@ #### 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 docs/03_faq.mkd
@@ -6,8 +6,8 @@ 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 @@ 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 @@ 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 @@ ### 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. docs/04_design.mkd
@@ -48,15 +48,15 @@ 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. docs/04_releases.mkd
@@ -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 src/com/gitblit/build/Build.java
@@ -411,10 +411,10 @@ 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,