mirror of
https://github.com/facebook/sapling.git
synced 2024-10-11 01:07:15 +03:00
snapshot: bugfix - make files missing instead of removed on checkout
Summary: Due to a bug the missing files from the snapshot manifest were marked as removed after checkout. Reviewed By: markbt Differential Revision: D16831796 fbshipit-source-id: 200ccf34b16392a73d38294f1fcb43bfa9a94690
This commit is contained in:
parent
8cebfd9c65
commit
2401518de9
@ -366,11 +366,12 @@ def checkouttosnapshotmanifest(ui, repo, snapmanifest, force=True):
|
|||||||
vfs.write(file.path, store.read(file.oid))
|
vfs.write(file.path, store.read(file.oid))
|
||||||
|
|
||||||
# deleting files that should be missing
|
# deleting files that should be missing
|
||||||
todelete = [f.path for f in snapmanifest.deleted]
|
for file in snapmanifest.deleted:
|
||||||
if todelete:
|
try:
|
||||||
ui.note(_("will delete %s\n") % ",".join(todelete))
|
ui.note(_("will delete %s\n") % file.path)
|
||||||
m = scmutil.match(repo[None], todelete)
|
util.unlink(repo.wjoin(file.path))
|
||||||
cmdutil.remove(ui, repo, m, "", after=False, force=False)
|
except OSError:
|
||||||
|
ui.warn(_("%s cannot be removed\n") % file.path)
|
||||||
# populating the untracked files
|
# populating the untracked files
|
||||||
for file in snapmanifest.unknown:
|
for file in snapmanifest.unknown:
|
||||||
checkaddfile(repo.svfs.lfslocalblobstore, file, repo.wvfs, force)
|
checkaddfile(repo.svfs.lfslocalblobstore, file, repo.wvfs, force)
|
||||||
|
@ -179,7 +179,7 @@
|
|||||||
$ hg status --verbose
|
$ hg status --verbose
|
||||||
M bar/file
|
M bar/file
|
||||||
M mergefile
|
M mergefile
|
||||||
R foofile
|
! foofile
|
||||||
? bar/untracked
|
? bar/untracked
|
||||||
? mergefile.orig
|
? mergefile.orig
|
||||||
? untrackedfile
|
? untrackedfile
|
||||||
@ -202,7 +202,7 @@
|
|||||||
.hg/merge/state
|
.hg/merge/state
|
||||||
.hg/merge/state2
|
.hg/merge/state2
|
||||||
$ hg debugsnapshot --clean
|
$ hg debugsnapshot --clean
|
||||||
snapshot e203bc3b0e5140c52ec5ba01fcb7071af5ea40de created
|
snapshot ccdff83036b6b05c657a1eebff7dc523b865f6ce created
|
||||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||||
$ hg status --verbose
|
$ hg status --verbose
|
||||||
$ test -d .hg/merge
|
$ test -d .hg/merge
|
||||||
@ -215,6 +215,7 @@
|
|||||||
# Finally, resolve the conflict
|
# Finally, resolve the conflict
|
||||||
$ hg resolve --mark mergefile
|
$ hg resolve --mark mergefile
|
||||||
(no more unresolved files)
|
(no more unresolved files)
|
||||||
|
$ hg remove foofile
|
||||||
$ hg status --verbose
|
$ hg status --verbose
|
||||||
M bar/file
|
M bar/file
|
||||||
M mergefile
|
M mergefile
|
||||||
|
@ -87,7 +87,6 @@
|
|||||||
|
|
||||||
$ hg debugcheckoutsnapshotmanifest --verbose "$OID"
|
$ hg debugcheckoutsnapshotmanifest --verbose "$OID"
|
||||||
will delete existingfile
|
will delete existingfile
|
||||||
removing existingfile
|
|
||||||
will add untrackedfile
|
will add untrackedfile
|
||||||
snapshot checkout complete
|
snapshot checkout complete
|
||||||
|
|
||||||
@ -139,7 +138,7 @@
|
|||||||
$ hg update
|
$ hg update
|
||||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||||
$ hg status
|
$ hg status
|
||||||
R existingfile
|
! existingfile
|
||||||
? untrackedfile
|
? untrackedfile
|
||||||
$ hg debugcheckoutsnapshotmanifest --verbose "$MERGEOID"
|
$ hg debugcheckoutsnapshotmanifest --verbose "$MERGEOID"
|
||||||
will add new.orig
|
will add new.orig
|
||||||
@ -150,7 +149,7 @@
|
|||||||
will add rebasestate
|
will add rebasestate
|
||||||
snapshot checkout complete
|
snapshot checkout complete
|
||||||
$ hg status --verbose
|
$ hg status --verbose
|
||||||
R existingfile
|
! existingfile
|
||||||
? new.orig
|
? new.orig
|
||||||
? untrackedfile
|
? untrackedfile
|
||||||
# The repository is in an unfinished *rebase* state.
|
# The repository is in an unfinished *rebase* state.
|
||||||
|
Loading…
Reference in New Issue
Block a user