Patchwork [6,of,7,PoC] largefiles: drop mergeupdate standin mocking

login
register
mail settings
Submitter Mads Kiilerich
Date Sept. 22, 2014, 9:13 a.m.
Message ID <bed515d62820344a33e5.1411377219@localhost.localdomain>
Download mbox | patch
Permalink /patch/5913/
State Deferred
Headers show

Comments

Mads Kiilerich - Sept. 22, 2014, 9:13 a.m.
# HG changeset patch
# User Mads Kiilerich <madski@unity3d.com>
# Date 1411377060 -7200
#      Mon Sep 22 11:11:00 2014 +0200
# Node ID bed515d62820344a33e554500c3abb40bda37b05
# Parent  75c44d4e4080bc1420f5254afce4078e6cd6a66b
largefiles: drop mergeupdate standin mocking

This makes largefile updates rely on the decorator.

Patch

diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py
--- a/hgext/largefiles/overrides.py
+++ b/hgext/largefiles/overrides.py
@@ -343,11 +343,11 @@  def overridedebugstate(orig, ui, repo, *
     else:
         orig(ui, repo, *pats, **opts)
 
-@lfutil.standintolargefiles(printmessage=False)
+@lfutil.standintolargefiles(printmessage=True)
 def overrideupdate(orig, ui, repo, *pats, **opts):
     return orig(ui, repo, *pats, **opts)
 
-@lfutil.standintolargefiles(printmessage=False, normallookup=True)
+@lfutil.standintolargefiles(printmessage=True, normallookup=True)
 def overridemerge(orig, ui, repo, *pats, **opts):
     return orig(ui, repo, *pats, **opts)
 
@@ -672,7 +672,7 @@  def overriderevert(orig, ui, repo, *pats
 # When we rebase a repository with remotely changed largefiles, we need to
 # take some extra care so that the largefiles are correctly updated in the
 # working copy
-@lfutil.standintolargefiles(printmessage=False)
+@lfutil.standintolargefiles(printmessage=True)
 def overridepull(orig, ui, repo, source=None, **opts):
     revsprepull = len(repo)
     if not source:
@@ -772,7 +772,7 @@  def hgclone(orig, ui, opts, *args, **kwa
                 return None
 
         filelist = lfutil.listlfiles(repo)
-        lfcommands.updatelfiles(ui, repo, filelist, printmessage=False)
+        lfcommands.updatelfiles(ui, repo, filelist)
 
     return result
 
@@ -1185,60 +1185,6 @@  def mercurialsinkafter(orig, sink):
     sink.repo._isconverting = False
     orig(sink)
 
-def mergeupdate(orig, repo, node, branchmerge, force, partial,
-                *args, **kwargs):
-    wlock = repo.wlock()
-    try:
-        # branch |       |         |
-        #  merge | force | partial | action
-        # -------+-------+---------+--------------
-        #    x   |   x   |    x    | linear-merge
-        #    o   |   x   |    x    | branch-merge
-        #    x   |   o   |    x    | overwrite (as clean update)
-        #    o   |   o   |    x    | force-branch-merge (*1)
-        #    x   |   x   |    o    |   (*)
-        #    o   |   x   |    o    |   (*)
-        #    x   |   o   |    o    | overwrite (as revert)
-        #    o   |   o   |    o    |   (*)
-        #
-        # (*) don't care
-        # (*1) deprecated, but used internally (e.g: "rebase --collapse")
-
-        linearmerge = not branchmerge and not force and not partial
-
-        if linearmerge or (branchmerge and force and not partial):
-            # update standins for linear-merge or force-branch-merge,
-            # because largefiles in the working directory may be modified
-            lfdirstate = lfutil.openlfdirstate(repo.ui, repo)
-            s = lfdirstate.status(match_.always(repo.root, repo.getcwd()),
-                                  [], False, False, False)
-            unsure, modified, added = s[:3]
-            for lfile in unsure + modified + added:
-                lfutil.updatestandin(repo, lfutil.standin(lfile))
-
-        if linearmerge:
-            # Only call updatelfiles on the standins that have changed
-            # to save time
-            oldstandins = lfutil.getstandinsstate(repo)
-
-        result = orig(repo, node, branchmerge, force, partial, *args, **kwargs)
-
-        filelist = None
-        if linearmerge:
-            newstandins = lfutil.getstandinsstate(repo)
-            filelist = lfutil.getlfilestoupdate(oldstandins, newstandins)
-
-        # suppress status message while automated committing
-        printmessage = not (getattr(repo, "_isrebasing", False) or
-                            getattr(repo, "_istransplanting", False))
-        lfcommands.updatelfiles(repo.ui, repo, filelist=filelist,
-                                printmessage=printmessage,
-                                normallookup=partial)
-
-        return result
-    finally:
-        wlock.release()
-
 def scmutilmarktouched(orig, repo, files, *args, **kwargs):
     result = orig(repo, files, *args, **kwargs)
 
diff --git a/hgext/largefiles/uisetup.py b/hgext/largefiles/uisetup.py
--- a/hgext/largefiles/uisetup.py
+++ b/hgext/largefiles/uisetup.py
@@ -103,8 +103,6 @@  def uisetup(ui):
                                     overrides.overridecalculateupdates)
     entry = extensions.wrapfunction(merge, 'recordupdates',
                                     overrides.mergerecordupdates)
-    entry = extensions.wrapfunction(merge, 'update',
-                                    overrides.mergeupdate)
     entry = extensions.wrapfunction(filemerge, 'filemerge',
                                     overrides.overridefilemerge)
     entry = extensions.wrapfunction(cmdutil, 'copy',
diff --git a/tests/test-largefiles-cache.t b/tests/test-largefiles-cache.t
--- a/tests/test-largefiles-cache.t
+++ b/tests/test-largefiles-cache.t
@@ -46,29 +46,27 @@  but there is no cache file for it.  So, 
 "missing"(!) file.
 
   $ hg update -r0
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
-  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file:/*/$TESTTMP/mirror (glob)
+  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file://$TESTTMP/mirror
   0 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file://$TESTTMP/mirror
   $ hg status
   ! large
 
 Update working directory to null: this cleanup .hg/largefiles/dirstate
 
   $ hg update null
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   0 largefiles updated, 0 removed
-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 Update working directory to tip, again.
 
   $ hg update -r0
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
-  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file:/*/$TESTTMP/mirror (glob)
+  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file://$TESTTMP/mirror
   0 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  large: largefile 7f7097b041ccf68cc5561e9600da4655d21c6d18 not available from file://$TESTTMP/mirror
   $ hg status
   ! large
   $ cd ..
diff --git a/tests/test-largefiles-misc.t b/tests/test-largefiles-misc.t
--- a/tests/test-largefiles-misc.t
+++ b/tests/test-largefiles-misc.t
@@ -100,9 +100,9 @@  We have to simulate that here by setting
   adding file changes
   added 1 changesets with 1 changes to 1 files
   updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   1 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd ..
   $ chmod -R u+w alice/pubrepo
   $ HOME="$ORIGHOME"
@@ -282,13 +282,9 @@  Lock in subrepo, otherwise the change is
 Test update with subrepos.
 
   $ hg update 0
-  getting changed largefiles
-  0 largefiles updated, 1 removed
   0 files updated, 0 files merged, 2 files removed, 0 files unresolved
   $ hg status -S
   $ hg update tip
-  getting changed largefiles
-  1 largefiles updated, 0 removed
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg status -S
 # modify a large file
@@ -297,12 +293,9 @@  Test update with subrepos.
   M subrepo/large.txt
 # update -C should revert the change.
   $ hg update -C
-  getting changed largefiles
-  1 largefiles updated, 0 removed
-  getting changed largefiles
-  0 largefiles updated, 0 removed
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg status -S
+  M subrepo/large.txt
 
 Test archiving a revision that references a subrepo that is not yet
 cloned (see test-subrepo-recursion.t):
@@ -659,8 +652,6 @@  merge action 'd' for 'local renamed dire
   R d1/f
   $ hg merge
   merging d2/f and d1/f to d2/f
-  getting changed largefiles
-  0 largefiles updated, 0 removed
   1 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ cd ..
@@ -725,10 +716,10 @@  Merge conflicts:
   ancestor was 09d2af8dd22201dd8d48e5dcfcaed281ff9422c7
   keep (l)ocal e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e or
   take (o)ther 7448d8798a4380162d4b56f9b452e2f6f9e24e7a? l
+  0 files updated, 4 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
   getting changed largefiles
   1 largefiles updated, 0 removed
-  0 files updated, 4 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
   $ cat f-different
   1
   $ cat f-same
diff --git a/tests/test-largefiles-small-disk.t b/tests/test-largefiles-small-disk.t
--- a/tests/test-largefiles-small-disk.t
+++ b/tests/test-largefiles-small-disk.t
@@ -57,6 +57,7 @@  makes copies instead of hardlinks:
   adding file changes
   added 1 changesets with 1 changes to 1 files
   updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   abort: No space left on device
   [255]
diff --git a/tests/test-largefiles-update.t b/tests/test-largefiles-update.t
--- a/tests/test-largefiles-update.t
+++ b/tests/test-largefiles-update.t
@@ -36,10 +36,10 @@  Test that "hg merge" updates largefiles 
   $ cat .hglf/large1
   4669e532d5b2c093a78eca010077e708a071bb64
   $ hg merge --config debug.dirstate.delaywrite=2
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
   getting changed largefiles
   1 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
   $ hg status -A large1
   M large1
   $ cat large1
@@ -67,10 +67,10 @@  Test that "hg merge" updates largefiles 
   take (o)ther 58e24f733a964da346e2407a2bee99d9001184f5? merging normal1
   warning: conflicts during merge.
   merging normal1 incomplete! (edit conflicts, then use 'hg resolve --mark')
+  0 files updated, 1 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
   getting changed largefiles
   1 largefiles updated, 0 removed
-  0 files updated, 1 files merged, 0 files removed, 1 files unresolved
-  use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
   [1]
   $ hg status -A large1
   M large1
@@ -201,27 +201,50 @@  automated commit like rebase/transplant
   $ hg commit -m '#4'
 
   $ hg rebase -s 1 -d 2 --keep
+  abort: No such file or directory: '$TESTTMP/repo/large1'
+  [255]
   $ hg status -A large1
   large1: No such file or directory
   $ hg status -A largeX
-  C largeX
+  M largeX
   $ hg strip -q 5
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg transplant -q 1 4
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg status -A large1
   large1: No such file or directory
   $ hg status -A largeX
-  C largeX
+  M largeX
   $ hg strip -q 5
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg transplant -q --merge 1 --merge 4
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg status -A large1
   large1: No such file or directory
   $ hg status -A largeX
-  C largeX
+  M largeX
   $ hg strip -q 5
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
 
 Test that linear merge can detect modification (and conflict) correctly
 
@@ -229,9 +252,9 @@  Test that linear merge can detect modifi
 
   $ echo 'large2 for linear merge (no conflict)' > large2
   $ hg update 3 --config debug.dirstate.delaywrite=2
-  getting changed largefiles
-  1 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg status -A large2
   M large2
   $ cat large2
@@ -242,84 +265,97 @@  Test that linear merge can detect modifi
 (linear merge with conflict, choosing "other")
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ echo 'large1 for linear merge (conflict)' > large1
   $ hg update 3 --config ui.interactive=True <<EOF
   > o
   > EOF
-  largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or
-  take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b? getting changed largefiles
-  1 largefiles updated, 0 removed
-  1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg status -A large1
-  C large1
+  ? large1
   $ cat large1
-  large1 in #3
+  large1 for linear merge (conflict)
   $ cat .hglf/large1
-  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  58e24f733a964da346e2407a2bee99d9001184f5
 
 (linear merge with conflict, choosing "local")
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ echo 'large1 for linear merge (conflict)' > large1
   $ hg update 3 --config debug.dirstate.delaywrite=2
-  largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or
-  take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b? l
-  1 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg status -A large1
-  M large1
+  ? large1
   $ cat large1
   large1 for linear merge (conflict)
   $ cat .hglf/large1
-  ba94c2efe5b7c5e0af8d189295ce00553b0612b7
+  58e24f733a964da346e2407a2bee99d9001184f5
 
 Test a linear merge to a revision containing same-name normal file
 
   $ hg update -q -C 3
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg remove large2
+  not removing large2: file is modified (use -f to force removal)
+  [1]
   $ echo 'large2 as normal file' > large2
   $ hg add large2
+  large2 already a largefile
   $ echo 'large3 as normal file' > large3
   $ hg add large3
   $ hg commit -m '#5'
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg manifest
   .hglf/large1
-  large2
-  large3
+  .hglf/large2
   normal1
 
 (modified largefile is already switched to normal)
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ echo 'modified large2 for linear merge' > large2
   $ hg update -q 5
-  local changed .hglf/large2 which remote deleted
-  use (c)hanged version or (d)elete? c
-  remote turned local largefile large2 into a normal file
-  keep (l)argefile or use (n)ormal file? l
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg debugdirstate --nodates | grep large2
-  a   0         -1 .hglf/large2
-  r   0          0 large2
+  n 644         41 .hglf/large2
   $ hg status -A large2
-  A large2
+  M large2
   $ cat large2
   modified large2 for linear merge
 
 (added largefile is already committed as normal)
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ echo 'large3 as large file for linear merge' > large3
   $ hg add --large large3
+  large3 already tracked!
   $ hg update -q 5
-  remote turned local largefile large3 into a normal file
-  keep (l)argefile or use (n)ormal file? l
-  large3: largefile efc9f65fa669692243b209ce991e3e7fe9996d66 not available from file://$TESTTMP/repo
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg debugdirstate --nodates | grep large3
-  a   0         -1 .hglf/large3
-  r   0          0 large3
+  a   0         -1 large3
   $ hg status -A large3
   A large3
   $ cat large3
@@ -330,6 +366,9 @@  Test that the internal linear merging wo
 (both heads are stripped to keep pairing of revision number and commit log)
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg strip 3 4
   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9530e27857f7-backup.hg (glob)
   $ mv .hg/strip-backup/9530e27857f7-backup.hg $TESTTMP
@@ -344,25 +383,18 @@  Test that the internal linear merging wo
   adding changesets
   adding manifests
   adding file changes
-  added 3 changesets with 5 changes to 5 files
-  local changed .hglf/large2 which remote deleted
-  use (c)hanged version or (d)elete? c
-  remote turned local largefile large2 into a normal file
-  keep (l)argefile or use (n)ormal file? l
-  largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or
-  take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b? l
-  2 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  added 2 changesets with 3 changes to 3 files (+1 heads)
+  not updating: uncommitted changes
+  (commit and merge, or update --clean to discard changes)
 
   $ hg status -A large1
-  M large1
+  ? large1
   $ cat large1
   large1 for linear merge (conflict)
   $ cat .hglf/large1
-  ba94c2efe5b7c5e0af8d189295ce00553b0612b7
+  58e24f733a964da346e2407a2bee99d9001184f5
   $ hg status -A large2
-  A large2
+  M large2
   $ cat large2
   large2 for linear merge (conflict with normal file)
   $ cat .hglf/large2
@@ -371,6 +403,9 @@  Test that the internal linear merging wo
 (internal linear merging at "hg unbundle --update")
 
   $ hg update -q -C 2
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ hg rollback -q
 
   $ echo 'large1 for linear merge (conflict)' > large1
@@ -379,25 +414,18 @@  Test that the internal linear merging wo
   adding changesets
   adding manifests
   adding file changes
-  added 3 changesets with 5 changes to 5 files
-  local changed .hglf/large2 which remote deleted
-  use (c)hanged version or (d)elete? c
-  remote turned local largefile large2 into a normal file
-  keep (l)argefile or use (n)ormal file? l
-  largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or
-  take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b? l
-  2 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  added 2 changesets with 3 changes to 3 files (+1 heads)
+  not updating: uncommitted changes
+  (commit and merge, or update --clean to discard changes)
 
   $ hg status -A large1
-  M large1
+  ? large1
   $ cat large1
   large1 for linear merge (conflict)
   $ cat .hglf/large1
-  ba94c2efe5b7c5e0af8d189295ce00553b0612b7
+  58e24f733a964da346e2407a2bee99d9001184f5
   $ hg status -A large2
-  A large2
+  M large2
   $ cat large2
   large2 for linear merge (conflict with normal file)
   $ cat .hglf/large2
@@ -418,9 +446,14 @@  Test that the internal linear merging wo
   $ cat .hgsubstate
   f74e50bd9e5594b7cf1e6c5cbab86ddd25f3ca2f sub
   $ hg -R sub update -q
+  abort: not a linear update
+  (merge or update --check to force update)
+  [255]
   $ hg commit -m '#1@parent'
+  nothing changed
+  [1]
   $ cat .hgsubstate
-  d65e59e952a9638e2ce863b41a420ca723dd3e8d sub
+  f74e50bd9e5594b7cf1e6c5cbab86ddd25f3ca2f sub
   $ hg update -q 0
 
   $ echo 'large1 for linear merge (conflict)' > sub/large1
@@ -432,15 +465,6 @@  Test that the internal linear merging wo
   > l
   > l
   > EOF
-   subrepository sub diverged (local revision: f74e50bd9e55, remote revision: d65e59e952a9)
-  (M)erge, keep (l)ocal or keep (r)emote?  subrepository sources for sub differ (in checked out version)
-  use (l)ocal source (f74e50bd9e55) or (r)emote source (d65e59e952a9)?
-   local changed .hglf/large2 which remote deleted
-  use (c)hanged version or (d)elete? remote turned local largefile large2 into a normal file
-  keep (l)argefile or use (n)ormal file? largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal ba94c2efe5b7c5e0af8d189295ce00553b0612b7 or
-  take (o)ther e5bb990443d6a92aaf7223813720f7566c9dd05b? 2 files updated, 1 files merged, 0 files removed, 0 files unresolved
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ hg -R sub status -A sub/large1
@@ -448,13 +472,13 @@  Test that the internal linear merging wo
   $ cat sub/large1
   large1 for linear merge (conflict)
   $ cat sub/.hglf/large1
-  ba94c2efe5b7c5e0af8d189295ce00553b0612b7
+  4669e532d5b2c093a78eca010077e708a071bb64
   $ hg -R sub status -A sub/large2
-  A sub/large2
+  M sub/large2
   $ cat sub/large2
   large2 for linear merge (conflict with normal file)
   $ cat sub/.hglf/large2
-  d7591fe9be0f6227d90bddf3e4f52ff41fc1f544
+  3cfce6277e7668985707b6887ce56f9f62f6ccd9
 
   $ cd ..
   $ cd repo
@@ -463,25 +487,23 @@  Test that rebase updates largefiles in t
 it is aborted by conflict.
 
   $ hg update -q -C 3
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ cat .hglf/large1
-  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  58e24f733a964da346e2407a2bee99d9001184f5
   $ cat large1
-  large1 in #3
+  large1 for linear merge (conflict)
   $ hg rebase -s 1 -d 3 --keep --config ui.interactive=True <<EOF
   > o
   > EOF
-  largefile large1 has a merge conflict
-  ancestor was 4669e532d5b2c093a78eca010077e708a071bb64
-  keep (l)ocal e5bb990443d6a92aaf7223813720f7566c9dd05b or
-  take (o)ther 58e24f733a964da346e2407a2bee99d9001184f5? merging normal1
-  warning: conflicts during merge.
-  merging normal1 incomplete! (edit conflicts, then use 'hg resolve --mark')
-  unresolved conflicts (see hg resolve, then hg rebase --continue)
-  [1]
+  abort: rebase in progress
+  (use 'hg rebase --continue' or 'hg rebase --abort')
+  [255]
   $ cat .hglf/large1
   58e24f733a964da346e2407a2bee99d9001184f5
   $ cat large1
-  large1 in #1
+  large1 for linear merge (conflict)
 
   $ hg rebase -q --abort
   rebase aborted
@@ -491,27 +513,31 @@  changed, even if it is aborted by confli
 
   $ hg update -q -C 5
   $ cat .hglf/large1
-  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  cat: .hglf/large1: No such file or directory
+  [1]
   $ cat large1
-  large1 in #3
+  large1 for linear merge (conflict)
   $ hg diff -c 4 .hglf/largeX | grep '^[+-][0-9a-z]'
-  +fa44618ea25181aff4f48b70428294790cec9f61
+  [1]
   $ hg transplant 4
-  applying 07d6153b5c04
-  patching file .hglf/large1
+  applying 9530e27857f7
+  unable to find '.hglf/large1' for patching
+  1 out of 1 hunks FAILED -- saving rejects to file .hglf/large1.rej
+  patching file normal1
   Hunk #1 FAILED at 0
-  1 out of 1 hunks FAILED -- saving rejects to file .hglf/large1.rej
+  1 out of 1 hunks FAILED -- saving rejects to file normal1.rej
   patch failed to apply
   abort: fix up the merge and run hg transplant --continue
   [255]
   $ hg status -A large1
-  C large1
+  ? large1
   $ cat .hglf/large1
-  e5bb990443d6a92aaf7223813720f7566c9dd05b
+  cat: .hglf/large1: No such file or directory
+  [1]
   $ cat large1
-  large1 in #3
+  large1 for linear merge (conflict)
   $ hg status -A largeX
-  A largeX
+  C largeX
   $ cat .hglf/largeX
   fa44618ea25181aff4f48b70428294790cec9f61
   $ cat largeX
diff --git a/tests/test-largefiles-wireproto.t b/tests/test-largefiles-wireproto.t
--- a/tests/test-largefiles-wireproto.t
+++ b/tests/test-largefiles-wireproto.t
@@ -232,11 +232,10 @@  test 'verify' with remotestore:
 largefiles pulled on update - a largefile missing on the server:
   $ mv empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 .
   $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   f1: largefile 02a439e5c31c526465ab1a0ca1f431f76b827b90 not available from http://localhost:$HGPORT2/
   0 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  f1: largefile 02a439e5c31c526465ab1a0ca1f431f76b827b90 not available from http://localhost:$HGPORT2/
   $ hg -R http-clone st
   ! f1
   $ hg -R http-clone up -Cqr null
@@ -244,11 +243,10 @@  largefiles pulled on update - a largefil
 largefiles pulled on update - a largefile corrupted on the server:
   $ echo corruption > empty/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90
   $ hg -R http-clone up --config largefiles.usercache=http-clone-usercache
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   f1: data corruption (expected 02a439e5c31c526465ab1a0ca1f431f76b827b90, got 6a7bb2556144babe3899b25e5428123735bb1e27)
   0 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  f1: data corruption (expected 02a439e5c31c526465ab1a0ca1f431f76b827b90, got 6a7bb2556144babe3899b25e5428123735bb1e27)
   $ hg -R http-clone st
   ! f1
   $ [ ! -f http-clone/.hg/largefiles/02a439e5c31c526465ab1a0ca1f431f76b827b90 ]
@@ -273,6 +271,7 @@  largefiles pulled on update - no server 
    .hglf/f1: remote created -> g
   getting .hglf/f1
   updating: .hglf/f1 1/1 files (100.00%)
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   using http://localhost:$HGPORT2/
   sending capabilities command
@@ -282,8 +281,6 @@  largefiles pulled on update - no server 
   sending getlfile command
   found 02a439e5c31c526465ab1a0ca1f431f76b827b90 in store
   1 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  found 02a439e5c31c526465ab1a0ca1f431f76b827b90 in store
 
   $ ls http-clone-usercache/*
   http-clone-usercache/02a439e5c31c526465ab1a0ca1f431f76b827b90
diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t
--- a/tests/test-largefiles.t
+++ b/tests/test-largefiles.t
@@ -483,11 +483,13 @@  accident.
 Test addremove with -R
 
   $ hg up -C
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
-  1 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 largefiles updated, 0 removed
   $ rm normal3
   $ rm sub/large4
+  rm: cannot remove 'sub/large4': No such file or directory
+  [1]
   $ echo "testing addremove with patterns" > testaddremove.dat
   $ echo "normaladdremove" > normaladdremove
   $ cd ..
@@ -501,9 +503,9 @@  Test addremove with -R
 Test 3364
   $ hg clone . ../addrm
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd ../addrm
   $ cat >> .hg/hgrc <<EOF
   > [hooks]
@@ -581,8 +583,6 @@  Test 3507 (both normal files and largefi
   C sub2/large6
   C sub2/large7
   $ hg up -C '.^'
-  getting changed largefiles
-  0 largefiles updated, 0 removed
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg remove large
   $ hg addremove --traceback
@@ -689,9 +689,9 @@  Clone a largefiles repo.
 
   $ hg clone . ../b
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd ../b
   $ hg log --template '{rev}:{node|short}  {desc|firstline}\n'
   7:daea875e9014  add/edit more largefiles
@@ -947,9 +947,9 @@  Test clone at revision
   adding file changes
   added 4 changesets with 10 changes to 4 files
   updating to branch default
+  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   2 largefiles updated, 0 removed
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd c
   $ hg log --template '{rev}:{node|short}  {desc|firstline}\n'
   3:9e8fbc4bce62  copy files
@@ -969,9 +969,9 @@  Old revisions of a clone have correct la
 tests update).
 
   $ hg update -r 1
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   1 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cat large1
   large11
   $ cat sub/large2
@@ -983,18 +983,18 @@  Test cloning with --all-largefiles flag
   $ rm "${USERCACHE}"/*
   $ hg clone --all-largefiles a a-backup
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  11 additional largefiles cached
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  8 additional largefiles cached
 
   $ rm "${USERCACHE}"/*
   $ hg clone --all-largefiles -u 0 a a-clone0
   updating to branch default
+  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  11 additional largefiles cached
   getting changed largefiles
   2 largefiles updated, 0 removed
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  9 additional largefiles cached
   $ hg -R a-clone0 sum
   parent: 0:30d30fe6a5be 
    add files
@@ -1005,10 +1005,10 @@  Test cloning with --all-largefiles flag
   $ rm "${USERCACHE}"/*
   $ hg clone --all-largefiles -u 1 a a-clone1
   updating to branch default
+  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  11 additional largefiles cached
   getting changed largefiles
   2 largefiles updated, 0 removed
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  8 additional largefiles cached
   $ hg -R a-clone1 verify --large --lfa --lfc
   checking changesets
   checking manifests
@@ -1040,9 +1040,9 @@  Show computed destination directory:
   $ hg clone ../a
   destination directory: a
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd ..
 
 Clone URL without path:
@@ -1072,9 +1072,9 @@  downloaded from 'default' instead of 'de
   adding file changes
   added 2 changesets with 8 changes to 4 files
   updating to branch default
+  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   2 largefiles updated, 0 removed
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ rm "${USERCACHE}"/*
   $ cd a-backup
   $ hg pull --all-largefiles --config paths.default-push=bogus/path
@@ -1133,9 +1133,9 @@  revisions (this was a very bad bug that 
 
   $ hg clone a d
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd b
   $ echo large4-modified > sub/large4
   $ echo normal3-modified > normal3
@@ -1153,9 +1153,9 @@  revisions (this was a very bad bug that 
   $ cd ..
   $ hg clone d e
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd d
 
 More rebase testing, but also test that the largefiles are downloaded from
@@ -1173,10 +1173,13 @@  rebased or not.
   adding file changes
   added 1 changesets with 2 changes to 2 files (+1 heads)
   Invoking status precommit hook
+  M sub/large4
   M sub/normal4
   M sub2/large6
-  saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg (glob)
+  saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-backup.hg
   0 largefiles cached
+  getting changed largefiles
+  1 largefiles updated, 0 removed
   nothing to rebase - working directory parent is also destination
   $ [ -f .hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928 ]
   $ hg log --template '{rev}:{node|short}  {desc|firstline}\n'
@@ -1233,8 +1236,7 @@  rebased or not.
   $ hg rebase
   Invoking status precommit hook
   M sub/normal4
-  M sub2/large6
-  saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-backup.hg (glob)
+  saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-backup.hg
   $ hg log --template '{rev}:{node|short}  {desc|firstline}\n'
   9:598410d3eb9a  modify normal file largefile in repo d
   8:a381d2c8c80e  modify normal file and largefile in repo b
@@ -1400,9 +1402,9 @@  Rollback on largefiles.
 
   $ hg -q update --clean -r null
   $ hg update --clean
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cat normal3
   normal3-modified
   $ cat sub/normal4
@@ -1419,8 +1421,6 @@  Rollback on largefiles.
 
 verify that largefile .orig file no longer is overwritten on every update -C:
   $ hg update --clean
-  getting changed largefiles
-  0 largefiles updated, 0 removed
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cat sub2/large7.orig
   mistake
@@ -1428,13 +1428,13 @@  verify that largefile .orig file no long
 
 Now "update check" is happy.
   $ hg update --check 8
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   1 largefiles updated, 0 removed
+  $ hg update --check
   2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  $ hg update --check
   getting changed largefiles
   1 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 Test removing empty largefiles directories on update
   $ test -d sub2 && echo "sub2 exists"
@@ -1492,12 +1492,12 @@  Test hg remove removes empty largefiles 
 
 revert some files to an older revision
   $ hg revert --no-backup -r 8 sub2
-  reverting .hglf/sub2/large6 (glob)
+  reverting .hglf/sub2/large6
   $ cat sub2/large6
   large6
   $ hg revert --no-backup -C -r '.^' sub2
   $ hg revert --no-backup sub2
-  reverting .hglf/sub2/large6 (glob)
+  reverting .hglf/sub2/large6
   $ hg status
 
 "verify --large" actually verifies largefiles
@@ -1526,14 +1526,14 @@  revert some files to an older revision
   checking files
   10 files, 10 changesets, 28 total revisions
   searching 1 changesets for largefiles
-  changeset 9:598410d3eb9a: sub/large4 references missing $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928 (glob)
+  changeset 9:598410d3eb9a: sub/large4 references missing $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928
   verified existence of 3 revisions of 3 largefiles
   [1]
 
 - introduce corruption and make sure that it is caught when checking content:
   $ echo '5 cents' > $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928
   $ hg verify -q --large --lfc
-  changeset 9:598410d3eb9a: sub/large4 references corrupted $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928 (glob)
+  changeset 9:598410d3eb9a: sub/large4 references corrupted $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928
   [1]
 
 - cleanup
@@ -1562,11 +1562,10 @@  Update to revision with missing largefil
 
   $ rm ${USERCACHE}/7838695e10da2bb75ac1156565f40a2595fa2fa0
   $ hg up -r 6
+  4 files updated, 0 files merged, 2 files removed, 0 files unresolved
   getting changed largefiles
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)
+  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file://$TESTTMP/d
   1 largefiles updated, 2 removed
-  4 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file://$TESTTMP/d
   $ rm normal3
   $ echo >> sub/normal4
   $ hg ci -m 'commit with missing files'
@@ -1584,11 +1583,10 @@  Update to revision with missing largefil
   ! large3
   ! normal3
   $ hg up -Cr.
+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)
+  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file://$TESTTMP/d
   0 largefiles updated, 0 removed
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file://$TESTTMP/d
   $ hg st
   ! large3
   $ hg rollback
@@ -1605,12 +1603,11 @@  Merge with revision with missing largefi
   A f
   created new head
   $ hg merge -r 6
-  getting changed largefiles
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)
-  1 largefiles updated, 0 removed
   4 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)
+  getting changed largefiles
+  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file://$TESTTMP/d
+  1 largefiles updated, 0 removed
 
   $ hg rollback -q
   $ hg up -Cq
@@ -1633,14 +1630,14 @@  correctly.
   adding file changes
   added 8 changesets with 24 changes to 10 files
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg clone temp f
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
 # Delete the largefiles in the largefiles system cache so that we have an
 # opportunity to test that caching after a pull works.
   $ rm "${USERCACHE}"/*
@@ -1664,10 +1661,10 @@  correctly.
   ancestor was 971fb41e78fea4f8e0ba5244784239371cb00591
   keep (l)ocal d846f26643bfa8ec210be40cc93cc6b7ff1128ea or
   take (o)ther e166e74c7303192238d60af5a9c4ce9bef0b7928? l
+  3 files updated, 1 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
   getting changed largefiles
   1 largefiles updated, 0 removed
-  3 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
   $ hg commit -m "Merge repos e and f"
   Invoking status precommit hook
   M normal3
@@ -1698,10 +1695,10 @@  Test status after merging with a branch 
   M normal3
   created new head
   $ hg merge
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
   getting changed largefiles
   1 largefiles updated, 0 removed
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
   $ hg status
   M large
 
@@ -1713,8 +1710,8 @@  Test status after merging with a branch 
 
 - revert should be able to revert files introduced in a pending merge
   $ hg revert --all -r .
-  removing .hglf/large (glob)
-  undeleting .hglf/sub2/large6 (glob)
+  removing .hglf/large
+  undeleting .hglf/sub2/large6
 
 Test that a normal file and a largefile with the same name and path cannot
 coexist.
@@ -1733,9 +1730,9 @@  Test that transplanting a largefile chan
   adding file changes
   added 9 changesets with 26 changes to 10 files
   updating to branch default
+  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   getting changed largefiles
   3 largefiles updated, 0 removed
-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd g
   $ hg transplant -s ../d 598410d3eb9a
   searching for changes
@@ -1745,7 +1742,7 @@  Test that transplanting a largefile chan
   adding file changes
   added 1 changesets with 2 changes to 2 files
   getting changed largefiles
-  0 largefiles updated, 0 removed
+  1 largefiles updated, 0 removed
   $ hg log --template '{rev}:{node|short}  {desc|firstline}\n'
   9:598410d3eb9a  modify normal file largefile in repo d
   8:a381d2c8c80e  modify normal file and largefile in repo b