From 9f6ef315d4b9e846ecadc2f5518d0dc0dd2ff0f4 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 22 Mar 2012 07:50:04 -0400
Subject: [PATCH] Properly escape fragment for HTML

---
 docs/01_setup.mkd |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/docs/01_setup.mkd b/docs/01_setup.mkd
index 1a3b9a9..09ddabb 100644
--- a/docs/01_setup.mkd
+++ b/docs/01_setup.mkd
@@ -86,6 +86,7 @@
     --useNio               Use NIO Connector else use Socket Connector.
     --httpPort             HTTP port for to serve. (port <= 0 will disable this connector)
     --httpsPort            HTTPS port to serve.  (port <= 0 will disable this connector)
+    --ajpPort              AJP port to serve.  (port <= 0 will disable this connector)
     --storePassword        Password for SSL (https) keystore.
     --shutdownPort         Port for Shutdown Monitor to listen on. (port <= 0 will disable this monitor)
     --tempFolder           Folder for server to extract built-in webapp
@@ -93,6 +94,14 @@
 **Example**
 
     java -jar gitblit.jar --userService c:\myrealm.config --storePassword something
+
+#### Overriding Gitblit GO's Log4j Configuration
+
+You can override Gitblit GO's default Log4j configuration with a command-line parameter to the JVM.
+
+    java -Dlog4j.configuration=file:///home/james/log4j.properties -jar gitblit.jar <optional_gitblit_args>
+    
+For reference, here is [Gitblit's default Log4j configuration](https://github.com/gitblit/gitblit/blob/master/src/log4j.properties).  It includes some file appenders that are disabled by default. 
     
 ## Running Gitblit behind Apache
 
@@ -132,19 +141,15 @@
 	Allow from all
 &lt;/Proxy&gt;
  
-# Turn on Proxy status reporting at /status
-# This should be better protected than: Allow from all
-ProxyStatus On
-&lt;Location /status&gt;
-	SetHandler server-status
-	Order Deny,Allow
-	Allow from all
-&lt;/Location&gt;
-
 # The proxy context path must match the Gitblit context path.
 # For Gitblit GO, see server.contextPath in gitblit.properties.
 
 #ProxyPass /gitblit http://localhost:8080/gitblit
+#ProxyPassreverse /gitblit http://localhost:8080/gitblit
+
+# If your httpd frontend is https but you are proxying http Gitblit WAR or GO
+#Header edit Location &#94;http://([&#94;&#8260;]+)/gitblit/ https://&#36;1/gitblit/
+
 #ProxyPass /gitblit ajp://localhost:8009/gitblit
 %ENDCODE%  
 **Please** make sure to:  
@@ -367,6 +372,42 @@
 **NOTE:**  
 Care should be taken when devising your notification scheme as it relates to any VIEW restricted repositories you might have.  Setting a global mailing list and activating push notifications for a VIEW restricted repository may send unwanted emails.
 
+## Lucene Search Integration
+
+*SINCE 0.9.0*
+
+Repositories may optionally be indexed using the Lucene search engine.  The Lucene search offers several advantages over commit-traversal search:
+
+1. very fast commit and blob searches
+2. multi-term searches
+3. term-highlighted and syntax-highlighted fragment matches
+4. multi-repository searches
+
+### How do I use it?
+
+Lucene indexing is an opt-in feature which means that no repositories are automatically indexed.  
+Like anything else, this design has pros and cons.
+
+#### Pros
+1. no wasted cycles on repositories you will never search
+2. you specify exactly what branches are indexed; experimental/dead/personal branches can be ignored
+
+#### Cons
+1. you have to opt-in a repository _after_ it is created and has some commits
+2. you specify exactly what branches are indexed
+
+#### Why does Gitblit check every 2 mins for repository/branch changes?
+
+Gitblit has to balance its design as a complete, integrated Git server and its utility as a repository viewer in an existing Git setup.
+
+Gitblit could build indexes immediately on *edit repository* or on *receiving pushes*, but that design would not work if someone is pushing via ssh://, git://, or file:// (i.e. not pushing to Gitblit http(s)://).  For this reason Gitblit has a polling mechanism to check for ref changes every 2 mins.  This design works well for all use cases, aside from adding a little lag in updating the index.
+
+#### Indexing Branches
+You may specify which branches should be indexed per-repository in the *Edit Repository* page.  New/empty repositories can not pre-specify indexed branches; you can only specify indexed branches for a repository with commits.  Indexes are built and incrementally updated on a 2 minute cycle so you may have to wait a few minutes before your index is built or before your latest pushes get indexed.
+
+**NOTE:**  
+After specifying branches, only the content from those branches can be searched via Gitblit.  Gitblit will automatically redirect any queries entered on a repository's search box to the Lucene search page. Repositories that do not specify any indexed branches will use the traditional commit-traversal search.
+
 ## Client Setup and Configuration
 ### Https with Self-Signed Certificates
 You must tell Git/JGit not to verify the self-signed certificate in order to perform any remote Git operations.

--
Gitblit v1.9.1