changeset 13901:d3890ead75be stable

merge with crew
author Matt Mackall <mpm@selenic.com>
date Wed, 06 Apr 2011 15:13:49 -0500
parents a3403d5b0af3 (diff) 0a0988bd4818 (current diff)
children fab10e7cacd6 5065e120636d
files
diffstat 3 files changed, 53 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/rebase.py	Tue Apr 05 10:04:19 2011 +0200
+++ b/hgext/rebase.py	Wed Apr 06 15:13:49 2011 -0500
@@ -270,7 +270,7 @@
         if k in m1:
             if v in m1 or v in m2:
                 repo.dirstate.copy(v, k)
-                if v in m2 and v not in m1:
+                if v in m2 and v not in m1 and k in m2:
                     repo.dirstate.remove(v)
 
 def concludenode(repo, rev, p1, p2, commitmsg=None, extrafn=None):
--- a/mercurial/url.py	Tue Apr 05 10:04:19 2011 +0200
+++ b/mercurial/url.py	Wed Apr 06 15:13:49 2011 -0500
@@ -25,6 +25,9 @@
 
 def hidepassword(url):
     '''hide user credential in a url string'''
+    if url.startswith("ssh://"):
+        # urllib doesn't know about ssh urls
+        return re.sub(r'(ssh://[^/]+):[^/]+(@.*)', r'\1:***\2', url)
     scheme, netloc, path, params, query, fragment = urlparse.urlparse(url)
     netloc = re.sub('([^:]*):([^@]*)@(.*)', r'\1:***@\3', netloc)
     return _urlunparse(scheme, netloc, path, params, query, fragment, url)
--- a/tests/test-rebase-rename.t	Tue Apr 05 10:04:19 2011 +0200
+++ b/tests/test-rebase-rename.t	Wed Apr 06 15:13:49 2011 -0500
@@ -119,3 +119,52 @@
   copy from a
   copy to a-copied
   
+  $ cd ..
+
+
+Test rebase across repeating renames:
+
+  $ hg init repo
+
+  $ cd repo
+
+  $ echo testing > file1.txt
+  $ hg add file1.txt
+  $ hg ci -m "Adding file1"
+
+  $ hg rename file1.txt file2.txt
+  $ hg ci -m "Rename file1 to file2"
+
+  $ echo Unrelated change > unrelated.txt
+  $ hg add unrelated.txt
+  $ hg ci -m "Unrelated change"
+
+  $ hg rename file2.txt file1.txt
+  $ hg ci -m "Rename file2 back to file1"
+
+  $ hg update -r -2
+  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+  $ echo Another unrelated change >> unrelated.txt
+  $ hg ci -m "Another unrelated change"
+  created new head
+
+  $ hg tglog
+  @  4: 'Another unrelated change'
+  |
+  | o  3: 'Rename file2 back to file1'
+  |/
+  o  2: 'Unrelated change'
+  |
+  o  1: 'Rename file1 to file2'
+  |
+  o  0: 'Adding file1'
+  
+
+  $ hg rebase -s 4 -d 3
+  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-backup.hg (glob)
+
+  $ hg diff --stat -c .
+   unrelated.txt |  1 +
+   1 files changed, 1 insertions(+), 0 deletions(-)
+