~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to README.txt

Fix serving branches over HTTP (bug #380026)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
LOGGERHEAD
2
2
==========
3
3
 
4
 
[ version 1.1.1 for bazaar 0.13 ]
5
 
 
6
 
Loggerhead is a web viewer for bazaar branches.  It can be used to navigate
7
 
a branch history, annotate files, perform searches... all the usual things.
8
 
 
9
 
This is a TurboGears (http://www.turbogears.org) project.  It can be
10
 
started by running::
11
 
 
12
 
    $ ./start-loggerhead.py
13
 
    
14
 
This will run loggerhead in the background.  To stop it, run::
15
 
 
16
 
    $ ./stop-loggerhead.py
17
 
 
18
 
If you're not familiar with TurboGears, the simplest way to get running is
19
 
to add the following lines to your apache configuration::
 
4
[ Version 1.6 for Bazaar 1.6 ]
 
5
 
 
6
Loggerhead is a web viewer for Bazaar branches.  It can be used to
 
7
navigate a branch history, annotate files, perform searches... all the
 
8
usual things.
 
9
 
 
10
 
 
11
GETTING STARTED
 
12
---------------
 
13
 
 
14
Loggerhead depends on:
 
15
 
 
16
1) SimpleTAL for templating.
 
17
   On Ubuntu, `sudo apt-get install python-simpletal`
 
18
   or download from http://www.owlfish.com/software/simpleTAL/download.html
 
19
2) simplejson for producing JSON data.
 
20
   On Ubuntu, `sudo apt-get install python-simplejson`
 
21
   or use `easy_install simplejson`.
 
22
3) Paste for the server. (You need version 1.2 or newer of Paste.)
 
23
   On Ubuntu, `sudo apt-get install python-paste`
 
24
   or use `easy_install Paste`
 
25
4) Paste Deploy  (optional, needed when proxying through Apache)
 
26
   On Ubuntu, `sudo apt-get install python-pastedeploy`
 
27
   or use `easy_install PasteDeploy`
 
28
 
 
29
Then simply run the 'serve-branches' with the branch you want to
 
30
serve on the command line:
 
31
 
 
32
    ./serve-branches ~/path/to/branch
 
33
 
 
34
The script listens on port 8080 so head to http://localhost:8080/ in
 
35
your browser to see the branch.  You can also pass a directory that
 
36
contains branches to the script, and it will serve a very simple
 
37
directory listing at other pages.
 
38
 
 
39
You may update the Bazaar branches being viewed at any time.
 
40
Loggerhead will notice and refresh, and Bazaar uses its own branch
 
41
locking to prevent corruption.
 
42
 
 
43
To run loggerhead as a linux daemon: 
 
44
1) Copy loggerheadd to /etc/init.d
 
45
2) Edit the file to configure where your loggerhead is installed, and which
 
46
   serve-branches options you would like.
 
47
3) Register the service
 
48
   cd /etc/init.d
 
49
   a) on upstart based systems like Ubuntu run: 
 
50
      update-rc.d loggerheadd defaults
 
51
   b) on Sysvinit based systems like Centos or SuSE run:
 
52
      chkconfig --add loggerheadd
 
53
 
 
54
 
 
55
LOGGERHEAD AS A BAZAAR PLUGIN
 
56
-----------------------------
 
57
 
 
58
This branch contains experimental support for using Loggerhead as a Bazaar
 
59
plugin.  To use it, place the top-level Loggerhead directory (the one
 
60
containing this file) at ``~/.bazaar/plugins/loggerhead``.
 
61
 
 
62
 
 
63
USING A CONFIG FILE
 
64
-------------------
 
65
 
 
66
Previous versions of Loggerhead read their configuration from a config
 
67
file.  This mode of operation is still supported by the
 
68
'start-loggerhead' script.  A 'loggerhead.conf.example' file is
 
69
included in the source which has comments explaining the various
 
70
options.
 
71
 
 
72
Loggerhead can then be started by running::
 
73
 
 
74
    $ ./start-loggerhead
 
