Mercurial > public > mercurial-scm > hg-stable
diff mercurial/copies.py @ 6425:2d9328a2f81f
copies: skip directory rename checks when not merging
The directory rename checks are not meaningful unless we're moving or copying
files across a branch during a merge.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sat, 29 Mar 2008 12:39:47 -0500 |
parents | d8f44384c3ee |
children | e2c49ef2dd6e |
line wrap: on
line diff
--- a/mercurial/copies.py Sat Mar 29 12:39:47 2008 -0500 +++ b/mercurial/copies.py Sat Mar 29 12:39:47 2008 -0500 @@ -53,7 +53,7 @@ old.sort() return [o[1] for o in old] -def copies(repo, c1, c2, ca): +def copies(repo, c1, c2, ca, checkdirs=False): """ Find moves and copies between context c1 and c2 """ @@ -104,9 +104,6 @@ elif of in ma: diverge.setdefault(of, []).append(f) - if not repo.ui.configbool("merge", "followcopies", True): - return {}, {} - repo.ui.debug(_(" searching for copies back to rev %d\n") % limit) u1 = _nonoverlap(m1, m2, ma) @@ -140,7 +137,7 @@ repo.ui.debug(_(" %s -> %s %s\n") % (f, fullcopy[f], note)) del diverge2 - if not fullcopy or not repo.ui.configbool("merge", "followdirs", True): + if not fullcopy or not checkdirs: return copy, diverge repo.ui.debug(_(" checking for directory renames\n")) @@ -187,7 +184,8 @@ for d in dirmove: if f.startswith(d): # new file added in a directory that was moved, move it - copy[f] = dirmove[d] + f[len(d):] + df = dirmove[d] + f[len(d):] + copy[f] = df repo.ui.debug(_(" file %s -> %s\n") % (f, copy[f])) break