Mercurial > hgsubversion
view tests/fixtures/externals.sh @ 313:942f198b8ff5
hg_delta_editor: detect new branches issued from non-branch directories
This fix solves the following case: let's /dumb/layout/project be an existing
project. To normalize the trunk/branches/tags layout, people may do:
$ mkdir /project
$ mv /dumb/layout/project /project/project
# Oups, should have been trunk!
$ mv /project/project /project/trunk
trunk creation was ignore because:
- update_branch_map() sees it come from a non-branch copy source and ignores it
(case #3).
- since it is not in self.branches, add_directory() ignores the non-existing path.
Then trunk is left uninitialized.
To solve this, we allow update_branch_map() to detect branches copied from
non-canonical locations.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 03 May 2009 21:42:42 -0500 |
parents | d3ea6c98a086 |
children | 963d27a0b1c2 |
line wrap: on
line source
#!/bin/sh # # Generate externals.svndump # mkdir temp cd temp mkdir project-orig cd project-orig mkdir trunk mkdir branches mkdir externals cd .. svnadmin create testrepo svnurl=file://`pwd`/testrepo svn import project-orig $svnurl -m "init project" svn co $svnurl project cd project/externals mkdir project1 echo a > project1/a svn add project1 mkdir project2 echo a > project2/b svn add project2 svn ci -m "configure externals projects" cd ../trunk # Add an external reference echo a > a svn add a cat > externals <<EOF ^/externals/project1 deps/project1 EOF svn propset -F externals svn:externals . svn ci -m "set externals on ." # Add another one cat > externals <<EOF ^/externals/project1 deps/project1 ^/externals/project2 deps/project2 EOF svn propset -F externals svn:externals . svn ci -m "update externals on ." # Suppress an external and add one on a subdir cat > externals <<EOF ^/externals/project2 deps/project2 EOF svn propset -F externals svn:externals . mkdir subdir mkdir subdir2 svn add subdir subdir2 cat > externals <<EOF ^/externals/project1 deps/project1 EOF svn propset -F externals svn:externals subdir subdir2 svn ci -m "add on subdir" # Test branch with externals svn up cd ../branches svn copy ../trunk branch1 svn propdel svn:externals branch1/subdir2 svn ci -m 'externals in subtree' # Test branch with externals, removing on copy root svn copy ../trunk branch2 svn propdel svn:externals branch2 branch2/subdir2 svn ci -m 'externals in subtree, removed on root' cd ../trunk # Suppress the subdirectory svn rm --force subdir svn ci -m 'remove externals subdir' # Remove the property on subdir2 svn propdel svn:externals subdir2 svn ci -m 'remove externals subdir2' cd ../.. svnadmin dump testrepo > ../externals.svndump