How does it detect renamed files in the filesystem?
Thank you for open sourcing by the way, I can definitely see how some features (binary file handling, submodule handling) could be useful for large-scale projects like games.
Thank you for open sourcing by the way, I can definitely see how some features (binary file handling, submodule handling) could be useful for large-scale projects like games.
$ bk log -nd:ROOTKEY: -r+ slib.c
lm@bitmover.com|src/slib.c|19970518232928|52808|f3733b2c327712e5
The key is user@host|relative path|UTC|checksum|64 bits of /dev/random
and they are guaranteed to be unique if your DNS config is correct (we don't create duplicate keys, look for the uniq db in the code).The way we version the entire tree is simple, it's logically (implemented differently for performance):
<rootkey> <delta key>
<rootkey> <delta key>
...
where each rootkey uniquely identifies a file and each delta key identifies the tip as of that commit.Not sure if that is clear enough or not, ask away if not.
$ time bk annotate slib.c | wc -l
18508
real 0m0.031s