From 3b52895a440a89b24d4b5f670621900c09989cab Mon Sep 17 00:00:00 2001 From: James Moger Date: Tue, 11 Oct 2011 16:59:42 -0400 Subject: [PATCH] Documentation. Updated to MarkdownPapers 1.2.3. --- .classpath | 10 ++--- docs/00_index.mkd | 29 ++++++++------- docs/01_features.mkd | 21 +++++------ docs/01_screenshots.mkd | 32 ++++++++-------- docs/01_setup.mkd | 63 +++++++++++++++++--------------- docs/02_federation.mkd | 44 +++++++++++----------- docs/03_faq.mkd | 30 ++++++++++++--- docs/04_design.mkd | 8 ++-- docs/04_releases.mkd | 32 +++++++++------- src/com/gitblit/build/Build.java | 8 ++-- 10 files changed, 150 insertions(+), 127 deletions(-) diff --git a/.classpath b/.classpath index 8d2ad71a..6b6984ac 100644 --- a/.classpath +++ b/.classpath @@ -55,11 +55,6 @@ - - - - - @@ -97,5 +92,10 @@ + + + + + diff --git a/docs/00_index.mkd b/docs/00_index.mkd index ddb609f7..83456a5c 100644 --- a/docs/00_index.mkd +++ b/docs/00_index.mkd @@ -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: -
    -
  • *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.

    -

  • *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).
    + +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. -

### Tools -
    -
  • *Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings -
