diff options
-rw-r--r-- | .classpath | 10 | ||||
-rw-r--r-- | docs/00_index.mkd | 42 | ||||
-rw-r--r-- | docs/01_features.mkd | 22 | ||||
-rw-r--r-- | docs/01_screenshots.mkd | 32 | ||||
-rw-r--r-- | docs/01_setup.mkd | 63 | ||||
-rw-r--r-- | docs/02_federation.mkd | 50 | ||||
-rw-r--r-- | docs/03_faq.mkd | 30 | ||||
-rw-r--r-- | docs/04_design.mkd | 8 | ||||
-rw-r--r-- | docs/04_releases.mkd | 47 | ||||
-rw-r--r-- | src/com/gitblit/build/Build.java | 8 | ||||
-rw-r--r-- | tests/com/gitblit/tests/MarkdownUtilsTest.java | 5 |
11 files changed, 177 insertions, 140 deletions
@@ -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>
diff --git a/docs/00_index.mkd b/docs/00_index.mkd index 16a7a9e3..b208ccad 100644 --- a/docs/00_index.mkd +++ b/docs/00_index.mkd @@ -5,21 +5,21 @@ 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 RPC Client* - a Java Swing tool to clone repositories and remotely administer a Gitblit server
-<li>*Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings
-</ul>
+
+- *Gitblit RPC Client* - a Java Swing tool to clone repositories and remotely administer a Gitblit server
+- *Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings
### Java Runtime Requirement
@@ -29,20 +29,22 @@ 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%)|[rpcclient](http://code.google.com/p/gitblit/downloads/detail?name=%RPCCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%*
-- improved: overhauled web ui with Twitter's Bootstrap CSS toolkit
-<br/>**New:** *web.loginMessage = gitblit*
-- added: authenticated JSON RPC mechanism
-<br/>**New:** *web.enableRpcServlet = true*
-<br/>**New:** *web.enableRpcAdministration = false*
+- improved: updated ui with Twitter's Bootstrap CSS toolkit
+ **New:** *web.loginMessage = gitblit*
+- added: authenticated JSON RPC mechanism
+ **New:** *web.enableRpcServlet = true*
+ **New:** *web.enableRpcAdministration = false*
- added: reusable JSON RPC client class
-- added: Swing RPC Client application for cloning and administration of repositories, users, and federation proposals.
-- fixed/broke: federation protocol. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard. This breaks 0.6.0 federation clients/servers.
+- added: Swing RPC Client application for cloning and administration of repositories, users, & federation proposals.
+- fixed: federation protocol timestamps. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard.
+ **This breaks 0.6.0 federation clients/servers.**
- 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]
diff --git a/docs/01_features.mkd b/docs/01_features.mkd index 1a546128..93647101 100644 --- a/docs/01_features.mkd +++ b/docs/01_features.mkd @@ -2,14 +2,13 @@ - 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
+- JSON RPC interface
- Gitweb inspired web UI
- Administrators may create, edit, rename, or delete repositories through the web UI
- Administrators may create, edit, rename, or delete users through the web UI
@@ -27,14 +26,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
diff --git a/docs/01_screenshots.mkd b/docs/01_screenshots.mkd index 3b50c13f..1ae56337 100644 --- a/docs/01_screenshots.mkd +++ b/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>
diff --git a/docs/01_setup.mkd b/docs/01_setup.mkd index 125bac23..42f7c0ca 100644 --- a/docs/01_setup.mkd +++ b/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. Enter the default administrator credentials: **admin / admin** and click the *Login* button
**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. Enter the default administrator credentials: **admin / admin** and click the *Login* button
**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>
-
\ No newline at end of file +- **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>
\ No newline at end of file diff --git a/docs/02_federation.mkd b/docs/02_federation.mkd index abf171e3..dff71875 100644 --- a/docs/02_federation.mkd +++ b/docs/02_federation.mkd @@ -11,6 +11,12 @@ Please review all the documentation to understand how it works and its limitatio 
+### Important Changes to Note
+
+The Gitblit 0.7.0 federation protocol is incompatible with the 0.6.0 federation protocol because of a change in the way timestamps are formatted.
+
+Gitblit 0.6.0 uses the default [google-gson](http://google-gson.googlecode.com) timestamp serializer which generates locally formatted timestamps. Unfortunately, this creates problems for distributed repositories and distributed developers. Gitblit 0.7.0 corrects this error by serializing dates to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard. As a result 0.7.0 is not compatible with 0.6.0. A partial backwards-compatibility fallback was considered but it would only work one direction and since the federation mechanism is bidirectional it was not implemented.
+
### Origin Gitblit Instance Requirements
- *git.enableGitServlet* must be true, all Git clone and pull requests are handled through Gitblit's JGit servlet
@@ -27,7 +33,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 +52,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 +70,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 +90,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 +148,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 +159,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 +184,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 +199,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 +263,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 +275,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 +288,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
diff --git a/docs/03_faq.mkd b/docs/03_faq.mkd index f690f266..fdc20200 100644 --- a/docs/03_faq.mkd +++ b/docs/03_faq.mkd @@ -6,8 +6,8 @@ There are a few ways this can occur: 1. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false*
1. Window->Preferences->Team->Git->Configuration
2. Click the *New Entry* button
- 3. <pre>Key = *http.sslVerify*
- Value = *false*</pre>
+ 3. <pre>Key = <em>http.sslVerify</em>
+Value = <em>false</em></pre>
2. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push between machines.
1. Review the contents of `makekeystore.cmd`
2. Set *your hostname* in the *HOSTNAME* variable.
@@ -37,12 +37,29 @@ Run the server as *root* (security concern) or change the ports you are serving Confirm that the <context-param> *realm.userService* value in your `web.xml` file actually points to a `users.properties` file.
### Gitblit won't open my grouped repository (/group/myrepo.git) or browse my log/branch/tag/ref?!
-This is likely an url encoding/decoding problem with forward slashes. There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`:
+This is likely an url encoding/decoding problem with forward slashes:
+
+**bad**
+
+ http://192.168.1.2/log/myrepo.git/refs/heads/master
+
+**good**
+
+ http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster
+
+**NOTE:**
+You can not trust the url in the address bar of your browser since your browser may *prettify* the url. When in doubt, *View Source* of the generated html to confirm the *href*.
+
+There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`:
1. try setting *web.mountParameters* to *false*.<br/>This changes the url scheme from mounted (*/commit/myrepo.git/abcdef*) to parameterized (*/commit/?r=myrepo.git&h=abcdef*).
2. try changing *web.forwardSlashCharacter* to an asterisk or a **!**
-Also, if you are running Gitblit behind a proxy, you must ensure that the proxy does not decode and then re-encode request urls with interpretation of *%2F*. If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes).
+### Running Gitblit behind mod_proxy or some other proxy layer
+
+You must ensure that the proxy does not decode and then re-encode request urls with interpretation of forward-slashes (*%2F*). If your proxy layer does re-encode embedded forward-slashes then you may not be able to browse grouped repositories or logs, branches, and tags **unless** you set *web.mountParameters=false*.
+
+If you are using Apache mod_proxy, specify [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes).
## General Interest Questions
@@ -74,7 +91,7 @@ Additionally, Git and Gitweb do not offer repository creation or user management No (mostly). Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>
Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution.
-**mostly**<br/>
+#### mostly
JGit does not fully support the git-gc featureset (garbage collection) so you may want native Git to periodically run git-gc until [JGit][jgit] fully supports this feature.
### Can I run Gitblit in conjunction with my existing Git tooling?
@@ -89,7 +106,8 @@ No. Gitblit stores its repository configuration information within the `.git/co ### Can I manually edit users.properties, gitblit.properties, or .git/config?
Yes. You can manually manipulate all of them and (most) changes will be immediately available to Gitblit.<br/>Exceptions to this are noted in `gitblit.properties`.
-**NOTE:**<br/>Care must be taken to preserve the relationship between user roles and repository names.<br/>Please see the *User Roles* section of the [setup](/setup.html) page for details.
+**NOTE:**
+Care must be taken to preserve the relationship between user roles and repository names.<br/>Please see the *User Roles* section of the [setup](/setup.html) page for details.
### Can I restrict access to paths within a repository?
No. Access restrictions apply to the repository as a whole.
diff --git a/docs/04_design.mkd b/docs/04_design.mkd index fe22674d..921bc8bb 100644 --- a/docs/04_design.mkd +++ b/docs/04_design.mkd @@ -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.
diff --git a/docs/04_releases.mkd b/docs/04_releases.mkd index ea383b9e..35dd188c 100644 --- a/docs/04_releases.mkd +++ b/docs/04_releases.mkd @@ -3,34 +3,37 @@ ### 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%)|[rpcclient](http://code.google.com/p/gitblit/downloads/detail?name=%RPCCLIENT%)) based on [%JGIT%][jgit] *released %BUILDDATE%*
-- improved: overhauled web ui with Twitter's Bootstrap CSS toolkit
-<br/>**New:** *web.loginMessage = gitblit*
-- added: authenticated JSON RPC mechanism
-<br/>**New:** *web.enableRpcServlet = true*
-<br/>**New:** *web.enableRpcAdministration = false*
+- improved: updated ui with Twitter's Bootstrap CSS toolkit
+ **New:** *web.loginMessage = gitblit*
+- added: authenticated JSON RPC mechanism
+ **New:** *web.enableRpcServlet = true*
+ **New:** *web.enableRpcAdministration = false*
- added: reusable JSON RPC client class
-- added: Swing RPC Client application for cloning and administration of repositories, users, and federation proposals.
-- fixed/broke: federation protocol. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard. This breaks 0.6.0 federation clients/servers.
+- added: Swing RPC Client application for cloning and administration of repositories, users, & federation proposals.
+- fixed: federation protocol timestamps. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard.
+ **This breaks 0.6.0 federation clients/servers.**
- 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: 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
@@ -48,8 +51,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
@@ -63,4 +68,4 @@ - initial release
-[jgit]: http://eclipse.org/jgit "Eclipse JGit Site" +[jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
\ No newline at end of file diff --git a/src/com/gitblit/build/Build.java b/src/com/gitblit/build/Build.java index 6ca8cb6b..5589c5fc 100644 --- a/src/com/gitblit/build/Build.java +++ b/src/com/gitblit/build/Build.java @@ -428,10 +428,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,
diff --git a/tests/com/gitblit/tests/MarkdownUtilsTest.java b/tests/com/gitblit/tests/MarkdownUtilsTest.java index 451b9f0d..d421fb16 100644 --- a/tests/com/gitblit/tests/MarkdownUtilsTest.java +++ b/tests/com/gitblit/tests/MarkdownUtilsTest.java @@ -34,6 +34,11 @@ public class MarkdownUtilsTest extends TestCase { MarkdownUtils.transformMarkdown("**THIS ** is a test"));
assertEquals("<p>** THIS** is a test</p>",
MarkdownUtils.transformMarkdown("** THIS** is a test"));
+
+ assertEquals("<table><tr><td>test</td></tr></table>", MarkdownUtils.transformMarkdown("<table><tr><td>test</td></tr></table>"));
+ assertEquals("<table><tr><td><test></td></tr></table>",
+ MarkdownUtils.transformMarkdown("<table><tr><td><test></td></tr></table>"));
+
try {
MarkdownUtils.transformMarkdown((String) null);
assertTrue(false);
|