comparison mercurial/copies.py @ 10874:4f11978ae45d stable

copies: properly visit file context ancestors on working file contexts
author Henrik Stuart <henrik.stuart@edlund.dk>
date Wed, 07 Apr 2010 21:31:47 +0200
parents 5ddde896a19d
children ada47c38f4e5
comparison
equal deleted inserted replaced
10872:9606edb8777e 10874:4f11978ae45d
115 copy = {} 115 copy = {}
116 fullcopy = {} 116 fullcopy = {}
117 diverge = {} 117 diverge = {}
118 118
119 def related(f1, f2, limit): 119 def related(f1, f2, limit):
120 # Walk back to common ancestor to see if the two files originate
121 # from the same file. Since workingfilectx's rev() is None it messes
122 # up the integer comparison logic, hence the pre-step check for
123 # None (f1 and f2 can only be workingfilectx's initially).
124
125 if f1 == f2:
126 return f1 # a match
127
120 g1, g2 = f1.ancestors(), f2.ancestors() 128 g1, g2 = f1.ancestors(), f2.ancestors()
121 try: 129 try:
130 f1r, f2r = f1.rev(), f2.rev()
131
132 if f1r is None:
133 f1 = g1.next()
134 if f2r is None:
135 f2 = g2.next()
136
122 while 1: 137 while 1:
123 f1r, f2r = f1.rev(), f2.rev() 138 f1r, f2r = f1.rev(), f2.rev()
124 if f1r > f2r: 139 if f1r > f2r:
125 f1 = g1.next() 140 f1 = g1.next()
126 elif f2r > f1r: 141 elif f2r > f1r: