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))
|
||||
|
||||
# deleting files that should be missing
|
||||
todelete = [f.path for f in snapmanifest.deleted]
|
||||
if todelete:
|
||||
ui.note(_("will delete %s\n") % ",".join(todelete))
|
||||
m = scmutil.match(repo[None], todelete)
|
||||
cmdutil.remove(ui, repo, m, "", after=False, force=False)
|
||||
for file in snapmanifest.deleted:
|
||||
try:
|
||||
ui.note(_("will delete %s\n") % file.path)
|
||||
util.unlink(repo.wjoin(file.path))
|
||||
except OSError:
|
||||
ui.warn(_("%s cannot be removed\n") % file.path)
|
||||
# populating the untracked files
|
||||
for file in snapmanifest.unknown:
|
||||
checkaddfile(repo.svfs.lfslocalblobstore, file, repo.wvfs, force)
|
||||
|
@ -179,7 +179,7 @@
|
||||
$ hg status --verbose
|
||||
M bar/file
|
||||
M mergefile
|
||||
R foofile
|
||||
! foofile
|
||||
? bar/untracked
|
||||
? mergefile.orig
|
||||
? untrackedfile
|
||||
@ -202,7 +202,7 @@
|
||||
.hg/merge/state
|
||||
.hg/merge/state2
|
||||
$ hg debugsnapshot --clean
|
||||
snapshot e203bc3b0e5140c52ec5ba01fcb7071af5ea40de created
|
||||
snapshot ccdff83036b6b05c657a1eebff7dc523b865f6ce created
|
||||
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ hg status --verbose
|
||||
$ test -d .hg/merge
|
||||
@ -215,6 +215,7 @@
|
||||
# Finally, resolve the conflict
|
||||
$ hg resolve --mark mergefile
|
||||
(no more unresolved files)
|
||||
$ hg remove foofile
|
||||
$ hg status --verbose
|
||||
M bar/file
|
||||
M mergefile
|
||||
|
@ -87,7 +87,6 @@
|
||||
|
||||
$ hg debugcheckoutsnapshotmanifest --verbose "$OID"
|
||||
will delete existingfile
|
||||
removing existingfile
|
||||
will add untrackedfile
|
||||
snapshot checkout complete
|
||||
|
||||
@ -139,7 +138,7 @@
|
||||
$ hg update
|
||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ hg status
|
||||
R existingfile
|
||||
! existingfile
|
||||
? untrackedfile
|
||||
$ hg debugcheckoutsnapshotmanifest --verbose "$MERGEOID"
|
||||
will add new.orig
|
||||
@ -150,7 +149,7 @@
|
||||
will add rebasestate
|
||||
snapshot checkout complete
|
||||
$ hg status --verbose
|
||||
R existingfile
|
||||
! existingfile
|
||||
? new.orig
|
||||
? untrackedfile
|
||||
# The repository is in an unfinished *rebase* state.
|
||||
|
Loading…
Reference in New Issue
Block a user