[PATCH 6 of 7 PoC] largefiles: drop mergeupdate standin mocking
Mads Kiilerich
mads at kiilerich.com
Mon Sep 22 04:13:39 CDT 2014
# HG changeset patch
# User Mads Kiilerich <madski at 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.
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)
- at lfutil.standintolargefiles(printmessage=False)
+ at lfutil.standintolargefiles(printmessage=True)
def overrideupdate(orig, ui, repo, *pats, **opts):
return orig(ui, repo, *pats, **opts)
- at lfutil.standintolargefiles(printmessage=False, normallookup=True)
+ at 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
- at lfutil.standintolargefiles(printmessage=False)
+ at 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 at 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
More information about the Mercurial-devel
mailing list