Mercurial > hg
changeset 18913:79580b3140cd
histedit: support editing of the first commit (issue3767)
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Fri, 12 Apr 2013 16:01:18 -0700 |
parents | 4e1ae55e63ef |
children | 05d5821e0dc8 |
files | hgext/histedit.py tests/test-histedit-edit.t |
diffstat | 2 files changed, 22 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/histedit.py Fri Apr 12 17:00:42 2013 -0400 +++ b/hgext/histedit.py Fri Apr 12 16:01:18 2013 -0700 @@ -580,14 +580,15 @@ # note: does not take non linear new change in account (but previous # implementation didn't used them anyway (issue3655) newchildren = [c.node() for c in repo.set('(%d::.)', parentctx)] - if not newchildren: - # `parentctxnode` should match but no result. This means that - # currentnode is not a descendant from parentctxnode. - msg = _('%s is not an ancestor of working directory') - hint = _('update to %s or descendant and run "hg histedit ' - '--continue" again') % parentctx - raise util.Abort(msg % parentctx, hint=hint) - newchildren.pop(0) # remove parentctxnode + if parentctx.node() != node.nullid: + if not newchildren: + # `parentctxnode` should match but no result. This means that + # currentnode is not a descendant from parentctxnode. + msg = _('%s is not an ancestor of working directory') + hint = _('update to %s or descendant and run "hg histedit ' + '--continue" again') % parentctx + raise util.Abort(msg % parentctx, hint=hint) + newchildren.pop(0) # remove parentctxnode # Commit dirty working directory if necessary new = None m, a, r, d = repo.status()[:4]
--- a/tests/test-histedit-edit.t Fri Apr 12 17:00:42 2013 -0400 +++ b/tests/test-histedit-edit.t Fri Apr 12 16:01:18 2013 -0700 @@ -209,3 +209,16 @@ [1] $ cd .. + $ hg clone -qr0 r r0 + $ cd r0 + $ echo edit cb9a9f314b8b a > $EDITED + $ hg phase -fdr0 + $ HGEDITOR="cat \"$EDITED\" > " hg histedit 0 2>&1 + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + adding a + abort: Make changes as needed, you may commit or record as needed now. + When you are finished, run hg histedit --continue to resume. + [255] + $ HGEDITOR=true hg histedit --continue + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + saved backup bundle to $TESTTMP/r0/.hg/strip-backup/cb9a9f314b8b-backup.hg (glob)