James Moger
2011-06-28 d39680e9f54322ddcb40b00503a8ee30aee6c99c
commit | author | age
1f9dae 1 ## Troubleshooting
JM 2
d39680 3 ### Eclipse/Egit/JGit complains that it "can't open upload pack"?
1f9dae 4 There are a few ways this can occur:
JM 5
6 1. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false*
7     1. Window->Preferences->Team->Git->Configuration
8     2. Click the *New Entry* button
9     3. <pre>Key = *http.sslVerify*       
10        Value = *false*</pre>
d39680 11 2. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push between machines.
JM 12     1. Review the contents of `makekeystore.cmd`
13     2. Set *your hostname* in the *HOSTNAME* variable.
14     3. Execute the script.<br/>This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*. 
15 3. The repository is clone-restricted and you don't have access.
16 4. The repository is clone-restricted and your password changed.
17 5. A regression in Gitblit.  :(
1f9dae 18
85c2e6 19 ### Why can't I access Gitblit GO from another machine?
d39680 20 1. Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`, you may be only be serving on *localhost*.
JM 21 2. Please see the above answer about "**can't open upload pack**".
22 3. Ensure that any firewall you may have running on the Gitblit server either has an exception for your specified ports or for the running process.
85c2e6 23
JM 24 ### How do I run Gitblit GO on port 80 or 443 in Linux?
1f9dae 25 Linux requires root permissions to serve on ports < 1024.<br/>
JM 26 Run the server as *root* (security concern) or change the ports you are serving to 8080 (http) and/or 8443 (https). 
85c2e6 27
JM 28 ### Gitblit GO does not list my repositories?!
d39680 29 1. Confirm that the value *git.repositoriesFolder* in `gitblit.properties` actually points to your repositories folder.
JM 30 2. Confirm that the Gitblit GO process has full read-write-execute permissions to your *git.repositoriesFolder*. 
85c2e6 31
JM 32 ### Gitblit WAR does not list my repositories?!
d39680 33 1. Confirm that the &lt;context-param&gt; *git.repositoriesFolder* value in your `web.xml` file actually points to your repositories folder.
JM 34 2. Confirm that the servlet container process has full read-write-execute permissions to your *git.repositoriesFolder*.
85c2e6 35
JM 36 ### Gitblit WAR will not authenticate any users?!
37 Confirm that the &lt;context-param&gt; *realm.userService* value in your `web.xml` file actually points to a `users.properties` file.
1f9dae 38
JM 39 ## General Interest Questions
f90dc6 40
f13c4c 41 ### Gitblit?  What kind of name is that?
1f9dae 42 It's a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*.
f90dc6 43
f13c4c 44 ### Why use Gitblit?
1f9dae 45 It's a small tool that allows you to easily manage shared repositories and doesn't require alot of setup or git kung-foo.
f90dc6 46
168566 47 ### Who is the target user for Gitblit?
JM 48 Small workgroups that require centralized repositories.
49
50 Gitblit is not meant to be a social coding resource like [Github](http://github.com) or [Bitbucket](http://bitbucket.com) with 100s or 1000s of users.  Gitblit is designed to fulfill the same function as your centralized Subversion or CVS server.
51
85c2e6 52 ### Why does Gitblit exist when there is Git and Gitweb?
168566 53 As a Java developer I prefer that as much of my tooling as possible is Java.<br/>
JM 54 Originally, I was going to use [Mercurial](http://mercurial.selenic.com) but...
55
716745 56 - MercurialEclipse [shells to Python, writes to System.out, and captures System.in](http://mercurial.808500.n3.nabble.com/Hg4J-Mercurial-pure-Java-library-tp2693090p2694555.html)<br/>
168566 57 Parsing command-line output is fragile and suboptimal.<br/>Unfortunately this is necessary because Mercurial is an application, not a library.
JM 58 - Mercurial HTTP/HTTPS needs to run as CGI through Apache/IIS/etc, as mod_python through Apache, or served with a built-in http server.<br/>
59 This requires setup and maintenance of multiple, mixed 3rd party components.
60
61 Gitblit eliminates all that complication with its 100% Java stack and simple single configuration file.
62
85c2e6 63 Additionally, Git and Gitweb do not offer repository creation or user management.
JM 64
f90dc6 65 ### Do I need real Git?
d39680 66 No (mostly).  Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>
85c2e6 67 Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution.
d39680 68
JM 69 **mostly**<br/>
70 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.
716745 71
168566 72 ### Can I run Gitblit in conjunction with my existing Git tooling?
5450d0 73 Yes.
f90dc6 74
f13c4c 75 ### Do I need a JDK or can I use a JRE?
JM 76 Gitblit will run just fine with a JRE.  Gitblit can optionally use `keytool` from the JDK to generate self-signed certificates, but normally Gitblit uses [BouncyCastle][bouncycastle] for that need.
1f9dae 77
f13c4c 78 ### Does Gitblit use a database to store its data?
JM 79 No.  Gitblit stores its repository configuration information within the `.git/config` file and its user information in `users.properties` or whatever filename is configured in `gitblit.properties`.
80
1f9dae 81 ### Can I manually edit users.properties, gitblit.properties, or .git/config?
JM 82 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`.
83
d39680 84 **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.
a4d249 85
56c549 86 ### Can I restrict access to paths within a repository?
JM 87 No.  Access restrictions apply to the repository as a whole.
88
f13c4c 89 Gitblit's simple authentication and authorization mechanism can be used to facilitate one or more of the [workflows outlined here](http://progit.org/book/ch5-1.html).  Should you require more fine-grained access controls you might consider using [gitolite](https://github.com/sitaramc/gitolite).
56c549 90
5450d0 91 ### Can I authenticate users against XYZ?
85c2e6 92 Yes.  The user service is pluggable.  You may write your own user service by implementing the *com.gitblit.IUserService* interface.  Set the fully qualified classname as the *realm.userService* property.
5450d0 93
f13c4c 94 ### Why doesn't Gitblit support SSH?
JM 95 Gitblit could integrate [Apache Mina][mina] to provide SSH access.  However, doing so violates Gitblit's first design principle: [KISS](http://en.wikipedia.org/wiki/KISS_principle).<br/>
716745 96 SSH support requires creating, exchanging, and managing SSH keys (arguably not more complicated than managing users).  While this is possible, JGit's SmartHTTP implementation is a simpler and universal transport mechanism.
a4d249 97
JM 98 You might consider running [Gerrit](http://gerrit.googlecode.org) which does integrate [Apache Mina][mina] and supports SSH or you might consider serving [Git][git] on Linux which would offer real SSH support and also allow use of [many other compelling Git solutions](https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools).
f90dc6 99
f13c4c 100 ### What types of Search does Gitblit support?
JM 101 Gitblit supports case-insensitive searches of *commit message* (default), *author*, and *committer*.<br/>
f90dc6 102
JM 103 To search by *author* or *committer* use the following syntax in the search box:
104
105     author: james
106     committer: james
107     
108 Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.
109
716745 110 ### Can Gitblit be translated?
JM 111
112 Yes.  Most messages are localized to a standard Java properties file.
c19ae5 113
f90dc6 114 [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt"
JM 115 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
a4d249 116 [git]: http://git-scm.com "Official Git Site"
f13c4c 117 [mina]: http://mina.apache.org "Apache Mina"
c22722 118 [bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"