Paul Martin
2016-04-30 a502d96a860456ec5e8c96761db70f7cabb74751
commit | author | age
1f9dae 1 ## Troubleshooting
JM 2
69eeaa 3 ### push failed for branch (n/a (unpacker error))
JM 4
5 This is a bug in JGit (issue-408).  TLDR: Newer git clients are optimized to send less data on the wire.  JGit expects complete data to be sent, but there are scenarios where native git can optimize-out sending objects.  By default, JGit requires everything sent be complete and referenceable.
6
7 If you experience this, the workaround is to temporarily disable the reachable check for the receive pack, push, and then re-enable the setting.
8
9     git.checkReferencedObjectsAreReachable = false
10
d39680 11 ### Eclipse/Egit/JGit complains that it "can't open upload pack"?
1f9dae 12 There are a few ways this can occur:
JM 13
2fe1e2 14 1. Are you running Java 7?<br />Java 7 introduced SNI support for SSL connections and it is enabled by default.<br />[Java 7 Security Enhancements](http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html)<br />To disable SNI alerts, add this line to your eclipse.ini file and restart Eclipse.<br /><pre>-Djsse.enableSNIExtension=false</pre>
JM 15 2. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false*
1f9dae 16     1. Window->Preferences->Team->Git->Configuration
JM 17     2. Click the *New Entry* button
3b5289 18     3. <pre>Key = <em>http.sslVerify</em>
JM 19 Value = <em>false</em></pre>
87066a 20 3. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push from a client based on an old version of JGit with a known flaw.
2fe1e2 21 4. The repository is clone-restricted and you don't have access.
JM 22 5. The repository is clone-restricted and your password changed.
23 6. A regression in Gitblit.  :(
1f9dae 24
99c974 25 ### I can not push using git:// protocol on Windows using native Git
JM 26
27 This is a long-standing, known bug in the native Git for Windows implementation.
28
cc0477 29 Please see [this thread](https://groups.google.com/d/topic/msysgit/at8D7J-h7mw/discussion) for details.
99c974 30
85c2e6 31 ### Why can't I access Gitblit GO from another machine?
d39680 32 1. Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`, you may be only be serving on *localhost*.
JM 33 2. Please see the above answer about "**can't open upload pack**".
34 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 35
JM 36 ### How do I run Gitblit GO on port 80 or 443 in Linux?
1f9dae 37 Linux requires root permissions to serve on ports < 1024.<br/>
JM 38 Run the server as *root* (security concern) or change the ports you are serving to 8080 (http) and/or 8443 (https). 
85c2e6 39
87066a 40 ### Gitblit does not list my repositories?!
d39680 41 1. Confirm that the value *git.repositoriesFolder* in `gitblit.properties` actually points to your repositories folder.
87066a 42 2. Confirm that the Gitblit process has full read-write-execute permissions to your *git.repositoriesFolder*. 
1f9dae 43
70b492 44 ### Gitblit won't open my grouped repository (/group/myrepo.git) or browse my log/branch/tag/ref?!
3b5289 45 This is likely an url encoding/decoding problem with forward slashes:
JM 46
47 **bad**
48
49     http://192.168.1.2/log/myrepo.git/refs/heads/master
50
51 **good**
52
53     http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster
54
55 **NOTE:**  
3cc6e2 56 You can not trust the url in the address bar of your browser since your browser may decode it for presentation.  When in doubt, *View Source* of the generated html to confirm the *href*.
3b5289 57
JM 58 There are two possible workarounds for this issue.  In `gitblit.properties` or `web.xml`:
230632 59
JM 60 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*).
61 2. try changing *web.forwardSlashCharacter* to an asterisk or a **!**
7e5ee5 62
3b5289 63 ### Running Gitblit behind mod_proxy or some other proxy layer
JM 64
65 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*.
66
3cc6e2 67 If you are using Apache mod_proxy you may have luck with specifying [AllowEncodedSlashes NoDecode](http://httpd.apache.org/docs/2.2/mod/core.html#allowencodedslashes).
70b492 68
486ee1 69 ### Running Gitblit on Tomcat
JM 70
71 Tomcat takes the extra precaution of [disallowing embedded slashes by default](http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10).  This breaks Gitblit urls.  
72 You have a few options on how to handle this scenario:
73
efba97 74 1. [Tweak Tomcat](http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10)  
3cc6e2 75 Add *-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS* or to your JVM launch parameters
486ee1 76 2. *web.mountParameters = false* and use non-pretty, parameterized urls
JM 77 3. *web.forwardSlashCharacter = !* which tells Gitblit to use **!** instead of **/**
78
b34048 79 #### UTF-8 Filenames
JM 80
81 Tomcat also dislikes urls with non-ASCII characters. If your repositories have non-ASCII filenames you will have to modify your connector properties to allow UTF-8 encoded urls.  
82
83 [Tomcat Character Encoding](http://wiki.apache.org/tomcat/FAQ/CharacterEncoding)  
84 [Tomcat Connector Properties](http://tomcat.apache.org/tomcat-6.0-doc/config/http.html)
85
1f9dae 86 ## General Interest Questions
f90dc6 87
f13c4c 88 ### Gitblit?  What kind of name is that?
1f9dae 89 It's a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*.
f90dc6 90
f13c4c 91 ### Why use Gitblit?
1f9dae 92 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 93
168566 94 ### Who is the target user for Gitblit?
JM 95 Small workgroups that require centralized repositories.
96
97 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.
98
f90dc6 99 ### Do I need real Git?
6c4be1 100 No (mostly).  Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].
87066a 101 Everything you need for Gitblit (except Java) is bundled in the distribution file.
d39680 102
3b5289 103 #### mostly
87066a 104 Gitblit has experimental support for Garbage Collection using JGit.  I have not used it enough to feel comfortable removing the EXPERIMENTAL label.  It may work really well, or it may not.  One thing you might consider having native git for is periodic garbage collection - when Gitblit is offline.
716745 105
168566 106 ### Can I run Gitblit in conjunction with my existing Git tooling?
5450d0 107 Yes.
f90dc6 108
f13c4c 109 ### Do I need a JDK or can I use a JRE?
87066a 110 Gitblit will run just fine with a JRE.
1f9dae 111
f13c4c 112 ### Does Gitblit use a database to store its data?
cc0477 113 No.  Gitblit stores its repository configuration information within the `.git/config` file and its user information in `users.conf` or whatever filename is configured in `gitblit.properties`.
f13c4c 114
cc0477 115 ### Can I manually edit users.conf, gitblit.properties, or .git/config?
1f9dae 116 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`.
JM 117
3b5289 118 **NOTE:**  
JM 119 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 120
6f46fa 121 ### Can I restrict access to branches or paths within a repository?
8ec063 122 No, not yet.  Access restrictions apply to the repository as a whole.
56c549 123
6f46fa 124 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).
JM 125
126 Should you require more fine-grained access controls you might consider writing a Groovy *prereceive* script to block updating branch refs based on some permissions file.  I would be interested in a generic, re-usable script to include with Gitblit, should someone want to implement it.
127
128 Alternatively, you could use [gitolite](https://github.com/sitaramc/gitolite) and SSH for your repository access.
56c549 129
5450d0 130 ### Can I authenticate users against XYZ?
6f46fa 131 Yes.  The user service is pluggable.  You may write your own complete user service by implementing the *com.gitblit.IUserService* interface.  Or you may subclass *com.gitblit.GitblitUserService* and override just the authentication. Set the fully qualified classname as the *realm.userService* property.
f90dc6 132
f13c4c 133 ### What types of Search does Gitblit support?
e4547f 134
JM 135 As of 0.9.0, Gitblit supports Lucene-based searching.
136
6c4be1 137 If Lucene indexing is disabled, Gitblit falls back to brute-force commit-traversal search.  Commit-traversal search supports case-insensitive searching of *commit message* (default), *author*, and *committer*.
f90dc6 138
JM 139 To search by *author* or *committer* use the following syntax in the search box:
140
141     author: james
142     committer: james
143     
144 Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.
145
831469 146 ### Why did you call the setting federation.N.frequency instead of federation.N.period?!
JM 147
148 Yes, yes I know that you are really specifying the period, but Frequency sounds better to me.  :)
149
716745 150 ### Can Gitblit be translated?
JM 151
152 Yes.  Most messages are localized to a standard Java properties file.
c19ae5 153
f90dc6 154 [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt"
JM 155 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
a4d249 156 [git]: http://git-scm.com "Official Git Site"
f13c4c 157 [mina]: http://mina.apache.org "Apache Mina"
cc0477 158 [bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"