Browse Source

Documentation. Updated to MarkdownPapers 1.2.3.

tags/v0.7.0
James Moger 12 years ago
parent
commit
3b52895a44
10 changed files with 150 additions and 127 deletions
  1. 5
    5
      .classpath
  2. 15
    14
      docs/00_index.mkd
  3. 9
    12
      docs/01_features.mkd
  4. 16
    16
      docs/01_screenshots.mkd
  5. 33
    30
      docs/01_setup.mkd
  6. 22
    22
      docs/02_federation.mkd
  7. 24
    6
      docs/03_faq.mkd
  8. 4
    4
      docs/04_design.mkd
  9. 18
    14
      docs/04_releases.mkd
  10. 4
    4
      src/com/gitblit/build/Build.java

+ 5
- 5
.classpath View File

@@ -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>

+ 15
- 14
docs/00_index.mkd View File

@@ -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] &nbsp; *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]

+ 9
- 12
docs/01_features.mkd View File

@@ -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

+ 16
- 16
docs/01_screenshots.mkd View File

@@ -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>

+ 33
- 30
docs/01_setup.mkd View File

@@ -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:
- &lt;context-parameter&gt; *git.repositoryFolder* (set the full path to your repositories folder)
- &lt;context-parameter&gt; *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>

+ 22
- 22
docs/02_federation.mkd View File

@@ -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

+ 24
- 6
docs/03_faq.mkd View File

@@ -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 &lt;context-param&gt; *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.

+ 4
- 4
docs/04_design.mkd View File

@@ -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.

+ 18
- 14
docs/04_releases.mkd View File

@@ -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] &nbsp; *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] &nbsp; *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

+ 4
- 4
src/com/gitblit/build/Build.java View File

@@ -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,

Loading…
Cancel
Save