BitKeeper Tricks
Getting '''All''' changes between two revisions
(from a posting by Linus Torvalds to LKML)
bk set -n -d -rXXXX -rYYYY | bk -R prs -h -d':I: <:P:@:HOST:>\n$each(:C:){\\t(:C:)\n}\n' -
to see every changeset that happened between XXXX and YYYY.
(In case you care: the "bk set" will spit out all keys that are the "set difference" between what is in XXXX and YYYY, and then the "bk prs" part will print out those keys in a readable manner according to the description string given by "-d").
So with XXXX being 1.911.13.50 and YYYY being top-of-tree (you can use '+' for this), you get:
1.858.2.3 <jsimmons@maxwell.earthlink.net> Added in Radeon PCI ids into pci_ids.h from radeon.h. IGA fbdev uses C99 now. 1.865.2.1 <jsimmons@maxwell.earthlink.net>
Speeding up {{{bk pull}}}
If you create a file called /etc/BitKeeper/etc/config (if one doesn't already exist) and include in it the line:
[]partial_check:yes!
checking after doing a bk pull (which is where most of the time is spent) will be much sped up.
Avoiding stale files
One thing I used to do constantly was forget to do a bk get after a checkin. This leads to compilation failures.
To fix, add the line
checkout:get
to /etc/BitKeeper/etc/config
Viewing revisions on the web
From a post to LKML by Larry McVoy
You can navigate to a file by going to www.bkbits.net and then working your
way down to the project of interest, then the repo, then "Browse the source
tree", then click on the file. You'll get offered a list of revisions,
click on one of those and you should be at a URL that looks like
http://project/repo/diffs/path/to/file@rev
You can put anything you want in for the rev, it can be a range. To see
1.2 vs 1.5 diffs you can do file@1.2..1.5 and hit return. It may be useful
to know that "+" always means the most recent rev in BK so to diff everything
from 1.2 to now that's file@1.2..+
Getting a specific version of the kernel
Linus tags all kernel releases in bitkeeper. This makes it easy to get a specific kernel version
bk clone -rv2.6.0-test2 bk://linux.bkbits.net/linux-2.5
To see the tags you can use bk tags
