Mercurial > hg
changeset 16359:a1b6a63f9f39 stable
context: make changectx.mutable() benefit from .phase() logic
This fixes "hg qimport -r null". Previous versions used to:
- Traceback because null revision mutability was not defined
- Add an empty -1.diff patch to the series
The error message:
abort: revision -1 is not mutable
is symptomatic of a deeper problem in phase command revision handling. It could
be fixed easily in the command itself but I feel a better fix must be done in
phase API which raises the issue of phase updates atomicity: aborting in
phases.advanceboundary/retractboundary requires a better rollback behaviour to
avoid partial changes.
author | Patrick Mezard <patrick@mezard.eu> |
---|---|
date | Thu, 05 Apr 2012 19:15:23 +0200 |
parents | 825565136235 |
children | 16b75661828e |
files | mercurial/context.py tests/test-mq-qimport.t |
diffstat | 2 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/context.py Mon Apr 02 22:25:55 2012 +0100 +++ b/mercurial/context.py Thu Apr 05 19:15:23 2012 +0200 @@ -127,7 +127,7 @@ def phasestr(self): return phases.phasenames[self.phase()] def mutable(self): - return self._repo._phaserev[self._rev] > phases.public + return self.phase() > phases.public def hidden(self): return self._rev in self._repo.changelog.hiddenrevs
--- a/tests/test-mq-qimport.t Mon Apr 02 22:25:55 2012 +0100 +++ b/tests/test-mq-qimport.t Thu Apr 05 19:15:23 2012 +0200 @@ -28,6 +28,14 @@ abort: unable to read file non-existing-file [255] +qimport null revision + + $ hg qimport -r null + abort: revision -1 is not mutable + (see "hg help phases" for details) + [255] + $ hg qseries + import email $ hg qimport --push -n email - <<EOF