~loggerhead-team/loggerhead/trunk-rich

« back to all changes in this revision

Viewing changes to README

  • Committer: Matt Nordhoff
  • Date: 2010-01-14 00:20:24 UTC
  • mfrom: (399.1.3 loggerhead)
  • Revision ID: mnordhoff@mattnordhoff.com-20100114002024-w9wojo0hu8tg1j2q
Don't build a branch's revision graph cache more than once at the same time. (Max Kanat-Alexander)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
LOGGERHEAD
2
2
==========
3
3
 
4
 
[ Version 1.6 for Bazaar 1.6 ]
 
4
[ Version 1.17 for Bazaar 1.17 ]
5
5
 
6
6
Loggerhead is a web viewer for Bazaar branches.  It can be used to
7
7
navigate a branch history, annotate files, perform searches... all the
11
11
GETTING STARTED
12
12
---------------
13
13
 
14
 
Loggerhead depends on SimpleTAL for templating and Paste for the
15
 
server.  So you need these installed -- on Ubuntu you want the
16
 
'python-simpletal' and 'python-paste' packages installed.  You need
17
 
version 1.2 or newer of Paste.
18
 
 
19
 
Then simply run the 'serve-branches.py' with the branch you want to
 
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
5) flup (optional, needed to use FastCGI, SCGI or AJP)
 
29
   On Ubuntu, `sudo apt-get install python-flup`
 
30
   or use `easy_install flup`
 
31
 
 
32
Then simply run the 'serve-branches' with the branch you want to
20
33
serve on the command line:
21
34
 
22
 
    ./serve-branches.py ~/path/to/branch
 
35
    ./serve-branches ~/path/to/branch
23
36
 
24
37
The script listens on port 8080 so head to http://localhost:8080/ in
25
38
your browser to see the branch.  You can also pass a directory that
30
43
Loggerhead will notice and refresh, and Bazaar uses its own branch
31
44
locking to prevent corruption.
32
45
 
 
46
To run loggerhead as a linux daemon:
 
47
1) Copy loggerheadd to /etc/init.d
 
48
2) Edit the file to configure where your loggerhead is installed, and which
 
49
   serve-branches options you would like.
 
50
3) Register the service
 
51
   cd /etc/init.d
 
52
   a) on upstart based systems like Ubuntu run: 
 
53
      update-rc.d loggerheadd defaults
 
54
   b) on Sysvinit based systems like Centos or SuSE run:
 
55
      chkconfig --add loggerheadd
 
56
 
 
57
 
 
58
LOGGERHEAD AS A BAZAAR PLUGIN
 
59
-----------------------------
 
60
 
 
61
This branch contains experimental support for using Loggerhead as a Bazaar
 
62
plugin.  To use it, place the top-level Loggerhead directory (the one
 
63
containing this file) at ``~/.bazaar/plugins/loggerhead``.
 
64
 
33
65
 
34
66
USING A CONFIG FILE
35
67
-------------------
36
68
 
37
 
Previous versions of Loggerhead read their configuration from a config
38
 
file.  This mode of operation is still supported by the
39
 
'start-loggerhead.py' script.  A 'loggerhead.conf.example' file is
40
 
included in the source which has comments explaining the various
41
 
options.
42
 
 
43
 
Loggerhead can then be started by running::
44
 
 
45
 
    $ ./start-loggerhead.py
46
 
 
47
 
This will run loggerhead in the background, listening on port 8080 by
48
 
default.
49
 
 
50
 
To stop Loggerhead, run::
51
 
 
52
 
    $ ./stop-loggerhead.py
53
 
 
54
 
In the configuration file you can configure projects, and branches per
55
 
project.  The idea is that you could be publishing several (possibly
56
 
unrelated) projects through the same loggerhead instance, and several
57
 
branches for the same project.  See the "loggerhead.conf.example" file
58
 
included with the source.
59
 
 
60
 
A debug and access log are stored in the logs/ folder, relative to
61
 
the location of the start-loggerhead.py script.
 
69
To hide branches from being displayed, add to ``~/.bazaar/locations.conf``,
 
70
under the branch's section:
 
71
 
 
72
    [/path/to/branch]
 
73
    http_serve = False
 
74
 
 
75
 
 
76
More configuration options to come soon.
62
77
 
63
78
 
64
79
SERVING LOGGERHEAD FROM BEHIND APACHE
70
85
configuration is one way to do this::
71
86
 
72
87
    <Location "/branches/">
73
 
        ProxyPass http://127.0.0.1:8080/
74
 
        ProxyPassReverse http://127.0.0.1:8080/
 
88
        ProxyPass http://127.0.0.1:8080/branches/
 
89
        ProxyPassReverse http://127.0.0.1:8080/branches/
75
90
    </Location>
76
91
 
77
 
If Paste Deploy is installed, the 'serve-branches.py' script can be
 
92
If Paste Deploy is installed, the 'serve-branches' script can be
78
93
run behind a proxy at the root of a site, but if you're running it at
79
 
some path into the site, you'll need to add a 'prefix' argument to the
80
 
PrefixMiddleware call in the script.  More flexible configuration
81
 
should be added soon...
82
 
 
83
 
 
84
 
FILES CHANGED CACHE
85
 
-------------------
86
 
 
87
 
To speed up the display of the changelog view for large trees,
88
 
loggerhead can be configured to cache the files changes between
89
 
revisions.  Set the 'cachepath' value in the config file.
 
94
some path into the site, you'll need to specify is using '--prefix=/some_path'.
 
95
 
 
96
 
 
97
SEARCH
 
98
------
 
99
 
 
100
Search is currently supported by using the bzr-search plugin (available
 
101
at: ``https://launchpad.net/bzr-search``
 
102
You need to have the plugin installed and each branch indexed to allow
 
103
searching on branches.
90
104
 
91
105
 
92
106
SUPPORT
102
116
Bugs are tracked on Launchpad; start at:
103
117
 
104
118
    https://bugs.launchpad.net/loggerhead
 
119
 
 
120
 
 
121
HACKING
 
122
-------
 
123
 
 
124
To run loggerhead tests, you will need the package python-nose,
 
125
and run in the loggerhead directory:
 
126
 
 
127
    nosetests