Mercurial > hg
changeset 17232:25248e2ebaee stable
largefiles: ensure addlargefiles() doesn't add a standin as a largefile
An easy way to force this (and cause a traceback) prior to the fix for 3507 was
$ touch large
$ hg add --large large
$ hg ci -m "add"
$ hg remove large
$ touch large
$ hg addremove --config largefiles.patterns=**large
This patch also detected (and corrected) a previous test where a standin got
added as a largefile (without a traceback).
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Thu, 19 Jul 2012 23:35:13 -0400 |
parents | 2446b63c89ec |
children | acea82757d8a |
files | hgext/largefiles/overrides.py tests/test-largefiles.t |
diffstat | 2 files changed, 21 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py Thu Jul 19 11:12:05 2012 -0400 +++ b/hgext/largefiles/overrides.py Thu Jul 19 23:35:13 2012 -0400 @@ -81,7 +81,7 @@ ui.warn(_('%s already a largefile\n') % f) continue - if exact or not exists: + if (exact or not exists) and not lfutil.isstandin(f): wfile = repo.wjoin(f) # In case the file was removed previously, but not committed
--- a/tests/test-largefiles.t Thu Jul 19 11:12:05 2012 -0400 +++ b/tests/test-largefiles.t Thu Jul 19 23:35:13 2012 -0400 @@ -383,7 +383,6 @@ $ cd .. $ hg -R a addremove removing sub/large4 - adding a/.hglf/testaddremove.dat as a largefile (glob) adding a/testaddremove.dat as a largefile (glob) removing normal3 adding normaladdremove @@ -489,6 +488,26 @@ C sub2/large6 C sub2/large7 +Test that a standin can't be added as a large file + + $ touch large + $ hg add --large large + $ hg ci -m "add" + Invoking status precommit hook + A large + Invoking status postcommit hook + C large + C normal + C normal3 + C sub/large4 + C sub/normal4 + C sub2/large6 + C sub2/large7 + $ hg remove large + $ touch large + $ hg addremove --config largefiles.patterns=**large --traceback + adding large as a largefile + $ cd ../a Clone a largefiles repo.