| ## Troubleshooting | |
| ### Eclipse/Egit/Git 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. Window->Preferences->Team->Git->Configuration | |
| 2. Click the *New Entry* button | |
| 3. <pre>Key = *http.sslVerify* | |
| Value = *false*</pre> | |
| 2. The repository is clone-restricted and you don't have access. | |
| 3. The repository is clone-restricted and your password changed. | |
| 4. A regression in Gitblit. :( | |
| ### Why can't I access Gitblit-Go from another machine? | |
| Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`. | |
| ### How do I run Gitblit-Go on port 80 or 443 in Linux? | |
| Linux requires root permissions to serve on ports < 1024.<br/> | |
| Run the server as *root* (security concern) or change the ports you are serving to 8080 (http) and/or 8443 (https). | |
| ## General Interest Questions | |
| ### Gitblit? What kind of name is that? | |
| It's a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*. | |
| ### Why use Gitblit? | |
| It's a small tool that allows you to easily manage shared repositories and doesn't require alot of setup or git kung-foo. | |
| ### Who is the target user for Gitblit? | |
| Small workgroups that require centralized repositories. | |
| 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? | |
| As a Java developer I prefer that as much of my tooling as possible is Java.<br/> | |
| 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/> | |
| 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/> | |
| 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. | |
| ### Do I need real Git? | |
| No. Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/> | |
| Everything you need for Gitblit is either in the zip distribution file or automatically downloaded on execution. | |
| ### Can I run Gitblit in conjunction with my existing Git tooling? | |
| Yes. | |
| ### Do I need a JDK or can I use a JRE? | |
| 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.properties` or whatever filename is configured in `gitblit.properties`. | |
| ### 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.<br/>Exceptions to this are noted in `gitblit.properties`. | |
| *NOTE:* Care must be taken to preserve the relationship between user roles and repository names.<br/>Please see 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. | |
| 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). | |
| ### Can I authenticate users against XYZ? | |
| Yes. The login service is pluggable. You may write your own authentication module by implementing the *ILoginService* interface. Set the fully qualified classname as the *realm.realmFile* property. | |
| ### Why doesn't Gitblit support SSH? | |
| 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/> | |
| 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. | |
| 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). | |
| ### What types of Search does Gitblit support? | |
| Gitblit supports case-insensitive searches of *commit message* (default), *author*, and *committer*.<br/> | |
| To search by *author* or *committer* use the following syntax in the search box: | |
| author: james | |
| committer: james | |
| Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file. | |
| ### Can Gitblit be translated? | |
| Yes. Most messages are localized to a standard Java properties file. | |
| [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt" | |
| [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" |