Mercurial > hg
changeset 10217:2bbb4c8eb27e stable
Add test for relink extension
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Fri, 08 Jan 2010 22:30:07 +0100 |
parents | a474f950357b |
children | 750b7a4f01f6 |
files | tests/test-relink tests/test-relink.out |
diffstat | 2 files changed, 68 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-relink Fri Jan 08 22:30:07 2010 +0100 @@ -0,0 +1,44 @@ +#!/bin/sh + +echo "[extensions]" >> $HGRCPATH +echo "relink=" >> $HGRCPATH + +cat > arelinked.py <<EOF +import sys, os +path1, path2 = sys.argv[1:3] +if os.stat(path1).st_ino == os.stat(path2).st_ino: + print '%s == %s' % (path1, path2) +else: + print '%s != %s' % (path1, path2) +EOF + +echo '% create source repository' +hg init repo +cd repo +echo '[ui]' > .hg/hgrc +echo 'username= A. Foo <a.foo@bar.com>' >> .hg/hgrc +echo a > a +echo b > b +hg ci -Am addfile +echo a >> a +echo a >> b +hg ci -Am changefiles +cd .. + +echo '% clone and pull to break links' +hg clone --pull -r0 repo clone +cd clone +echo '[ui]' >> .hg/hgrc +echo 'username= A. Baz <a.baz@bar.com>' >> .hg/hgrc +hg pull -q +echo b >> b +hg ci -m changeb + +echo '% relink' +hg relink --debug | sed 's:relinking.*store:relinking .hg/store:g' +cd .. + +echo '% check hardlinks' +python arelinked.py repo/.hg/store/data/a.i clone/.hg/store/data/a.i +python arelinked.py repo/.hg/store/data/b.i clone/.hg/store/data/b.i +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-relink.out Fri Jan 08 22:30:07 2010 +0100 @@ -0,0 +1,24 @@ +% create source repository +adding a +adding b +% clone and pull to break links +requesting all changes +adding changesets +adding manifests +adding file changes +added 1 changesets with 2 changes to 2 files +updating to branch default +2 files updated, 0 files merged, 0 files removed, 0 files unresolved +created new head +% relink +relinking .hg/store +collected 4 candidate storage files +not linkable: 00changelog.i +not linkable: 00manifest.i +not linkable: data/b.i +pruned down to 1 probably relinkable files +relink: data/a.i 1/1 files (1e+02%) +relinked 1 files (136 bytes reclaimed) +% check hardlinks +repo/.hg/store/data/a.i == clone/.hg/store/data/a.i +repo/.hg/store/data/b.i != clone/.hg/store/data/b.i