git-svn: use separate, per-repository .rev_db files

We need a separate .rev_db file for each repository we're
tracking.  This allows us to track the same logical path off
multiple mirrors.  We preserve a symlink to the old .rev_db
(no-UUID) if we're (auto-)migrating from an old version to
preserve backwards compatibility.

Also, get rid of the uuid() wrapper since we cache UUID in our
private config, and the SVN::Ra::get_uuid() function memoizes
the return value per-connection.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Eric Wong
2007-02-12 13:25:25 -08:00
parent 97ae091169
commit 26a62d57a2
2 changed files with 141 additions and 57 deletions

View File

@ -96,5 +96,16 @@ test_expect_success 'migrate --minimize on old multi-inited layout' "
grep '^:refs/remotes/git-svn' fetch.out
"
test_expect_success ".rev_db auto-converted to .rev_db.UUID" "
git-svn fetch -i trunk &&
expect=$GIT_DIR/svn/trunk/.rev_db.* &&
test -n \"\$expect\" &&
mv \$expect $GIT_DIR/svn/trunk/.rev_db &&
git-svn fetch -i trunk &&
test -L $GIT_DIR/svn/trunk/.rev_db &&
test -f \$expect &&
cmp \$expect $GIT_DIR/svn/trunk/.rev_db
"
test_done