Mercurial > public > mercurial-scm > hg-stable
diff tests/test-subrepo-deep-nested-change.t @ 25601:3ec8351fa6ed
archive: support 'wdir()'
This is a step toward replacing the extdiff internals with archive, in order to
support 'extdiff -S'. Only Mercurial subrepos are supported for now.
If a file is missing from the filesystem, it is silently skipped. Perhaps it
should warn, but it cannot abort when working with extdiff because deleting a
file is a legitimate diff.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 16 Jun 2015 23:06:57 -0400 |
parents | 63a57a2727b6 |
children | dc707fb35550 |
line wrap: on
line diff
--- a/tests/test-subrepo-deep-nested-change.t Tue Jun 16 23:03:36 2015 -0400 +++ b/tests/test-subrepo-deep-nested-change.t Tue Jun 16 23:06:57 2015 -0400 @@ -168,6 +168,41 @@ A foo/bar/abc A sub1/foo R sub1/sub2/test.txt + +Archive wdir() with subrepos + $ hg rm main + $ hg archive -S -r 'wdir()' ../wdir + $ diff -r . ../wdir | grep -v '\.hg$' + Only in ../wdir: .hg_archival.txt + + $ find ../wdir -type f | sort + ../wdir/.hg_archival.txt + ../wdir/.hgsub + ../wdir/.hgsubstate + ../wdir/foo/bar/abc + ../wdir/sub1/.hgsub + ../wdir/sub1/.hgsubstate + ../wdir/sub1/foo + ../wdir/sub1/sub1 + ../wdir/sub1/sub2/folder/test.txt + ../wdir/sub1/sub2/sub2 + +Attempting to archive 'wdir()' with a missing file is handled gracefully + $ rm sub1/sub1 + $ rm -r ../wdir + $ hg archive -v -S -r 'wdir()' ../wdir + $ find ../wdir -type f | sort + ../wdir/.hg_archival.txt + ../wdir/.hgsub + ../wdir/.hgsubstate + ../wdir/foo/bar/abc + ../wdir/sub1/.hgsub + ../wdir/sub1/.hgsubstate + ../wdir/sub1/foo + ../wdir/sub1/sub2/folder/test.txt + ../wdir/sub1/sub2/sub2 + +Continue relative path printing + subrepos $ hg update -Cq $ touch sub1/sub2/folder/bar $ hg addremove sub1/sub2 @@ -469,8 +504,69 @@ ? sub1/sub2/untracked.txt ? sub1/sub2/x.txt $ hg add sub1/sub2 + + $ hg archive -S -r 'wdir()' ../wdir2 + $ diff -r . ../wdir2 | grep -v '\.hg$' + Only in ../wdir2: .hg_archival.txt + Only in .: .hglf + Only in .: foo + Only in ./sub1/sub2: large.bin + Only in ./sub1/sub2: test.txt + Only in ./sub1/sub2: untracked.txt + Only in ./sub1/sub2: x.txt + $ find ../wdir2 -type f | sort + ../wdir2/.hg_archival.txt + ../wdir2/.hgsub + ../wdir2/.hgsubstate + ../wdir2/large.bin + ../wdir2/main + ../wdir2/sub1/.hgsub + ../wdir2/sub1/.hgsubstate + ../wdir2/sub1/sub1 + ../wdir2/sub1/sub2/folder/test.txt + ../wdir2/sub1/sub2/large.dat + ../wdir2/sub1/sub2/sub2 + $ hg status -S -mac -n | sort + .hgsub + .hgsubstate + large.bin + main + sub1/.hgsub + sub1/.hgsubstate + sub1/sub1 + sub1/sub2/folder/test.txt + sub1/sub2/large.dat + sub1/sub2/sub2 + $ hg ci -Sqm 'forget testing' +Test 'wdir()' modified file archiving with largefiles + $ echo 'mod' > main + $ echo 'mod' > large.bin + $ echo 'mod' > sub1/sub2/large.dat + $ hg archive -S -r 'wdir()' ../wdir3 + $ diff -r . ../wdir3 | grep -v '\.hg$' + Only in ../wdir3: .hg_archival.txt + Only in .: .hglf + Only in .: foo + Only in ./sub1/sub2: large.bin + Only in ./sub1/sub2: test.txt + Only in ./sub1/sub2: untracked.txt + Only in ./sub1/sub2: x.txt + $ find ../wdir3 -type f | sort + ../wdir3/.hg_archival.txt + ../wdir3/.hgsub + ../wdir3/.hgsubstate + ../wdir3/large.bin + ../wdir3/main + ../wdir3/sub1/.hgsub + ../wdir3/sub1/.hgsubstate + ../wdir3/sub1/sub1 + ../wdir3/sub1/sub2/folder/test.txt + ../wdir3/sub1/sub2/large.dat + ../wdir3/sub1/sub2/sub2 + $ hg up -Cq + Test issue4330: commit a directory where only normal files have changed $ touch foo/bar/large.dat $ hg add --large foo/bar/large.dat