You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

11 년 전
10 년 전
11 년 전
10 년 전
13 년 전
13 년 전
13 년 전
13 년 전
13 년 전
10 년 전
10 년 전
12 년 전
13 년 전
12 년 전
13 년 전
12 년 전
13 년 전
13 년 전
12 년 전
13 년 전
13 년 전
13 년 전
10 년 전
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. ## Troubleshooting
  2. ### Eclipse/Egit/JGit complains that it "can't open upload pack"?
  3. There are a few ways this can occur:
  4. 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>
  5. 2. You are using https with a self-signed certificate and you **did not** configure *http.sslVerify=false*
  6. 1. Window->Preferences->Team->Git->Configuration
  7. 2. Click the *New Entry* button
  8. 3. <pre>Key = <em>http.sslVerify</em>
  9. Value = <em>false</em></pre>
  10. 3. Gitblit GO's default self-signed certificate is bound to *localhost* and you are trying to clone/push between machines.
  11. 1. Review the contents of `makekeystore.cmd`
  12. 2. Set *your hostname* in the *HOSTNAME* variable.
  13. 3. Execute the script.<br/>This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*.
  14. 4. The repository is clone-restricted and you don't have access.
  15. 5. The repository is clone-restricted and your password changed.
  16. 6. A regression in Gitblit. :(
  17. ### I can not push using git:// protocol on Windows using native Git
  18. This is a long-standing, known bug in the native Git for Windows implementation.
  19. Please see [this thread](https://groups.google.com/d/topic/msysgit/at8D7J-h7mw/discussion) for details.
  20. ### Why can't I access Gitblit GO from another machine?
  21. 1. Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`, you may be only be serving on *localhost*.
  22. 2. Please see the above answer about "**can't open upload pack**".
  23. 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.
  24. ### How do I run Gitblit GO on port 80 or 443 in Linux?
  25. Linux requires root permissions to serve on ports < 1024.<br/>
  26. Run the server as *root* (security concern) or change the ports you are serving to 8080 (http) and/or 8443 (https).
  27. ### Gitblit GO does not list my repositories?!
  28. 1. Confirm that the value *git.repositoriesFolder* in `gitblit.properties` actually points to your repositories folder.
  29. 2. Confirm that the Gitblit GO process has full read-write-execute permissions to your *git.repositoriesFolder*.
  30. ### Gitblit WAR does not list my repositories?!
  31. 1. Confirm that the &lt;context-param&gt; *git.repositoriesFolder* value in your `web.xml` file actually points to your repositories folder.
  32. 2. Confirm that the servlet container process has full read-write-execute permissions to your *git.repositoriesFolder*.
  33. ### Gitblit WAR will not authenticate any users?!
  34. Confirm that the &lt;context-param&gt; *realm.userService* value in your `web.xml` file actually points to a `users.conf` file.
  35. ### Gitblit won't open my grouped repository (/group/myrepo.git) or browse my log/branch/tag/ref?!
  36. This is likely an url encoding/decoding problem with forward slashes:
  37. **bad**
  38. http://192.168.1.2/log/myrepo.git/refs/heads/master
  39. **good**
  40. http://192.168.1.2/log/myrepo.git/refs%2Fheads%2Fmaster
  41. **NOTE:**
  42. 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*.
  43. There are two possible workarounds for this issue. In `gitblit.properties` or `web.xml`:
  44. 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*).
  45. 2. try changing *web.forwardSlashCharacter* to an asterisk or a **!**
  46. ### Running Gitblit behind mod_proxy or some other proxy layer
  47. 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*.
  48. 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).
  49. ### Running Gitblit on Tomcat
  50. 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.
  51. You have a few options on how to handle this scenario:
  52. 1. [Tweak Tomcat](http://tomcat.apache.org/security-6.html#Fixed_in_Apache_Tomcat_6.0.10)
  53. Add *-Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true* to *CATALINA_OPTS* or to your JVM launch parameters
  54. 2. *web.mountParameters = false* and use non-pretty, parameterized urls
  55. 3. *web.forwardSlashCharacter = !* which tells Gitblit to use **!** instead of **/**
  56. #### UTF-8 Filenames
  57. 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.
  58. [Tomcat Character Encoding](http://wiki.apache.org/tomcat/FAQ/CharacterEncoding)
  59. [Tomcat Connector Properties](http://tomcat.apache.org/tomcat-6.0-doc/config/http.html)
  60. ## General Interest Questions
  61. ### Gitblit? What kind of name is that?
  62. It's a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*.
  63. ### Why use Gitblit?
  64. It's a small tool that allows you to easily manage shared repositories and doesn't require alot of setup or git kung-foo.
  65. ### Who is the target user for Gitblit?
  66. Small workgroups that require centralized repositories.
  67. 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.
  68. ### Why does Gitblit exist when there is Git and Gitweb?
  69. As a Java developer I prefer that as much of my tooling as possible is Java.<br/>
  70. Originally, I was going to use [Mercurial](http://mercurial.selenic.com) but...
  71. - 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/>
  72. Parsing command-line output is fragile and suboptimal.<br/>Unfortunately this is necessary because Mercurial is an application, not a library.
  73. - 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/>
  74. This requires setup and maintenance of multiple, mixed 3rd party components.
  75. Gitblit eliminates all that complication with its 100% Java stack and simple single configuration file.
  76. Additionally, Git and Gitweb do not offer repository creation or user management.
  77. ### Do I need real Git?
  78. No (mostly). Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>
  79. Everything you need for Gitblit (except Java) is either bundled in the distribution file or automatically downloaded on execution.
  80. #### mostly
  81. 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.
  82. ### Can I run Gitblit in conjunction with my existing Git tooling?
  83. Yes.
  84. ### Do I need a JDK or can I use a JRE?
  85. 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.
  86. ### Does Gitblit use a database to store its data?
  87. 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`.
  88. ### Can I manually edit users.conf, gitblit.properties, or .git/config?
  89. 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`.
  90. **NOTE:**
  91. 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.
  92. ### Can I restrict access to branches or paths within a repository?
  93. No, not out-of-the-box. Access restrictions apply to the repository as a whole.
  94. 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).
  95. 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.
  96. Alternatively, you could use [gitolite](https://github.com/sitaramc/gitolite) and SSH for your repository access.
  97. ### Can I authenticate users against XYZ?
  98. 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.
  99. ### Why doesn't Gitblit support SSH?
  100. 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/>
  101. 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.
  102. 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).
  103. ### What types of Search does Gitblit support?
  104. As of 0.9.0, Gitblit supports Lucene-based searching.
  105. 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*.<br/>
  106. To search by *author* or *committer* use the following syntax in the search box:
  107. author: james
  108. committer: james
  109. Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.
  110. ### Why did you call the setting federation.N.frequency instead of federation.N.period?!
  111. Yes, yes I know that you are really specifying the period, but Frequency sounds better to me. :)
  112. ### Can Gitblit be translated?
  113. Yes. Most messages are localized to a standard Java properties file.
  114. [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt"
  115. [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
  116. [git]: http://git-scm.com "Official Git Site"
  117. [mina]: http://mina.apache.org "Apache Mina"
  118. [bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"