changeset 17988:848345a8d6ad stable

rebase: fix pull --rev options clashing with --rebase (issue3619) Rebase also have a plain `--rev` option used to select the rebase set (as `--base` or `--source` would). But the content of the --rev option was intended for the remote repo and is irrelevant for the local rebase operation. We expect `hg pull --rebase` to stick with the default behavior here: hg rebase --base . --dest tip(branch(.)) The `rev` option is dropped from the option passed to rebase.
author Pierre-Yves David <pierre-yves.david@logilab.fr>
date Thu, 29 Nov 2012 16:37:15 +0100
parents f94ead934067
children e8c9b13c7799 0c10cf819146
files hgext/rebase.py tests/test-rebase-pull.t
diffstat 2 files changed, 56 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/rebase.py	Wed Nov 28 17:53:52 2012 -0600
+++ b/hgext/rebase.py	Thu Nov 29 16:37:15 2012 +0100
@@ -706,6 +706,10 @@
             commands.postincoming = origpostincoming
         revspostpull = len(repo)
         if revspostpull > revsprepull:
+            # --rev option from pull conflict with rebase own --rev
+            # dropping it
+            if 'rev' in opts:
+                del opts['rev']
             rebase(ui, repo, **opts)
             branch = repo[None].branch()
             dest = repo[branch].rev()
--- a/tests/test-rebase-pull.t	Wed Nov 28 17:53:52 2012 -0600
+++ b/tests/test-rebase-pull.t	Thu Nov 29 16:37:15 2012 +0100
@@ -114,3 +114,55 @@
   |
 
   $ cd ..
+
+pull --rebase works when a specific revision is pulled (issue3619)
+
+  $ cd a
+  $ hg tglog
+  @  2: 'R1'
+  |
+  o  1: 'C2'
+  |
+  o  0: 'C1'
+  
+  $ echo R2 > R2
+  $ hg ci -Am R2
+  adding R2
+  $ echo R3 > R3
+  $ hg ci -Am R3
+  adding R3
+  $ cd ../c
+  $ hg tglog
+  o  2: 'R1'
+  |
+  @  1: 'C2'
+  |
+  o  0: 'C1'
+  
+  $ echo L1 > L1
+  $ hg ci -Am L1
+  adding L1
+  created new head
+  $ hg pull --rev tip --rebase
+  pulling from $TESTTMP/a
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 2 files
+  saved backup bundle to $TESTTMP/c/.hg/strip-backup/ff8d69a621f9-backup.hg (glob)
+  $ hg tglog
+  @  5: 'L1'
+  |
+  o  4: 'R3'
+  |
+  o  3: 'R2'
+  |
+  o  2: 'R1'
+  |
+  o  1: 'C2'
+  |
+  o  0: 'C1'
+  
+
+