https://bz.mercurial-scm.org/show_bug.cgi?id=6454

            Bug ID: 6454
           Summary: Rebase w/ dirty wdir + in-memory merge can lead to
                    data loss
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: rebase
          Assignee: bugzi...@mercurial-scm.org
          Reporter: h...@pewpew.net
                CC: mercurial-devel@mercurial-scm.org
    Python Version: ---

With in-memory merge turned on, and a dirty working directory, attempt to
rebase a commit that does not involve the wdir. This doesn't require a clean
wdir due to in-memory merge. However, if there's merge conflicts, you can get a
message like:

```
≻ hg rebase -r 42917 -d dest
rebasing 42917 26ec666f "callcatch: log error.Abort()s to ui.log"
merging mercurial/dispatch.py
merging mercurial/scmutil.py
hit merge conflicts; rebasing that commit again in the working copy
abort: uncommitted changes
```

At this point, rebase has already serialized the "Rebase in progress" state. If
I `hg diff`, I see the changes I had before I ran `hg rebase`. If I run `hg
commit`, it refuses (rebase in progress). If I run `hg rebase --abort`, it
doesn't realize that it must *not* clean the wdir, so it happily does so,
losing my data.

Luckily I didn't care about those changes, *and* I'd just run `hg diff` if I
had.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to