# HG changeset patch # User Matt Mackall # Date 1420494374 21600 # Node ID d944492445fa0d0b9c164336afab68127080a1f3 # Parent 6a81f88758aadbe60623bb97ac00a81053452e1a# Parent aafeaba22826f27cb976e8f0b5ae028e86fd607e merge with stable diff -r 6a81f88758aa -r d944492445fa hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py Mon Jan 05 11:02:04 2015 +0900 +++ b/hgext/largefiles/overrides.py Mon Jan 05 15:46:14 2015 -0600 @@ -201,12 +201,10 @@ if not opts.get('dry_run'): if not after: util.unlinkpath(repo.wjoin(f), ignoremissing=True) - lfdirstate.remove(f) if opts.get('dry_run'): return result - lfdirstate.write() remove = [lfutil.standin(f) for f in remove] # If this is being called by addremove, let the original addremove # function handle this. @@ -214,6 +212,12 @@ for f in remove: util.unlinkpath(repo.wjoin(f), ignoremissing=True) repo[None].forget(remove) + + for f in remove: + lfutil.synclfdirstate(repo, lfdirstate, lfutil.splitstandin(f), + False) + + lfdirstate.write() finally: wlock.release() diff -r 6a81f88758aa -r d944492445fa mercurial/revset.py --- a/mercurial/revset.py Mon Jan 05 11:02:04 2015 +0900 +++ b/mercurial/revset.py Mon Jan 05 15:46:14 2015 -0600 @@ -254,7 +254,7 @@ x = repo[x].rev() if x == -1 and len(subset) == len(repo): return baseset([-1]) - if len(subset) == len(repo) or x in subset: + if x in subset: return baseset([x]) return baseset() diff -r 6a81f88758aa -r d944492445fa tests/test-largefiles-misc.t --- a/tests/test-largefiles-misc.t Mon Jan 05 11:02:04 2015 +0900 +++ b/tests/test-largefiles-misc.t Mon Jan 05 15:46:14 2015 -0600 @@ -255,6 +255,7 @@ Add a normal file to the subrepo, then test archiving $ echo 'normal file' > subrepo/normal.txt + $ touch large.dat $ mv subrepo/large.txt subrepo/renamed-large.txt $ hg -R subrepo addremove --dry-run removing large.txt @@ -262,11 +263,19 @@ adding renamed-large.txt $ hg status -S ! subrepo/large.txt + ? large.dat ? subrepo/normal.txt ? subrepo/renamed-large.txt $ mv subrepo/renamed-large.txt subrepo/large.txt $ hg -R subrepo add subrepo/normal.txt + $ hg addremove + adding large.dat as a largefile + $ rm large.dat + + $ hg addremove + removing large.dat + Lock in subrepo, otherwise the change isn't archived $ hg ci -S -m "add normal file to top level"