75
 
 
76
This will run loggerhead in the background, listening on port 8080 by
 
77
default.
 
78
 
 
79
To stop Loggerhead, run::
 
80
 
 
81
    $ ./stop-loggerhead
 
82
 
 
83
In the configuration file you can configure projects, and branches per
 
84
project.  The idea is that you could be publishing several (possibly
 
85
unrelated) projects through the same loggerhead instance, and several
 
86
branches for the same project.  See the "loggerhead.conf.example" file
 
87
included with the source.
 
88
 
 
89
A debug and access log are stored in the logs/ folder, relative to
 
90
the location of the start-loggerhead script.
 
91
 
 
92
 
 
93
SERVING LOGGERHEAD FROM BEHIND APACHE
 
94
-------------------------------------
 
95
 
 
96
If you want to view Bazaar branches from your existing Apache
 
97
installation, you'll need to configure Apache to proxy certain
 
98
requests to Loggerhead.  Adding lines like this to you Apache
 
99
configuration is one way to do this::
20
100
 
21
101
    <Location "/branches/">
22
 
        ProxyPass http://127.0.0.1:8080/
23
 
        ProxyPassReverse http://127.0.0.1:8080/
 
102
        ProxyPass http://127.0.0.1:8080/branches/
 
103
        ProxyPassReverse http://127.0.0.1:8080/branches/
24
104
    </Location>
25
 
    
26
 
The config file is "loggerhead.conf".  In there, you can configure projects,
27
 
and branches per project.  The idea is that you could be publishing several
28
 
(possibly unrelated) projects through the same loggerhead instance, and 
29
 
several branches for the same project.
30
 
 
31
 
Don't bother with "dev.cfg" or any of the other TurboGears config files.
32
 
Loggerhead overrides those values with its own.
33
 
 
34
 
A debug and access log are stored in the logs/ folder.
35
 
 
36
 
 
37
 
CACHES
38
 
------
39
 
 
40
 
To speed up most operations, loggerhead will start creating two caches per
41
 
branch when it first launches:
42
 
 
43
 
    - a revision data cache
44
 
    - a text searching cache
45
 
 
46
 
You can put the cache folder anywhere, but I find that a folder under
47
 
the branch's .bzr/ folder is the simplest place.
48
 
 
49
 
The caches for a branch with 10,000 revisions take about 15 minutes each
50
 
on my machine, but YMMV.  Once they are built, they update every six hours
51
 
or so but usually finish quickly (or instantly) after the initial creation.
52
 
Until the revision cache is built, all operations will be slow.
53
 
 
54
 
You may update the bazaar branch at any time (for example, from a cron).
55
 
Loggerhead will notice and refresh, and bazaar uses its own branch locking
56
 
to prevent corruption.
 
105
 
 
106
If Paste Deploy is installed, the 'serve-branches' script can be
 
107
run behind a proxy at the root of a site, but if you're running it at
 
108
some path into the site, you'll need to specify is using '--prefix=/some_path'.
 
109
 
 
110
FILES CHANGED CACHE
 
111
-------------------
 
112
 
 
113
To speed up the display of the changelog view for large trees,
 
114
loggerhead can be configured to cache the files changes between
 
115
revisions.  Set the 'cachepath' value in the config file.
57
116
 
58
117
 
59
118
SUPPORT
60
119
-------
61
120
 
62
 
This is loosely based on bazaar-webserve, which was loosely based on hgweb.
63
 
Discussion should take place on the bazaar-dev mailing list.
64
 
 
 
121
Loggerhead is loosely based on bazaar-webserve, which was loosely
 
122
based on hgweb.  Discussion should take place on the bazaar-dev
 
123
mailing list at bazaar@lists.canonical.com.  You can join the list at
 
124
<https://lists.ubuntu.com/mailman/listinfo/bazaar>.  You don't need to
 
125
subscribe to post, but your first post will be held briefly for manual
 
126
moderation.
 
127
 
 
128
Bugs are tracked on Launchpad; start at:
 
129
 
 
130
    https://bugs.launchpad.net/loggerhead