Moxie
2014-10-20 892246e3a79528c3d2c1d975686c9113a0b084d5
commit | author | age
48fe87 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
M 2 <html>
3 <head>
4 <!-- Begin Header -->
5 <title>Gitblit</title>
6 <meta charset="utf-8">
7 <meta name="ROBOTS" content="INDEX">
8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
9 <meta name="viewport" content="width=device-width, initial-scale=1.0">
10         
11 <link rel="stylesheet" href="./bootstrap/css/bootstrap.css">
12 <link rel='shortcut icon' type='image/png' href='./gitblt-favicon.png' />
13 <link rel="stylesheet" href="./prettify/prettify.css" />
14 <!-- Google Plus Profile Page -->
15 <link rel="publisher" href="https://plus.google.com/114464678392593421684" />
16 <style type="text/css"> a.gpluspage { margin-top:3px;text-decoration: none; } </style>
17
18 <!-- Google Plus One -->
19 <link rel="canonical" href="http://gitblit.com" />
20 <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
21 <style type="text/css"> div.gplusone { margin-top:12px; } </style>
22
23 <script src="./prettify/prettify.js"></script>
24 <script src="./bootstrap/js/jquery.js"></script>
25 <script src="./bootstrap/js/bootstrap.min.js"></script>
26 </head>
27 <body onload='prettyPrint()'>        <!-- Navigation Bar -->
28         <div class="navbar navbar-fixed-top">
29             <div class="navbar-inner">
30                 <div class="container">
31                       <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
32                         <span class="icon-bar"></span>
33                         <span class="icon-bar"></span>
34                         <span class="icon-bar"></span>
35                       </a>
36                       <a class="brand" href="./"><img src="./gitblt_25_white.png" alt="Gitblit"></img></a>
37                     <div class="nav-collapse">
38                         <ul class="nav">
39                             <li class='dropdown'> <!-- Menu -->
40 <a class='dropdown-toggle' href='#' data-toggle='dropdown'>about<b class='caret'></b></a>
41 <ul class='dropdown-menu'>
42 <li><a href='index.html'>overview</a></li>
43 <li><a href='features.html'>features</a></li>
44 <li><a href='screenshots.html'>screenshots</a></li>
45 </ul></li> <!-- End Menu -->
46 <li class='dropdown'> <!-- Menu -->
47 <a class='dropdown-toggle' href='#' data-toggle='dropdown'>documentation<b class='caret'></b></a>
48 <ul class='dropdown-menu'>
49 <li class='dropdown-submenu'> <!-- Submenu -->
50 <a tabindex='-1' href='#'>Gitblit GO</a>
51 <ul class='dropdown-menu'>
52 <li><a href='setup_go.html'>setup GO</a></li>
53 <li><a href='upgrade_go.html'>upgrade GO</a></li>
54 </ul></li> <!-- End Submenu -->
55 <li class='divider'></li>
56 <li class='dropdown-submenu'> <!-- Submenu -->
57 <a tabindex='-1' href='#'>Gitblit WAR</a>
58 <ul class='dropdown-menu'>
59 <li><a href='setup_war.html'>setup WAR</a></li>
60 <li><a href='upgrade_war.html'>upgrade WAR</a></li>
61 </ul></li> <!-- End Submenu -->
62 <li class='divider'></li>
63 <li class='dropdown-submenu'> <!-- Submenu -->
64 <a tabindex='-1' href='#'>Server Configuration</a>
65 <ul class='dropdown-menu'>
66 <li><a href='administration.html'>administration</a></li>
67 <li><a href='setup_authentication.html'>authentication</a></li>
68 <li><a href='setup_hooks.html'>push hooks</a></li>
69 <li><a href='setup_lucene.html'>lucene indexing</a></li>
70 <li><a href='setup_proxy.html'>reverse proxies</a></li>
71 <li><a href='setup_clientmenus.html'>client app menus</a></li>
72 <li><a href='setup_bugtraq.html'>bugtraq</a></li>
73 <li><a href='setup_mirrors.html'>mirrors</a></li>
74 <li><a href='setup_scaling.html'>scaling</a></li>
75 <li class='divider'></li>
76 <li><a href='setup_viewer.html'>Gitblit as a viewer</a></li>
77 </ul></li> <!-- End Submenu -->
78 <li class='divider'></li>
79 <li class='dropdown-submenu'> <!-- Submenu -->
80 <a tabindex='-1' href='#'>Client Usage</a>
81 <ul class='dropdown-menu'>
82 <li><a href='setup_transport_http.html'>using HTTP/HTTPS</a></li>
83 <li><a href='setup_transport_ssh.html'>using SSH</a></li>
84 <li><a href='eclipse_plugin.html'>using the Eclipse plugin</a></li>
85 </ul></li> <!-- End Submenu -->
86 <li class='divider'></li>
87 <li class='dropdown-submenu'> <!-- Submenu -->
88 <a tabindex='-1' href='#'>Tickets</a>
89 <ul class='dropdown-menu'>
90 <li><a href='tickets_overview.html'>overview</a></li>
91 <li><a href='tickets_using.html'>using</a></li>
92 <li><a href='tickets_barnum.html'>barnum</a></li>
93 <li><a href='tickets_setup.html'>setup</a></li>
94 <li><a href='tickets_replication.html'>replication & advanced administration</a></li>
95 </ul></li> <!-- End Submenu -->
96 <li class='divider'></li>
97 <li class='dropdown-submenu'> <!-- Submenu -->
98 <a tabindex='-1' href='#'>Plugins</a>
99 <ul class='dropdown-menu'>
100 <li><a href='plugins_overview.html'>overview</a></li>
101 <li><a href='plugins_extensions.html'>extension points</a></li>
102 </ul></li> <!-- End Submenu -->
103 <li class='divider'></li>
104 <li><a href='federation.html'>federation</a></li>
105 <li class='divider'></li>
106 <li><a href='properties.html'>settings</a></li>
107 <li><a href='faq.html'>faq</a></li>
108 <li class='divider'></li>
109 <li><a href='design.html'>design</a></li>
110 <li><a href='rpc.html'>rpc</a></li>
111 </ul></li> <!-- End Menu -->
112 <li class='dropdown'> <!-- Menu -->
113 <a class='dropdown-toggle' href='#' data-toggle='dropdown'>releases<b class='caret'></b></a>
114 <ul class='dropdown-menu'>
115 <li><a href='releasenotes.html'>release notes</a></li>
116 <li><a href='releases.html'>release history</a></li>
117 <li class='divider'></li>
118 <li><a href='roadmap.html'>roadmap</a></li>
119 </ul></li> <!-- End Menu -->
120 <li class='dropdown'> <!-- Menu -->
121 <a class='dropdown-toggle' href='#' data-toggle='dropdown'>downloads<b class='caret'></b></a>
122 <ul class='dropdown-menu'>
892246 123 <li><a href='http://dl.bintray.com/gitblit/releases/gitblit-1.6.1.zip'>Gitblit GO (Windows)</a></li>
M 124 <li><a href='http://dl.bintray.com/gitblit/releases/gitblit-1.6.1.tar.gz'>Gitblit GO (Linux/OSX)</a></li>
125 <li><a href='http://dl.bintray.com/gitblit/releases/gitblit-1.6.1.war'>Gitblit WAR</a></li>
48fe87 126 <li class='divider'></li>
M 127 <li><a href='https://registry.hub.docker.com/u/jmoger/gitblit/'>Gitblit GO (Docker)</a></li>
128 <li class='divider'></li>
129 <li><a href='http://plugins.gitblit.com'>Plugins Registry</a></li>
130 <li class='divider'></li>
892246 131 <li><a href='http://dl.bintray.com/gitblit/releases/manager-1.6.1.zip'>Gitblit Manager</a></li>
M 132 <li><a href='http://dl.bintray.com/gitblit/releases/fedclient-1.6.1.zip'>Federation Client</a></li>
48fe87 133 <li class='divider'></li>
892246 134 <li><a href='http://dl.bintray.com/gitblit/releases/gbapi-1.6.1.zip'>API Library</a></li>
48fe87 135 <li class='divider'></li>
M 136 <li><a href='https://bintray.com/gitblit/releases/gitblit'>Bintray (1.4.0+)</a></li>
137 <li><a href='https://code.google.com/p/gitblit/downloads/list?can=1'>GoogleCode (pre-1.4.0)</a></li>
138 <li class='divider'></li>
139 <li><a href='http://gitblit.github.io/gitblit-maven'>Maven Repository</a></li>
140 </ul></li> <!-- End Menu -->
141 <li class='dropdown'> <!-- Menu -->
142 <a class='dropdown-toggle' href='#' data-toggle='dropdown'>links<b class='caret'></b></a>
143 <ul class='dropdown-menu'>
144 <li><a href='https://dev.gitblit.com'>dev.gitblit.com (self-hosted)</a></li>
145 <li class='divider'></li>
146 <li><a href='http://plugins.gitblit.com'>Plugins Registry</a></li>
147 <li class='divider'></li>
148 <li><a href='https://github.com/gitblit/gitblit'>Github</a></li>
149 <li><a href='http://code.google.com/p/gitblit/issues/list'>Issues</a></li>
150 <li><a href='http://groups.google.com/group/gitblit'>Discussion</a></li>
151 <li><a href='https://plus.google.com/114464678392593421684'>Google+</a></li>
152 <li><a href='https://twitter.com/gitblit'>Twitter</a></li>
153 <li><a href='http://www.ohloh.net/p/gitblit'>Ohloh</a></li>
154 <li class='divider'></li>
155 <li><a href='https://plus.google.com/+JamesMoger'>+JamesMoger</a></li>
156 <li><a href='https://twitter.com/JamesMoger'>@JamesMoger</a></li>
157 </ul></li> <!-- End Menu -->
158 <li class='divider-vertical'></li>
159 <li><a href='https://plus.google.com/114464678392593421684?prsrc=3' class='gpluspage'><img src='https://ssl.gstatic.com/images/icons/gplus-16.png' width='16' height='16 style='order: 0;'/></a></li><li><div class='gplusone'><g:plusone size='small' href='http://gitblit.com'></g:plusone></div></li>
160                         </ul>
161                     </div><!--/.nav-collapse -->
162                 </div>
163             </div>
164         </div><!-- end Navigation Bar -->
165 <div class='container'>
166 <!-- Begin Markdown -->
167 <h2 class="section" id='H1'><a href="#H1" class="sectionlink"><i class="icon-share-alt"> </i></a>Lucene Search Integration</h2><p>Repositories may optionally be indexed using the Lucene search engine. The Lucene search offers several advantages over commit-traversal search:</p>
168 <ol>
169   <li>very fast commit and blob searches</li>
170   <li>multi-term searches</li>
171   <li>term-highlighted and syntax-highlighted fragment matches</li>
172   <li>multi-repository searches</li>
173 </ol>
174 <h3 class="section" id='H2'><a href="#H2" class="sectionlink"><i class="icon-share-alt"> </i></a>How do I use it?</h3><p>First you must ensure that <em>web.allowLuceneIndexing</em> is set <em>true</em> in <code>gitblit.properties</code> or <code>web.xml</code>. Then you must understand that Lucene indexing is an opt-in feature which means that no repositories are automatically indexed.<br/>Like anything else, this design has pros and cons.</p>
175 <h4 class="section" id='H3'><a href="#H3" class="sectionlink"><i class="icon-share-alt"> </i></a>Pros</h4>
176 <ol>
177   <li>no wasted cycles indexing repositories you will never search</li>
178   <li>you specify exactly what branches are indexed; experimental/dead/personal branches can be ignored</li>
179 </ol>
180 <h4 class="section" id='H4'><a href="#H4" class="sectionlink"><i class="icon-share-alt"> </i></a>Cons</h4>
181 <ol>
182   <li>you specify exactly what branches are indexed</li>
183 </ol>
184 <h4 class="section" id='H5'><a href="#H5" class="sectionlink"><i class="icon-share-alt"> </i></a>I have 300 repositories and you want me to specify indexed branches on each one??</h4><p>Yeah, I agree that is inconvenient.</p><p>If you are using Gitblit GO there is a utility script <code>add-indexed-branch.cmd</code> which allows you to specify an indexed branch for many repositories in one step.</p><p>If you are using Gitblit WAR then, at present, you are out of luck unless you write your own script to traverse your repositories and use native Git to manipulate each repository config.</p>
185 <pre><code>git config --add gitblit.indexBranch &quot;default&quot;
186 git config --add gitblit.indexBranch &quot;refs/heads/master&quot;
187 </code></pre>
188 <h4 class="section" id='H6'><a href="#H6" class="sectionlink"><i class="icon-share-alt"> </i></a>Indexing Branches</h4><p>You may specify which branches should be indexed per-repository in the <em>Edit Repository</em> page. New/empty repositories may only specify the <em>default</em> branch which will resolve to whatever commit HEAD points to or the most recently updated branch if HEAD is unresolvable.</p><p>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.</p><p><strong>NOTE:</strong><br/>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.</p>
189 <h4 class="section" id='H7'><a href="#H7" class="sectionlink"><i class="icon-share-alt"> </i></a>Adequate Heap</h4><p>The initial indexing of an existing repository can potentially exhaust the memory allocated to your Java instance and may throw OutOfMemory exceptions. Be sure to provide your Gitblit server adequate heap space to index your repositories. The heap is set using the <em>-Xmx</em> JVM parameter in your Gitblit launch command (e.g. -Xmx1024M).</p>
190 <h4 class="section" id='H8'><a href="#H8" class="sectionlink"><i class="icon-share-alt"> </i></a>Why does Gitblit check every 2 mins for repository/branch changes?</h4><p>Gitblit has to balance its design as a complete, integrated Git server and its utility as a repository viewer in an existing Git setup.</p><p>Gitblit could build indexes immediately on <em>edit repository</em> or on <em>receiving pushes</em>, 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.
191 <!-- End Markdown -->
892246 192 <div ><ul class="pager"><li class="previous"><a href="setup_hooks.html">&larr; push hooks</a></li> <li class="next"><a href="setup_proxy.html">reverse proxies &rarr;</a></li></ul></div><footer class="footer"><p class="pull-right">generated 2014-10-20</p>
48fe87 193 <p>The content of this page is licensed under the <a href="http://creativecommons.org/licenses/by/3.0">Creative Commons Attribution 3.0 License</a>.</p>
M 194 </footer>
195 </div>
196 <!-- Google Analytics -->
197 <script type="text/javascript">
198     var _gaq = _gaq || [];
199     _gaq.push(['_setAccount', 'UA-24377072-1']);
200     _gaq.push(['_trackPageview']);
201
202     (function() {
203         var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
204         ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
205         var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
206     })();
207 </script>
208
209 </body>
210 </html>