[Bug 5593] New: histedit aborts halfway on hidden changesets

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Mon Jun 12 14:05:47 UTC 2017


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

            Bug ID: 5593
           Summary: histedit aborts halfway on hidden changesets
           Product: Mercurial
           Version: 4.2
          Hardware: PC
                OS: Linux
            Status: UNCONFIRMED
          Severity: bug
          Priority: wish
         Component: histedit
          Assignee: bugzilla at mercurial-scm.org
          Reporter: patrickdepinguin+mercurial at gmail.com
                CC: mercurial-devel at mercurial-scm.org

Quick summary:
- histedit (fold) on set of hidden changes starts fine on the first fold but
then aborts because it can't find the next hidden changeset
- when passing the '--hidden' flag, it works fine

Suggested fix: let histedit detect the situation upfront, bail out, and expect
the user to pass '--hidden' explicitly from the beginning.

Details:

I did a histedit but then realized I made a mistake. I thus wanted to start
over.
As I have 'experimental.evolution = all' in my .hgrc, the previous commits were
made hidden but still available. I thus attempted to update to the hidden tip,
and run a new histedit session. It started fine, but bails out halfway.

A reproduction run is:

# setup repo with four commits
cd /tmp
hg init foo   
cd foo 
echo one > a
hg add
hg commit -m one 
echo two >> a
hg commit -m two
echo three >> a
hg commit -m three 
echo four >> a
hg commit -m four

# First attempt:
hg histe   # let 'four' fold into 'two'

# Result:
hg gls --hidden                                                                 
@  6 2feec63a60f0 tip default  2017-06-12 Thomas De Schampheleire three
|
o  5 722992a0f5b9 default  2017-06-12 Thomas De Schampheleire two
|
| x  4 93b14722574b default  2017-06-12 Thomas De Schampheleire
fold-temp-revision a88280e97a21
| |
| | x  3 a88280e97a21 default  2017-06-12 Thomas De Schampheleire four
| | |
| | x  2 05c7b8418269 default  2017-06-12 Thomas De Schampheleire three
| |/
| x  1 8ff1950daa91 default  2017-06-12 Thomas De Schampheleire two
|/
o  0 e2e0dff4b832 default  2017-06-12 Thomas De Schampheleire one


# Realize that the end result is wrong (content-wise), so start over:
hg up --hidden a88280e97a21 
hg histe  # let 'four' fold into 'two' again
Updating from rev. 'a88280e97a21' to rev. '8ff1950daa91' 
Updating from rev. '8ff1950daa91' to rev. '8ff1950daa91' (merge with rev.
'a88280e97a21')
abort: unknown revision 'a88280e97a21396d069da2b6efeb256a24e67cff'!

# Result at this point:
 hg gls --hidden                                                                
o  6 2feec63a60f0 tip default  2017-06-12 Thomas De Schampheleire three
|
o  5 722992a0f5b9 default  2017-06-12 Thomas De Schampheleire two
|
| @  4 93b14722574b default  2017-06-12 Thomas De Schampheleire
fold-temp-revision a88280e97a21
| |
| | x  3 a88280e97a21 default  2017-06-12 Thomas De Schampheleire four
| | |
| | x  2 05c7b8418269 default  2017-06-12 Thomas De Schampheleire three
| |/
| x  1 8ff1950daa91 default  2017-06-12 Thomas De Schampheleire two
|/
o  0 e2e0dff4b832 default  2017-06-12 Thomas De Schampheleire one

# and histedit is still 'in progress' although aborted:
hg sum                                                                          
parent: 4:93b14722574b  (obsolete)
 fold-temp-revision a88280e97a21
branch: default
commit: (clean)
update: 2 new changesets, 2 branch heads (merge)
phases: 5 draft
hist:   2 remaining (histedit --continue)


# Now show the working method passing '--hidden' to histedit
hg histe --abort 
hg up --hidden a88280e97a21
hg histe --hidden 8ff1950daa91  (let 'four' fold into 'two')
Updating from rev. 'a88280e97a21' to rev. '8ff1950daa91' 
Updating from rev. '8ff1950daa91' to rev. '8ff1950daa91' (merge with rev.
'a88280e97a21')
Updating from rev. '93b14722574b' to rev. 'e2e0dff4b832' 
updating [==============================================================>]
1/1Updating from rev. 'e2e0dff4b832' to rev. '722992a0f5b9' 
updating [==============================================================>]
1/1Updating from rev. '722992a0f5b9' to rev. '722992a0f5b9' 
Updating from rev. '722992a0f5b9' to rev. '722992a0f5b9' (merge with rev.
'05c7b8418269')
Updating from rev. '2feec63a60f0 tip' to rev. '2feec63a60f0' 

# Result:
 hg gls --hidden                                                                
@  6 2feec63a60f0 tip default  2017-06-12 Thomas De Schampheleire three
|
o  5 722992a0f5b9 default  2017-06-12 Thomas De Schampheleire two
|
| x  4 93b14722574b default  2017-06-12 Thomas De Schampheleire
fold-temp-revision a88280e97a21
| |
| | x  3 a88280e97a21 default  2017-06-12 Thomas De Schampheleire four
| | |
| | x  2 05c7b8418269 default  2017-06-12 Thomas De Schampheleire three
| |/
| x  1 8ff1950daa91 default  2017-06-12 Thomas De Schampheleire two
|/
o  0 e2e0dff4b832 default  2017-06-12 Thomas De Schampheleire one



hg version                                                                      
Mercurial Distributed SCM (version 4.2)
(see https://mercurial-scm.org for more information

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


More information about the Mercurial-devel mailing list