Mercurial > hgsubversion
view tests/fixtures/symlinks.sh @ 933:a9f315eae67c
push: use native rebase instead of our rebase wrapper
Our rebase wrapper doesn't quite do the right thing with repect to a
just-pushed revision. In particular, it will try to rebase the
just-pushed revision on top of the version of that revision we just
pulled down from svn. This will sometimes result in a local revision
with an identical commit message as the revision from svn, but no file
changes.
This changes the rebase portion of the push command to instead use the
native rebase with a revset that excludes the revision we just pushed
to svn from the set to be rebased. It also moves to a single strip
operation that removes all of the revisions based on a pre-push or
partially pushed revision. This moves to a separate rebase and strip
operation since we now need to strip revisions we are not rebasing.
author | David Schleimer <dschleimer@fb.com> |
---|---|
date | Mon, 24 Sep 2012 10:18:28 -0700 |
parents | b37c401b7f92 |
children |
line wrap: on
line source
#!/bin/sh # # Generate symlinks.svndump # mkdir temp cd temp mkdir project-orig cd project-orig mkdir trunk mkdir branches cd .. svnadmin create testrepo svnurl=file://`pwd`/testrepo svn import project-orig $svnurl -m "init project" svn co $svnurl project cd project/trunk echo a > a ln -s a linka ln -s a linka2 mkdir d ln -s a d/linka svn add a linka linka2 d svn ci -m "add symlinks" # Move symlinks svn mv linka linkaa svn mv d d2 svn commit -m "moving symlinks" # Update symlinks (test "link " prefix vs applydelta) echo b > b rm linkaa ln -s b linkaa rm d2/linka ln -s b d2/linka svn ci -m "update symlinks" # Replace a symlink with a regular file rm linkaa echo data > linkaa svn propdel svn:special linkaa # Replace another symlink with a regular file in another way # It should mark linka2 as R(eplaced) svn rm linka2 echo data2 > linka2 svn add linka2 svn propdel svn:special linka2 svn rm d2/linka svn ci -m "undo link" cd ../.. svnadmin dump testrepo > ../symlinks.svndump