[Bug 5931] New: resumed graft may lose file removal
mercurial-bugs at mercurial-scm.org
mercurial-bugs at mercurial-scm.org
Tue Jun 26 09:30:16 UTC 2018
https://bz.mercurial-scm.org/show_bug.cgi?id=5931
Bug ID: 5931
Summary: resumed graft may lose file removal
Product: Mercurial
Version: default branch
Hardware: PC
OS: Linux
Status: UNCONFIRMED
Severity: bug
Priority: wish
Component: Mercurial
Assignee: bugzilla at mercurial-scm.org
Reporter: yuya at tcha.org
CC: mercurial-devel at mercurial-scm.org
File removal isn't recorded by "hg graft" + "hg resolve" +
"hg graft --continue" sequence, and dirstate gets wrong.
Original bug report:
https://bitbucket.org/tortoisehg/thg/issues/5124/
STR
$ hg init a
$ cd a
$ touch file.txt
$ hg add file.txt
$ hg commit -m add
$ hg rm file.txt
$ hg commit -m remove
$ hg update 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo edited > file.txt
$ hg commit -m edit
created new head
Uninterrupted graft works:
$ echo d | hg --config ui.interactive=1 graft 1
grafting 1:b906d4b3ba63 "remove"
local [local] changed file.txt which other [graft] deleted
use (c)hanged version, (d)elete, or leave (u)nresolved? d
$ hg log -G -T '{rev} {file_dels}\n'
@ 3 file.txt
|
o 2
|
| o 1 file.txt
|/
o 0
Clean up the last grafted revision:
$ hg --config extensions.strip= strip .
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to
$TESTTMP/a/.hg/strip-backup/11adda799c5d-a0425a0e-backup.hg
Try again with graft + resolve (NOT WORK):
$ hg graft -t:fail 1
grafting 1:b906d4b3ba63 "remove"
abort: unresolved conflicts, can't continue
(use 'hg resolve' and 'hg graft --continue')
[255]
$ echo d | hg --config ui.interactive=1 resolve -a
local [local] changed file.txt which other [graft] deleted
use (c)hanged version, (d)elete, or leave (u)nresolved? d
(no more unresolved files)
continue: hg graft --continue
$ hg graft --continue
grafting 1:b906d4b3ba63 "remove"
note: graft of 1:b906d4b3ba63 created no changes to commit
The dirstate is clean:
$ hg stat --all
? file.txt.orig
$ hg debugdirstate
But actually, the file is missing:
$ hg debugrebuilddirstate
$ hg stat --all
! file.txt
? file.txt.orig
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Mercurial-devel
mailing list