From 81f881a10f2c8456cc4ebfa26327e15655db4646 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 09 Jun 2011 19:06:09 -0400
Subject: [PATCH] Build script improvements for release management.

---
 docs/01_faq.mkd |   73 +++++++++++++++++++++++++++++++-----
 1 files changed, 63 insertions(+), 10 deletions(-)

diff --git a/docs/01_faq.mkd b/docs/01_faq.mkd
index 86aa9ad..e6760ce 100644
--- a/docs/01_faq.mkd
+++ b/docs/01_faq.mkd
@@ -1,23 +1,75 @@
-## Frequently Asked Questions
+## 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 from another machine?
+Please check *server.httpBindInterface* and *server.httpsBindInterface* in `gitblit.properties`.
+
+### How do I run Gitblit 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?
-Its a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*.
+It's a phonetic play on [bitblt][bitblt] which is an image processing operation meaning *bit-block transfer*.
 
 ### Why use Gitblit?
-Its small.  Its portable.  Its easy to manage.
+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.
 
+### What about periodic Git garbage collection (git-gc)?
+Good question.  I'm not sure.
+
+Git repositories grow and grow and periodically need to be repacked every once in a while.  Git calls this process [garbage collection](http://www.kernel.org/pub/software/scm/git/docs/git-gc.html) (which is not to be confused with [garbage collection](http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)).)
+
+[JGit's][jgit] documentation is sparse and its unclear whether or not JGit performs this function.
+
+### Can I run Gitblit in conjunction with my existing Git tooling?
+Yes.  You can configure Gitblit to only be a repository viewer.
+
 ### 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.
+
+### I want to deploy Gitblit into my own servlet container.  Where is the WAR?
+At this time there is no WAR build available.
 
 ### 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`.
 
-### I want to deploy Gitblit into my own servlet container.  Where is the WAR?
-At this time there is no WAR build available.
+### 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.
@@ -26,7 +78,7 @@
 
 ### 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.  While this is possible, JGit's SmartHTTP implementation is a simpler and cleaner transport mechanism.
+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).
 
@@ -40,12 +92,13 @@
     
 Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.
 
-### How do I run Gitblit 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). 
+### 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"
\ No newline at end of file
+[bouncycastle]: http://bouncycastle.org "The Legion of the Bouncy Castle"
+[hg4j]: http://code.google.com/p/hg4j/ "hg4j"
\ No newline at end of file

--
Gitblit v1.9.1