Software versioned in Bazaar or Bazaar-related posts. I only use Bazaar when the project I'm hacking already does. When I have a choice, I much prefer Git


Available in a bzr repository.
Repository: pybtex
Author: W. Trevor King

I keep my BibTeX databases neat and tidy with my own branch of Pybtex. The actual command used to re-format the files is

$ python -c 'from pybtex.database.input.bibtex import Parser; from pybtex.database.output.clean_bibtex import Writer; p = Parser(); d = p.parse_file("path/to/db.bib"); w = Writer(); w.write_file(d, "path/to/db.bib", p.get_raw_macros())' 2> pybtex.log

Be sure to look over pybtex.log and git diff path/to/db.bib for anything suspicious before committing the new file (you are versioning it with Git right? ;). You may have to do some find-and-replacing to handle changed keys and consolidate or rename automatically generated macros.

You might also be interested in bibtool, but I'm more comfortable tweaking things in Python.


Since I publish a lot of Git packages, I was interested to read about Joey Hess' rel=vcs-* microformat. I think recording the location of the repo sorcing a page is a great idea, but with the link stashed in the page header, I could easily browse on by without ever noticing that the link existed.

This looks like the same sort of problem that the Semantic Radar extension was designed to solve, except the SR extension notifies you about RDF files (SIOC, FOAF, DOAP, etc.). I've altered the SR extension to identify the rel=vcs-* tags.

The rel-vcs extension places an icon in your Firefox statusbar which goes "hot" when a page has rel=vcs-* tags and "cold" otherwise. When the icon is "hot", you can click on it to pop up a list of rel-vcs links. Clicking on an item in the list will open that URI in a new tab. Since Firefox can't speak git:// etc., the new tab will mostly be useful as a source of the URI for copy/pasting into a git clone ... call or similar. Alternatively, you can consider the "hot" icon as a suggestion to use webcheckout or other rel=vcs-* consumer on the source page.