Mercurial > hg > mercurial-source
changeset 23781:bb3ee61cfaa1
largefiles: don't print files as both large and normal in addremove dryruns
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Wed, 31 Dec 2014 18:39:41 -0500 |
parents | 6b1428e55728 |
children | 50f0096a7346 |
files | hgext/largefiles/overrides.py tests/test-largefiles-misc.t |
diffstat | 2 files changed, 8 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -34,10 +34,14 @@ m.matchfn = lambda f: lfile(f) and origmatchfn(f) return m -def composenormalfilematcher(match, manifest): +def composenormalfilematcher(match, manifest, exclude=None): + excluded = set() + if exclude is not None: + excluded.update(exclude) + m = copy.copy(match) notlfile = lambda f: not (lfutil.isstandin(f) or lfutil.standin(f) in - manifest) + manifest or f in excluded) m._files = filter(notlfile, m._files) m._fmap = set(m._files) m._always = False @@ -1132,11 +1136,11 @@ removelargefiles(repo.ui, repo, True, m, **opts) # Call into the normal add code, and any files that *should* be added as # largefiles will be - addlargefiles(repo.ui, repo, True, matcher, **opts) + added, bad = addlargefiles(repo.ui, repo, True, matcher, **opts) # Now that we've handled largefiles, hand off to the original addremove # function to take care of the rest. Make sure it doesn't do anything with # largefiles by passing a matcher that will ignore them. - matcher = composenormalfilematcher(matcher, repo[None].manifest()) + matcher = composenormalfilematcher(matcher, repo[None].manifest(), added) return orig(repo, matcher, prefix, opts, dry_run, similarity) # Calling purge with --all will cause the largefiles to be deleted.
--- a/tests/test-largefiles-misc.t +++ b/tests/test-largefiles-misc.t @@ -262,7 +262,6 @@ removing subrepo/large.txt adding subrepo/normal.txt adding subrepo/renamed-large.txt - adding large.dat $ hg status -S ! subrepo/large.txt ? large.dat @@ -295,7 +294,6 @@ removing subrepo/large.txt adding subrepo/normal.txt adding subrepo/renamed-large.txt - adding large.dat $ cd statusmatch $ mv subrepo/renamed-large.txt subrepo/large.txt