James Moger
2013-11-29 088b6f33671697dc8c15197b0a63eecf6d74f75f
src/site/faq.mkd
@@ -3,18 +3,25 @@
### Eclipse/Egit/JGit complains that it "can't open upload pack"?
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. 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>
2. 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 = <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.
3. 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.
    3. Execute the script.<br/>This will generate a new certificate and keystore for *your hostname* protected by *server.storePassword*. 
3. The repository is clone-restricted and you don't have access.
4. The repository is clone-restricted and your password changed.
5. A regression in Gitblit.  :(
4. The repository is clone-restricted and you don't have access.
5. The repository is clone-restricted and your password changed.
6. A regression in Gitblit.  :(
### I can not push using git:// protocol on Windows using native Git
This is a long-standing, known bug in the native Git for Windows implementation.
Please see [this thread](https://groups.google.com/d/topic/msysgit/at8D7J-h7mw/discussion) for details.
### Why can't I access Gitblit GO from another machine?
1. Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`, you may be only be serving on *localhost*.
@@ -34,7 +41,7 @@
2. Confirm that the servlet container process has full read-write-execute permissions to your *git.repositoriesFolder*.
### Gitblit WAR will not authenticate any users?!
Confirm that the &lt;context-param&gt; *realm.userService* value in your `web.xml` file actually points to a `users.conf` or `users.properties` file.
Confirm that the &lt;context-param&gt; *realm.userService* value in your `web.xml` file actually points to a `users.conf` 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:
@@ -92,12 +99,12 @@
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.
### Why does Gitblit exist when there is Git and Gitweb?
As a Java developer I prefer that as much of my tooling as possible is Java.<br/>
As a Java developer I prefer that as much of my tooling as possible is Java.
Originally, I was going to use [Mercurial](http://mercurial.selenic.com) but...
- 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/>
- 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)
Parsing command-line output is fragile and suboptimal.<br/>Unfortunately this is necessary because Mercurial is an application, not a library.
- 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/>
- 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.
This requires setup and maintenance of multiple, mixed 3rd party components.
Gitblit eliminates all that complication with its 100% Java stack and simple single configuration file.
@@ -105,7 +112,7 @@
Additionally, Git and Gitweb do not offer repository creation or user management.
### Do I need real Git?
No (mostly).  Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>
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
@@ -118,9 +125,9 @@
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.
### Does Gitblit use a database to store its data?
No.  Gitblit stores its repository configuration information within the `.git/config` file and its user information in `users.conf`, `users.properties`, or whatever filename is configured in `gitblit.properties`.
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`.
### Can I manually edit users.conf, users.properties, gitblit.properties, or .git/config?
### Can I manually edit users.conf, 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:**  
@@ -148,7 +155,7 @@
As of 0.9.0, Gitblit supports Lucene-based searching.
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/>
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*.
To search by *author* or *committer* use the following syntax in the search box:
@@ -169,4 +176,4 @@
[jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
[git]: http://git-scm.com "Official Git Site"
[mina]: http://mina.apache.org "Apache Mina"
[bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"
[bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"