Show More
@@ -265,13 +265,10 b' def override_update(orig, ui, repo, *pat' | |||||
265 | # The overridden function filters the unknown files by removing any |
|
265 | # The overridden function filters the unknown files by removing any | |
266 | # largefiles. This makes the merge proceed and we can then handle this |
|
266 | # largefiles. This makes the merge proceed and we can then handle this | |
267 | # case further in the overridden manifestmerge function below. |
|
267 | # case further in the overridden manifestmerge function below. | |
268 |
def override_checkunknown(origfn, wctx, mctx, f |
|
268 | def override_checkunknownfile(origfn, repo, wctx, mctx, f): | |
269 | origunknown = wctx.unknown() |
|
269 | if lfutil.standin(f) in wctx: | |
270 | wctx._unknown = filter(lambda f: lfutil.standin(f) not in wctx, origunknown) |
|
270 | return False | |
271 | try: |
|
271 | return origfn(repo, wctx, mctx, f) | |
272 | return origfn(wctx, mctx, folding) |
|
|||
273 | finally: |
|
|||
274 | wctx._unknown = origunknown |
|
|||
275 |
|
272 | |||
276 | # The manifest merge handles conflicts on the manifest level. We want |
|
273 | # The manifest merge handles conflicts on the manifest level. We want | |
277 | # to handle changes in largefile-ness of files at this level too. |
|
274 | # to handle changes in largefile-ness of files at this level too. |
@@ -64,8 +64,8 b' def uisetup(ui):' | |||||
64 | overrides.override_update) |
|
64 | overrides.override_update) | |
65 | entry = extensions.wrapcommand(commands.table, 'pull', |
|
65 | entry = extensions.wrapcommand(commands.table, 'pull', | |
66 | overrides.override_pull) |
|
66 | overrides.override_pull) | |
67 | entry = extensions.wrapfunction(merge, '_checkunknown', |
|
67 | entry = extensions.wrapfunction(merge, '_checkunknownfile', | |
68 | overrides.override_checkunknown) |
|
68 | overrides.override_checkunknownfile) | |
69 | entry = extensions.wrapfunction(merge, 'manifestmerge', |
|
69 | entry = extensions.wrapfunction(merge, 'manifestmerge', | |
70 | overrides.override_manifestmerge) |
|
70 | overrides.override_manifestmerge) | |
71 | entry = extensions.wrapfunction(filemerge, 'filemerge', |
|
71 | entry = extensions.wrapfunction(filemerge, 'filemerge', |
@@ -81,22 +81,19 b' class mergestate(object):' | |||||
81 | self.mark(dfile, 'r') |
|
81 | self.mark(dfile, 'r') | |
82 | return r |
|
82 | return r | |
83 |
|
83 | |||
84 |
def _checkunknown(wctx, mctx, f |
|
84 | def _checkunknownfile(repo, wctx, mctx, f): | |
|
85 | return (not repo.dirstate._ignore(f) | |||
|
86 | and os.path.exists(repo.wjoin(f)) | |||
|
87 | and mctx[f].cmp(wctx[f])) | |||
|
88 | ||||
|
89 | def _checkunknown(repo, wctx, mctx): | |||
85 | "check for collisions between unknown files and files in mctx" |
|
90 | "check for collisions between unknown files and files in mctx" | |
86 | if folding: |
|
|||
87 | foldf = util.normcase |
|
|||
88 | else: |
|
|||
89 | foldf = lambda fn: fn |
|
|||
90 | folded = {} |
|
|||
91 | for fn in mctx: |
|
|||
92 | folded[foldf(fn)] = fn |
|
|||
93 |
|
91 | |||
94 | error = False |
|
92 | error = False | |
95 |
for f |
|
93 | for f in mctx: | |
96 | f = foldf(fn) |
|
94 | if f not in wctx and _checkunknownfile(repo, wctx, mctx, f): | |
97 | if f in folded and mctx[folded[f]].cmp(wctx[f]): |
|
|||
98 | error = True |
|
95 | error = True | |
99 |
wctx._repo.ui.warn(_("%s: untracked file differs\n") % f |
|
96 | wctx._repo.ui.warn(_("%s: untracked file differs\n") % f) | |
100 | if error: |
|
97 | if error: | |
101 | raise util.Abort(_("untracked files in working directory differ " |
|
98 | raise util.Abort(_("untracked files in working directory differ " | |
102 | "from files in requested revision")) |
|
99 | "from files in requested revision")) | |
@@ -565,7 +562,7 b' def update(repo, node, branchmerge, forc' | |||||
565 | wc.status(unknown=True) # prime cache |
|
562 | wc.status(unknown=True) # prime cache | |
566 | folding = not util.checkcase(repo.path) |
|
563 | folding = not util.checkcase(repo.path) | |
567 | if not force: |
|
564 | if not force: | |
568 |
_checkunknown(wc, p2 |
|
565 | _checkunknown(repo, wc, p2) | |
569 | if folding: |
|
566 | if folding: | |
570 | _checkcollision(p2, branchmerge and p1) |
|
567 | _checkcollision(p2, branchmerge and p1) | |
571 | action += _forgetremoved(wc, p2, branchmerge) |
|
568 | action += _forgetremoved(wc, p2, branchmerge) |
General Comments 0
You need to be logged in to leave comments.
Login now