equal
deleted
inserted
replaced
114 # construct a working dir manifest |
114 # construct a working dir manifest |
115 mw = m1.copy() |
115 mw = m1.copy() |
116 umap = dict.fromkeys(unknown) |
116 umap = dict.fromkeys(unknown) |
117 |
117 |
118 for f in added + modified + unknown: |
118 for f in added + modified + unknown: |
119 mw[f] = None |
119 mw[f] = "" |
120 if f in m1: mw[f] = "" # distinguish between changed and new |
120 # is the wfile new and matches m2? |
|
121 if (f not in m1 and f in m2 and |
|
122 not repo.file(f).cmp(m2[f], repo.wread(f))): |
|
123 mw[f] = m2[f] |
|
124 |
121 mw.set(f, util.is_exec(repo.wjoin(f), mw.execf(f))) |
125 mw.set(f, util.is_exec(repo.wjoin(f), mw.execf(f))) |
122 |
126 |
123 for f in deleted + removed: |
127 for f in deleted + removed: |
124 if f in mw: |
128 if f in mw: |
125 del mw[f] |
129 del mw[f] |
136 for f, n in mw.iteritems(): |
140 for f, n in mw.iteritems(): |
137 if partial and not partial(f): |
141 if partial and not partial(f): |
138 continue |
142 continue |
139 if f in m2: |
143 if f in m2: |
140 s = 0 |
144 s = 0 |
141 |
|
142 # is the wfile new and matches m2? |
|
143 if mw[f] == None: |
|
144 if not repo.file(f).cmp(m2[f], repo.wread(f)): |
|
145 n = m2[f] |
|
146 |
145 |
147 # are files different? |
146 # are files different? |
148 if n != m2[f]: |
147 if n != m2[f]: |
149 a = ma.get(f, nullid) |
148 a = ma.get(f, nullid) |
150 # are both different from the ancestor? |
149 # are both different from the ancestor? |