+ +- *Gitblit Federation Client* - a command line tool to clone/pull groups of repositories and optionally users and settings ### Java Runtime Requirement @@ -28,14 +28,15 @@ Gitblit requires a Java 6 Runtime Environment (JRE) or a Java 6 Development Kit **%VERSION%** ([go](http://code.google.com/p/gitblit/downloads/detail?name=%GO%)|[war](http://code.google.com/p/gitblit/downloads/detail?name=%WAR%)|[fedclient](http://code.google.com/p/gitblit/downloads/detail?name=%FEDCLIENT%)) based on [%JGIT%][jgit]   *released %BUILDDATE%* -- improved: updated ui with Twitter's Bootstrap CSS toolkit -
**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
**New:** *server.contextPath = /* +- added: setting to control Gitblit GO context path for proxy setups + **New:** *server.contextPath = /* issues, binaries, and sources @ [Google Code][googlecode]
sources @ [Github][gitbltsrc] diff --git a/docs/01_features.mkd b/docs/01_features.mkd index 1a546128..3769ead2 100644 --- a/docs/01_features.mkd +++ b/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 -
    -
  • ![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) -
+ - ![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 -
    -
  • ![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)*
  • -
+ - ![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
(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 diff --git a/docs/01_setup.mkd b/docs/01_setup.mkd index 125bac23..978f347c 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.
+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.
+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 or whatever the url should be. -7. Click the *Login* link and enter the default administrator credentials: **admin / admin**
+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%).
+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.
+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*
+ - *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.
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 or depending on your chosen configuration. -6. Click the *Login* link and enter the default administrator credentials: **admin / admin**
+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.
This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*. -**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! +**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.
+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
-	Java Virtual Machine:
-	C:\Program Files\Java\jre6\bin\server\jvm.dll
+Java Virtual Machine: +C:\Program Files\Java\jre6\bin\server\jvm.dll #### 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 `/ _ - .`
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.
+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.
+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:**
-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.
+**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.
Key = *http.sslVerify*       
-       Value = *false*
-- Command-line Git ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html)) -
git config --global --bool --add http.sslVerify false
+ 3.
Key = http.sslVerify
+Value = false
+- **Command-line Git** ([Git-Config Manual Page](http://www.kernel.org/pub/software/scm/git/docs/git-config.html)) +
git config --global --bool --add http.sslVerify false
### Cloning an Access Restricted Repository -- Eclipse/EGit/JGit
Nothing special to configure, EGit figures out everything. -
https://yourserver/git/your/repository
-- Command-line Git
*My testing indicates that your username must be embedded in the url. YMMV.* -
https://username@yourserver/git/your/repository
- \ No newline at end of file +- **Eclipse/EGit/JGit** +Nothing special to configure, EGit figures out everything. +
https://yourserver/git/your/repository
+- **Command-line Git** +My testing indicates that your username must be embedded in the url. YMMV. +
https://username@yourserver/git/your/repository
\ No newline at end of file diff --git a/docs/02_federation.mkd b/docs/02_federation.mkd index abf171e3..3199065e 100644 --- a/docs/02_federation.mkd +++ b/docs/02_federation.mkd @@ -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**:
+**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.
-The *USERS_AND_REPOSITORIES* token allows another Gitblit instance to pull all your repositories and user accounts.
+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.
+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.
+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.
+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:**
-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.
+**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
- ![Repositories](thumbs/00.png) + Repositories
Repository & User List
- ![New User](thumbs/01.png) + New User
New User
- ![Edit Repository](thumbs/02.png) + Edit Repository
Edit Repository
- ![Summary](thumbs/03.png) + Summary
Repository Summary
- ![Log](thumbs/04.png) + Log
Repository Log
- ![Tags](thumbs/10.png) + Tags
Repository Tags
- ![Tree](thumbs/05.png) + Tree
Repository Tree
- ![Commit Page](thumbs/06.png) + Commit Page
Commit Page
- ![Commitdiff](thumbs/07.png) + Commit Diff
Commit Diff
- ![Metrics](thumbs/09.png) + Metrics
Branch Metrics
- ![Blob](thumbs/08.png) + Blob
Blob View with Syntax Highlighting
- ![Blame](thumbs/11.png) + Blame
Blame
- ![FederationPanels](thumbs/12.png) + Federation Panels
Federation Panels
- ![RegistrationStatus](thumbs/13.png) + Registration Status
Detailed Status of a Registration
- ![Propose](thumbs/14.png) + Propose
Send Proposal
- ![ReviewProposal](thumbs/15.png) + Review Proposal
Reviewing Received Proposal
- + - + @@ -193,42 +193,42 @@ By default, federated repositories can not be pushed to, they are read-only by t - + - + - + - + - + - + - + - +
federation.N.url stringthe url of the origin Gitblit instance *(required)*the url of the origin Gitblit instance (required)
federation.N.token stringthe token provided by the origin Gitblit instance *(required)*the token provided by the origin Gitblit instance (required)
federation.N.frequency
federation.N.folder stringthe destination folder, relative to *git.repositoriesFolder*, for these repositories.
default is *git.repositoriesFolder*
the destination folder, relative to git.repositoriesFolder, for these repositories.
default is git.repositoriesFolder
federation.N.bare booleanif **true** *(default)*, each repository is cloned as a bare repository (i.e. no working folder).if true (default), each repository is cloned as a bare repository (i.e. no working folder).
federation.N.mirror booleanif **true** *(default)*, each repository HEAD is reset to *origin/master* after each pull. The repository is flagged *isFrozen* after the initial clone.

If **false**, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.

if true (default), each repository HEAD is reset to origin/master after each pull. The repository is flagged isFrozen after the initial clone.

If false, each repository HEAD will point to the FETCH_HEAD of the initial clone from the origin until pushed to or otherwise manipulated.
federation.N.mergeAccounts booleanif **true**, merge the retrieved accounts into the `users.properties` of **this** Gitblit instance.
*default is false*
if true, merge the retrieved accounts into the users.properties of this Gitblit instance.
default is false
federation.N.sendStatus booleanif **true**, send the status of the federated pull to the origin Gitblit instance.
*default is false*
if true, send the status of the federated pull to the origin Gitblit instance.
default is false
federation.N.include string array
(space-delimited)
list of included repositories *(wildcard and fuzzy matching supported)*list of included repositories (wildcard and fuzzy matching supported)
federation.N.exclude string array
(space-delimited)
list of excluded repositories *(wildcard and fuzzy matching supported)*list of excluded repositories (wildcard and fuzzy matching supported)
federation.N.notifyOnError booleanif **true**, send an email to the administrators on an error.
*default is false*
if true, send an email to the administrators on an error.
default is false
@@ -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.
+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.
+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.
+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.
Key = *http.sslVerify*       
-       Value = *false*
+ 3.
Key = http.sslVerify
+Value = false
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*.
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].
Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution. -**mostly**
+#### 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.
Exceptions to this are noted in `gitblit.properties`. -**NOTE:**
Care must be taken to preserve the relationship between user roles and repository names.
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.
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.
+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.
+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.
+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.
+ - 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 303883bd..aebd9494 100644 --- a/docs/04_releases.mkd +++ b/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 -
**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
**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. -
**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: 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
**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 = /* +- 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 diff --git a/src/com/gitblit/build/Build.java b/src/com/gitblit/build/Build.java index c4f373e8..621d2cd8 100644 --- a/src/com/gitblit/build/Build.java +++ b/src/com/gitblit/build/Build.java @@ -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, -- 2.39.5