What's changed in loggerhead?
=============================

1.18.1 [24Mar2011]
------------------

    - Fix escaping of filenames in revision views.
      (William Grant, #740142)

    - Add missing import to loggerhead.trace, allowing start-loggerhead
      to run when a log.roll config option is set.
      (Max Kanat-Alexander, #673999)


1.18 [10Nov2010]
----------------

    - Syntax highlighting is no longer applied for files greater than 512K,
      reducing codebrowse.launchpad.net overloading.
      (Max Kanat-Alexander, #513044)

    - Documentation added in the docs directory. README simplified
      accordingly. (Tres Seaver).

    - Show svn/git/hg revision ids in loggerhead revision view.
      (Jelmer Vernooij)

    - Fix .bzr/smart access to branches in shared repos. (You also need
      a version of bzr with bug #348308 fixed.) (Andrew Bennetts)

    - Support FastCGI, SCGI and AJP using flup. (Denis Martinez)

    - Repository.get_revision_inventory() was removed in bzr 2.2; use
      Repository.get_inventory() instead. (Matt Nordhoff, #528194)

    - Ignore readonly+ prefix when checking if Loggerhead is serving a
      local location. (Reported by Tres Seaver.) (Matt Nordhoff)

    - Set Cache-Control and Expires headers on static pages.
      (John Arbash Meinel)

    - Generate relative links where possible (everywhere but HTTP
      redirects and feed IDs). (Michael Hudson, Matt Nordhoff)

    - Fix bad redirect when visiting "/download" or "/download/".
      (Matt Nordhoff, #247992)


1.17 [20Aug2009]
----------------

    - Add bug links in revision informations (Alexandre Garnier, #314052)

    - Make sure that binary files aren't annotated. (Martin Albisetti,
      #258848)

    - Loggerhead now serves bzr branches over HTTP and exposes the URL
      to branch them. Addresses bug #240577. (Jonathan Lange)

    - Leading blank lines in commit messages no longer result in an
      empty summary. (Colin Watson)

    - Added optional syntax highlighting to annotate view using
      python-pygments.  Partially addresses bug #306631. (Peter Bui)

    - Convert newlines in commit messages to HTML line breaks for
      annotate and changelog views.  Addresses bug #273688. (Peter
      Bui)

    - serve-branches now errors if run behind a proxy without
      paste.deploy installed. (Michael Hudson)

    - Loggerhead should now handle file and directory names that need
      URL escaping without crashing.

    - The start-loggerhead script properly sets the wsgi.url_scheme
      from the server.webpath option. (neror, #260547)

    - The revision page defaults to unified style again, and can
      convert to a side-by-side view using JavaScript. (Michael Hudson)

    - Clean up and improve performance of the annotate view. (Michael
      Hudson)

    - Finish converting JavaScript from MooTools to YUI 3. (Michael
      Hudson)

    - Improve compatibility with IE 6. (Michael Hudson)

    - Leading blank lines in commit messages no longer result in an
      empty summary. (Colin Watson)

    - Clip long lines in side-by-side diff view. (Michael Hudson,
      #334837)

    - The user-confusing "next" and "previous" links now read "older"
      and "newer" respectively. (Michael Hudson, #297930)

    - The annotate view now contains line number anchors. (Michael
      Hudson)

    - Fix inventory pages using "//" in links. (Michael Hudson, #329668)

    - Fix problems viewing files and directories containing spaces and
      other funny characters. (Peter Bui)

    - Changelog messages are now displayed with newlines preserved.
      (Peter Bui, #273688)

    - Offer a link to see the full file diffs for a file path. (Michael
      Hudson, #333797)

    - Fix annotate error caused by Pygments stripping trailing
      whitespace. (Michael Hudson, #338762)

    - Loggerhead can be installed as a Bazaar plugin and run by
      'bzr serve --http'. (Martin Pool)

    - Load parts of the changelog and revision pages via XMLHttpRequest
      to improve performance. This adds a dependency on simplejson or
      json. Partially addresses bug #253950. (Michael Hudson)

    - Various improvements to the animation JavaScript. (Michael Hudson)

    - Fix HTML content of source files being displayed unescaped when
      Pygments was unavailable. (Michael Hudson, #344970)

    - Fix serve-branches's path argument. (Michael Hudson, #353230)

    - serve-branches now has an option, --use-cdn, to load YUI from
      Yahoo!'s CDN. (Matt Nordhoff)

    - Fix certain race conditions for loading bzr-search. (Robert
      Collins, #334250)

    - Fix errors when using serve-branches --log-folder or --user-dirs.
      (It was calling config.get_option() incorrectly.) (Matt Nordhoff,
      bug #361238)

    - Move some caching from RAM to the disk, and other caching and
      memory usage improvements. (Michael Hudson)

    - Add a --cache-dir option to serve-branches to choose where to
      place the SQL cache, and only create one temporary SQL dir per
      process. (Matt Nordhoff, #358322)

    - Replace homebrew memory profiling code with Dozer. (Paul Hummer)

    - Use the branch's public_branch as the default suggested URL to
      branch from (Matt Nordhoff, #369767)

    - Fix a file descriptor leak (Matt Nordhoff, #370845)

    - Use transport API internally, so it is possible to specify a remote
      URL to serve-branches. (Jelmer Vernooij, #371787)

    - Fix internal server errors when using start-loggerhead. (Matt
      Nordhoff, #375948)

    - Fix annotating non-UTF-8 files when Pygments is disabled. (Matt
      Nordhoff, #376957)

    - Fix 'bzr serve --http' errors. (Matt Nordhoff, #377551)

    - Added the option to hide branches by setting http_serve = False
      in locations.conf (Martin Albisetti)

    - Fix serving branches over HTTP. (Matt Nordhoff, Jelmer Vernooij,
      #380026)

    - Install loggerhead as a bzr plugin by default (Jelmer Vernooij)

    - Fix logging 404 Not Found responses (Matt Nordhoff, #381029)

    - Bumped minimunm bzrlib version to 1.13 (Martin Albisetti)

    - Make sure the Atom feeds (nearly) validate. (Matt Nordhoff, #247162)

    - Support serving branches over HTTP using the smart server protocol.
      (Jelmer Vernooij, #306853)

    - Serving branch data was broken when --allow-writes was *not*
      passed. (Michael Hudson, #388730)

    - http_serve config values are interpreted more forgivingly.
      (Michael Hudson)

    - When specifying a remote url to serve-branches, do not share
      connections between threads. (Michael Hudson, #390972)

    - http_serve values from locations.conf are now applied to
      non-branch .bzr data (e.g shared repositories). (Michael Hudson)

    - tags are now displayed. (Cris Boylan, Alexandre Garnier, Michael
      Hudson, #246739)

    - Display Loggerhead's version number at the bottom of the page, and
      add a <meta> generator tag also including the version numbers of
      its dependencies. (Matt Nordhoff, #370155)


1.10 [22Dec2008]
----------------

    - Add startup deamon script for Linux (Marius Kruger)

    - Switch navigation from file_ids to paths. Fixes bugs #260363,
      #269365 and #128926. (Martin Albisetti)

    - Fix bug #258710 ("the /files page explodes in an empty branch").
      Also minor improvements to the /files and /changes pages.
      (Marius Kruger)

    - Added --port, --host and --prefix options to serve-branches
      script. (Martin Albisetti)

    - Fixed broken template for project browsing with start-loggerhead
      (Martin Albisetti)

    - Added --reload options to restart the application when a python
      file change. (Guillermo Gonzalez)

    - Added error handling middleware. (Guillermo Gonzalez)

    - Fix bug #243415 ("Tracebacks go to console but not log
      file"). Also minor improvements to logging in serve-branches and
      start-loggerhead. (Guillermo Gonzalez)

1.6 [15Aug2008]
----------------

    - Download a diffs between revisions. (Martin Albisetti)

    - Modified templates to make loggerhead's theme easier to
      change. (Paul Hummer)

    - Default sqlite interface is now sqlite3. (Robert Collins)

    - New ninja theme sponsored by Canonical (Martin Albisetti)

    - Added COPYING file and clarified copyright headers (John Arbash Meinel)

    - Remove the .py extension requiered by the Debian Policy.
      (Jelmer Vernooij)

    - New startup script serve-branches will serve Loggerhead without
      the need of configuration, and allow you to browse through directories
      and branches. (Michael Hudson)

    - Loggerhead is no longer a TurboGears application, but rather a
      WSGI application built using Paste (see http://wsgi.org/ and
      http://pythonpaste.org/ for more about WSGI and Paste).

    - URLs now use revision numbers instead of revision ids (Martin Albisetti)

    - The scripts no longer insist on Python 2.4 -- loggerhead works
      fine with 2.5.

    - Bazaar as of version 1.5 has improved in performance enough that
      the revision cache no longer gave any noticeable benefit, so it
      was removed (the files-changed cache is still useful).

    - The templates were rewritten in Zope's TAL markup, powered by
      the simpleTAL library -- improving both the performance and
      memory consumption of rendering by a factor of around 3 for
      large pages over the old Kid templates.

    - Loggerhead's poorly performing text index was disabled. bzr-search
      is now used if the plugin is installed and a text index is present
      on the branch being viewed. (Martin Albisetti, Robert Collins).

    - Loggerhead no longer depends on bzrlib functions deprecated in
      Bazaar 1.5 and removed in 1.6 (Martin Albisetti).

    - The daemonization code was made more regular, fixing bugs
      #139161 ("Starting loggerhead process may not close its stdin
      and stdout properly") and #211526 ("Codebrowse log directory has
      unnecessarily permissive permissions")

    - Some confusion about what the 'file_id' query argument means was
      cleared up: filter_file_id now means "filter revisions to those
      that affect this file" in all views and file_id means "examine
      this file/directory" in the annotate and inventory views.

    - Dates are present more compactly.

    - The loggerhead.conf file can specify which network interface to
      bind to (Mattias Eriksson)

1.2.1  [06mar2008]
------------------

    - The changelog view was out of order when not using the revision
      cache.

1.2  [04mar2008]

    - Michael Hudson <michael.hudson@canonical.com> has mostly taken
      over the maintenance of loggerhead.

    - loggerhead now has a simple test suite -- use 'nosetests' in the
      loggerhead directory to run it.

    - The rendering performance of pages that display large amounts of
      text was improved by a factor of 4 or so.

    - loggerhead no longer caches the text of the diffs between
      revisions.  It rarely helped and wasted a lot of disk space.

    - The layout of most pages was made more "tight" to waste less
      screen real estate, and some other UI improvements (Kent
      Gibson).

    - Much dead code was removed.

    - Loggerhead now computes the files changed between revisions only
      when it needs to know this.  This is a fairly expensive
      operation in Bazaar, and doing it less massively improves
      performance and memory usage in some situations.

    - Loggerhead now takes a read lock on the branch being viewed for
      the duration of each request, which improves performance
      significantly.

    - Loggerhead no longer uses the corruption-prone Berkely DB-backed
      shelve module for its caches, and rather (ab)uses a sqlite
      database instead.

    - The creation of History objects is much faster for large
      branches (Aaron Bentley).

    - Allow the construction of URLs using revnos and file paths as
      well as revids and fileids (bug #98826):

      - For changes pages, append the newest revno to display to the
        URL, like http://.../changes/<revno>

      - For annotate pages, append the revno to display to the URL,
        followed by the path, like http://.../annotate/<revno>/<path>

      - For file listing and revision pages append the revno to
        display to the URL, like http://.../files/<revno>

      Loggerhead still generates URLs using revision and file ids for
      the moment.

    - Many bugs were fixed:

      - Loggerhead does not escape special characters when embedding a
        revision ID in a URL (bug #88286)

      - Improved robustness in the face of ghosts.

      - Don't crash on displaying a commit with an empty message (bug
        #86247)

      - codebrowse fails with infinite redirections (James Henstridge,
        bug #89854)

      - Loggerhead fails to browse revisions that change binary files
        (James Henstridge, bug #91686)

      - Loggerhead atom feeds expose internal hostname (James
        Henstridge, bug #93585)

      - loggerhead don't like page break character (0x0C) in text
        files (bug #113313)

      - codebrowse source listings don't contain line number anchors
        (bug #98826)

      - only serve up unescaped user content with "Content-Disposition:
        attachment"

      - viewing the file listing consumes a lot memory (bug #116869)

      - loggerhead can't handle empty branches (bug #119228)

      - upgrading the format of a branch behind loggerhead could make
        it fail for that branch (bug #118673)

      - Error parsing non-ascii content (bug #117799)

      - Loggerhead failed on whitespace-only commit messages.

      - Links to diffs from within a revision do not work (bug
        #119422)

      - UTF-8 patches served as ISO-8859-1, fixed by served bundles as
        application/octet-stream (bug #121336)

      - TurboGears was turning query arguments into unicode, and bzr
        stopped accepting unicode revids (bug #175228)


1.1.1  [24jan2007]
------------------

    - fix broken inventory page (oops!)

    - fix a few rendering problems with kid and safari


1.1  [20jan2007]
----------------

    - new feature to compare two revisions to each other

    - inserted text in diffs is now blue instead of green

    - fixed to start and stop as a daemon now (use "-f" to run in the
      foreground), and all config is in loggerhead.conf (no need to mess with
      dev.cfg)

    - renamed show/hide javascript buttons to expand/collapse, and made them
      much faster

    - added an atom-feed link to each branch on the browse page [elliot
      murphy]

    - auto-publish feature for multiple branches under a single folder (see
      loggerhead.conf.example)

    - added the ability to share cache files per-project instead of just
      per-branch

    - added side-by-side diff display for the revision page (which is the
      default), with a button to switch between side-by-side and unified diff
      format

    - made caching use file locking, and close cleanly on shutdown

    - miscellaneous speed and page-size improvements


1.0  [23dec2006]
----------------

    - initial release

