--- a/hgext/mq.py Sun Jan 08 15:23:26 2012 +0100
+++ b/hgext/mq.py Mon Jan 09 20:16:57 2012 -0600
@@ -1854,8 +1854,9 @@
def delete(ui, repo, *patches, **opts):
"""remove patches from queue
- The patches must not be applied, and at least one patch is required. With
- -k/--keep, the patch files are preserved in the patch directory.
+ The patches must not be applied, and at least one patch is required. Exact
+ patch identifiers must be given. With -k/--keep, the patch files are
+ preserved in the patch directory.
To stop managing a patch and move it into permanent history,
use the :hg:`qfinish` command."""
--- a/hgext/rebase.py Sun Jan 08 15:23:26 2012 +0100
+++ b/hgext/rebase.py Mon Jan 09 20:16:57 2012 -0600
@@ -15,7 +15,7 @@
'''
from mercurial import hg, util, repair, merge, cmdutil, commands, bookmarks
-from mercurial import extensions, patch
+from mercurial import extensions, patch, scmutil
from mercurial.commands import templateopts
from mercurial.node import nullrev
from mercurial.lock import release
@@ -187,10 +187,12 @@
if revf:
rebaseset = repo.revs('%lr', revf)
elif srcf:
- rebaseset = repo.revs('(%r)::', srcf)
+ src = scmutil.revrange(repo, [srcf])
+ rebaseset = repo.revs('(%ld)::', src)
else:
- base = basef or '.'
- rebaseset = repo.revs('(children(ancestor(%r, %d)) & ::%r)::',
+ base = scmutil.revrange(repo, [basef or '.'])
+ rebaseset = repo.revs(
+ '(children(ancestor(%ld, %d)) and ::(%ld))::',
base, dest, base)
if rebaseset:
--- a/mercurial/dirstate.py Sun Jan 08 15:23:26 2012 +0100
+++ b/mercurial/dirstate.py Mon Jan 09 20:16:57 2012 -0600
@@ -4,6 +4,7 @@
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
+import errno
from node import nullid
from i18n import _
@@ -80,7 +81,9 @@
def _branch(self):
try:
return self._opener.read("branch").strip() or "default"
- except IOError:
+ except IOError, inst:
+ if inst.errno != errno.ENOENT:
+ raise
return "default"
@propertycache
--- a/tests/test-rebase-named-branches.t Sun Jan 08 15:23:26 2012 +0100
+++ b/tests/test-rebase-named-branches.t Mon Jan 09 20:16:57 2012 -0600
@@ -22,25 +22,156 @@
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd ..
-
-Rebasing descendant onto ancestor across different named branches
-
$ hg clone -q -u . a a1
$ cd a1
- $ hg branch dev
- marked working directory as branch dev
+ $ hg update 3
+ 3 files updated, 0 files merged, 2 files removed, 0 files unresolved
+ $ hg branch dev-one
+ marked working directory as branch dev-one
+ (branches are permanent and global, did you want a bookmark?)
+ $ hg ci -m 'dev-one named branch'
+
+ $ hg update 7
+ 2 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ $ hg branch dev-two
+ marked working directory as branch dev-two
(branches are permanent and global, did you want a bookmark?)
$ echo x > x
$ hg add x
- $ hg ci -m 'extra named branch'
+ $ hg ci -m 'dev-two named branch'
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ | o 8: 'dev-one named branch' dev-one
+ | |
+ o | 7: 'H'
+ | |
+ +---o 6: 'G'
+ | | |
+ o | | 5: 'F'
+ | | |
+ +---o 4: 'E'
+ | |
+ | o 3: 'D'
+ | |
+ | o 2: 'C'
+ | |
+ | o 1: 'B'
+ |/
+ o 0: 'A'
+
+
+Branch name containing a dash (issue3181)
+
+ $ hg rebase -b dev-two -d dev-one --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ o 8: 'H'
+ |
+ | o 7: 'G'
+ |/|
+ o | 6: 'F'
+ | |
+ o | 5: 'dev-one named branch' dev-one
+ | |
+ | o 4: 'E'
+ | |
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -s dev-one -d 0 --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
$ hg tglog
- @ 8: 'extra named branch' dev
+ @ 8: 'dev-two named branch' dev-two
+ |
+ o 7: 'H'
+ |
+ | o 6: 'G'
+ |/|
+ o | 5: 'F'
+ | |
+ | o 4: 'E'
+ |/
+ | o 3: 'D'
+ | |
+ | o 2: 'C'
+ | |
+ | o 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg update 3
+ 3 files updated, 0 files merged, 3 files removed, 0 files unresolved
+ $ hg branch dev-one
+ marked working directory as branch dev-one
+ (branches are permanent and global, did you want a bookmark?)
+ $ hg ci -m 'dev-one named branch'
+
+ $ hg tglog
+ @ 9: 'dev-one named branch' dev-one
+ |
+ | o 8: 'dev-two named branch' dev-two
+ | |
+ | o 7: 'H'
+ | |
+ | | o 6: 'G'
+ | |/|
+ | o | 5: 'F'
+ | | |
+ | | o 4: 'E'
+ | |/
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 9: 'dev-two named branch' dev-two
+ |
+ o 8: 'H'
+ |
+ | o 7: 'G'
+ |/|
+ o | 6: 'F'
+ | |
+ o | 5: 'dev-one named branch' dev-one
+ | |
+ | o 4: 'E'
+ | |
+ o | 3: 'D'
+ | |
+ o | 2: 'C'
+ | |
+ o | 1: 'B'
+ |/
+ o 0: 'A'
+
+ $ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
+ saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
+
+ $ hg tglog
+ @ 8: 'dev-two named branch' dev-two
|
o 7: 'H'
|
@@ -59,6 +190,7 @@
o 0: 'A'
+Rebasing descendant onto ancestor across different named branches
$ hg rebase -s 1 -d 8 --keepbranches
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob)
@@ -70,7 +202,7 @@
|
o 6: 'B'
|
- o 5: 'extra named branch' dev
+ o 5: 'dev-two named branch' dev-two
|
o 4: 'H'
|
@@ -96,7 +228,7 @@
|
o 6: 'B'
|
- o 5: 'extra named branch'
+ o 5: 'dev-two named branch'
|
o 4: 'H'
|