[Bug 6093] New: pick can great bogus marker to the pick "destination"

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Tue Feb 26 12:23:03 EST 2019


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

            Bug ID: 6093
           Summary: pick can great bogus marker to the pick "destination"
           Product: Mercurial
           Version: unspecified
          Hardware: PC
                OS: Mac OS
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: evolution
          Assignee: bugzilla at mercurial-scm.org
          Reporter: jorendorff at mozilla.com
                CC: mercurial-devel at mercurial-scm.org,
                    pierre-yves.david at ens-lyon.org

Let's call this changeset ORIGINAL:

```
$ hg log --graph --hidden -r 0262c62d81e5
x  changeset:   528466:0262c62d81e5
~  parent:      528452:47e514e01c5c
   user:        Jason Orendorff <jorendorff at mozilla.com>
   date:        Thu Feb 21 09:51:45 2019 -0600
   obsolete:    rewritten using prune as 528566:e7fd0ec90ddf
   obsolete:    rewritten using pick as 528814:b3cce8cc8cf8
   summary:     Bug 1529607 - Part 2: Rename ParseNodeVisitor::cx to cx_.
r?khyperia
```

And this one DESTINATION:

```
$ hg log --graph -r b3cce8cc8cf8
*  changeset:   528814:b3cce8cc8cf8
~  user:        Jason Orendorff <jorendorff at mozilla.com>
   date:        Fri Feb 15 14:01:15 2019 -0600
   instability: content-divergent
   summary:     Bug 1528409 - Part 2: Rename ParseNodeArity to
ParseNode::TypeCode. r?khyperia

```

These patches are unrelated: DESTINATION should *not* be marked as the
successor of ORIGINAL. That's the bug.

Here's what happened:

- I tried to rebase ORIGINAL onto DESTINATION using `pick -r 0262c62d81e5`.
There were conflicts.

- I fixed the conflicts manually, then did `resolve -m` and `pick -c`.

- After resolving, there were no changes, so `pick -c` did not create a rebased
changeset.

- A few minutes later, I realized that (of course) someone else had already
rebased and landed ORIGINAL, and a bunch of other related patches, without
obsmarkers. My local hg didn't know that the changeset I just picked had
already been rebased and was obsolete.

- So I marked the whole range of ORIGINAL patches as having landed, using
`prune -r ORIGINAL_RANGE --succ LANDED_RANGE --biject`.

The comedy of errors is my fault; the only bug in hg is that `pick` erroneously
marked DESTINATION as the successor of ORIGINAL.

marmoute helped me sort through the wreckage on IRC.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list