diff mercurial/hg.py @ 407:0e0d0670b2bc

[PATCH] Merging identical changes from another branch -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [PATCH] Merging identical changes from another branch From: Michael A Fetterman <Michael.Fetterman@cl.cam.ac.uk> The issue comes up when a local uncommitted *new* file (i.e. not in the current manifest) is being merged with an identical file from a branch. Since the file is not in the current manifest (it's either in the current "to-be-added" list, or in the "unknown" state), there's no (local) node from which to create a mergepoint. manifest hash: 4e64ce654a6473524789a97bbaf8bff61b4343af -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.0 (GNU/Linux) iD8DBQFCuM/1ywK+sNU5EO8RAn7xAKCJoH/CgzVK4h4xPJDrd2lY9XOINACgmt01 92uuMswZXcoCchQAaxew7C0= =qRsk -----END PGP SIGNATURE-----
author mpm@selenic.com
date Tue, 21 Jun 2005 18:41:57 -0800
parents 99470ae6b424
children 3695fbd2c33b
line wrap: on
line diff
--- a/mercurial/hg.py
+++ b/mercurial/hg.py
@@ -1035,6 +1035,15 @@ class localrepository:
             if f in m2:
                 s = 0
 
+                # is the wfile new since m1, and match m2?
+                if n not in m1:
+                    t1 = self.wfile(f).read()
+                    t2 = self.file(f).revision(m2[f])
+                    if cmp(t1, t2) == 0:
+                        mark[f] = 1
+                        n = m2[f]
+                    del t1, t2
+
                 # are files different?
                 if n != m2[f]:
                     a = ma.get(f, nullid)