Mercurial > public > mercurial-scm > hg
diff tests/test-largefiles.t @ 18064:7e2b9f6a2cd0 stable
largefiles: commit directories that only contain largefiles (issue3548)
If we pass a directory to commit whose only commitable files
are largefiles, the core commit code aborts before finding
the largefiles.
So we do the following:
For directories that only have largefiles as matches,
we explicitly add the largefiles to the matchlist and remove
the directory.
In other cases, we leave the match list unmodified.
author | Levi Bard <levi@unity3d.com> |
---|---|
date | Mon, 10 Dec 2012 14:58:42 +0100 |
parents | afa7e6fa820b |
children | abe9799a86d6 40185df018d7 |
line wrap: on
line diff
--- a/tests/test-largefiles.t Thu Dec 06 13:21:27 2012 -0600 +++ b/tests/test-largefiles.t Mon Dec 10 14:58:42 2012 +0100 @@ -345,6 +345,63 @@ A sub2/large6 A sub2/large7 +Committing directories containing only largefiles. + + $ mkdir -p z/y/x/m + $ touch z/y/x/m/large1 + $ touch z/y/x/large2 + $ hg add --large z/y/x/m/large1 z/y/x/large2 + $ hg commit -m "Subdir with directory only containing largefiles" z + Invoking status precommit hook + M large3 + A large5 + A sub2/large6 + A sub2/large7 + A z/y/x/large2 + A z/y/x/m/large1 + $ hg rollback --quiet + $ touch z/y/x/m/normal + $ hg add z/y/x/m/normal + $ hg commit -m "Subdir with mixed contents" z + Invoking status precommit hook + M large3 + A large5 + A sub2/large6 + A sub2/large7 + A z/y/x/large2 + A z/y/x/m/large1 + A z/y/x/m/normal + $ hg st + M large3 + A large5 + A sub2/large6 + A sub2/large7 + $ hg rollback --quiet + $ hg revert z/y/x/large2 z/y/x/m/large1 + $ rm z/y/x/large2 z/y/x/m/large1 + $ hg commit -m "Subdir with normal contents" z + Invoking status precommit hook + M large3 + A large5 + A sub2/large6 + A sub2/large7 + A z/y/x/m/normal + $ hg st + M large3 + A large5 + A sub2/large6 + A sub2/large7 + $ hg rollback --quiet + $ hg revert --quiet z + $ hg commit -m "Empty subdir" z + abort: z: no match under directory! + [255] + $ rm -rf z + $ hg ci -m "standin" .hglf + abort: file ".hglf" is a largefile standin + (commit the largefile itself instead) + [255] + Test "hg status" with combination of 'file pattern' and 'directory pattern' for largefiles: