git/t/t9153-git-svn-rewrite-uuid.sh
Jay Soffian 3e18ce1ac3 git-svn: allow UUID to be manually remapped via rewriteUUID
In certain situations it may be necessary to manually remap an svn
repostitory UUID. For example:

                  o--- [git-svn clone]
                 /
[origin svn repo]
                 \
                  o--- [svnsync clone]

Imagine that only "git-svn clone" and "svnsync clone" are made available
to external users. Furthur, "git-svn clone" contains only trunk, and for
reasons unknown, "svnsync clone" is missing the revision properties that
normally provide the origin svn repo's UUID.

A git user who has cloned the "git-svn clone" repo now wishes to use
git-svn to pull in the missing branches from the "synsync clone" repo.
In order for git-svn to get the history correct for those branches,
it needs to know the origin svn repo's UUID. Hence rewriteUUID.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
2010-01-23 03:23:04 -08:00

26 lines
579 B
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2010 Jay Soffian
#
test_description='git svn --rewrite-uuid test'
. ./lib-git-svn.sh
uuid=6cc8ada4-5932-4b4a-8242-3534ed8a3232
test_expect_success 'load svn repo' "
svnadmin load -q '$rawsvnrepo' < '$TEST_DIRECTORY/t9153/svn.dump' &&
git svn init --minimize-url --rewrite-uuid='$uuid' '$svnrepo' &&
git svn fetch
"
test_expect_success 'verify uuid' "
git cat-file commit refs/remotes/git-svn~0 | \
grep '^${git_svn_id}: .*@2 $uuid$' &&
git cat-file commit refs/remotes/git-svn~1 | \
grep '^${git_svn_id}: .*@1 $uuid$'
"
test_done