Mercurial > hgsubversion
comparison tests/fixtures/renamedproject.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 | |
children |
comparison
equal
deleted
inserted
replaced
312:4dc197f533c1 | 313:942f198b8ff5 |
---|---|
1 #!/bin/sh | |
2 # | |
3 # Convert a project moving from a non-canonical to canonical | |
4 # layout, exercizing the missing plaintext code paths. It also tests | |
5 # branch creations where the branch source is not a canonical branch. | |
6 # | |
7 | |
8 mkdir temp | |
9 cd temp | |
10 | |
11 svnadmin create testrepo | |
12 svnurl=file://`pwd`/testrepo | |
13 | |
14 mkdir project-orig | |
15 cd project-orig | |
16 echo a > a | |
17 echo b > b | |
18 echo c > c | |
19 mkdir d | |
20 echo a > d/a | |
21 cd .. | |
22 | |
23 # Let's suppose it was actually branched in a previous life | |
24 mkdir project-branch | |
25 cd project-branch | |
26 echo a > a | |
27 echo b > b | |
28 cd .. | |
29 | |
30 svn import project-orig $svnurl/project-orig -m "init project" | |
31 svn import project-branch $svnurl/project-branch -m "init branch" | |
32 | |
33 svn mkdir $svnurl/project -m "create new project hierarchy" | |
34 svn mv $svnurl/project-orig $svnurl/project/project -m "rename as project" | |
35 svn mv $svnurl/project/project $svnurl/project/trunk -m "rename as project" | |
36 | |
37 svn mkdir $svnurl/project/branches -m "add branches root" | |
38 svn mv $svnurl/project-branch $svnurl/project/misplaced -m "incorrect move of the branch" | |
39 svn mv $svnurl/project/misplaced $svnurl/project/branches/branch -m "move of the branch" | |
40 | |
41 svn co $svnurl/project | |
42 cd project | |
43 echo a >> trunk/a | |
44 svn ci -m "change a" | |
45 echo a >> trunk/a | |
46 echo b >> trunk/b | |
47 svn rm trunk/c | |
48 echo a >> trunk/d/a | |
49 svn ci -m "change files in trunk" | |
50 # Try the same thing with the branch | |
51 echo a >> branches/branch/a | |
52 svn rm branches/branch/b | |
53 svn ci -m "change a in branch" | |
54 cd .. | |
55 | |
56 # Add this to make test_rebuildmeta happy, needs something to convert | |
57 svn import project-orig $svnurl/trunk -m "init fake trunk for rebuild_meta" | |
58 | |
59 svnadmin dump testrepo > ../renamedproject.svndump |