equal
deleted
inserted
replaced
3350 |
3350 |
3351 # if f is a rename, update `names` to also revert the source |
3351 # if f is a rename, update `names` to also revert the source |
3352 for f in localchanges: |
3352 for f in localchanges: |
3353 src = repo.dirstate.copied(f) |
3353 src = repo.dirstate.copied(f) |
3354 # XXX should we check for rename down to target node? |
3354 # XXX should we check for rename down to target node? |
3355 if src and src not in names and repo.dirstate[src] == b'r': |
3355 if ( |
|
3356 src |
|
3357 and src not in names |
|
3358 and repo.dirstate.get_entry(src).removed |
|
3359 ): |
3356 dsremoved.add(src) |
3360 dsremoved.add(src) |
3357 names[src] = True |
3361 names[src] = True |
3358 |
3362 |
3359 # determine the exact nature of the deleted changesets |
3363 # determine the exact nature of the deleted changesets |
3360 deladded = set(_deleted) |
3364 deladded = set(_deleted) |
3364 deleted = _deleted - deladded |
3368 deleted = _deleted - deladded |
3365 |
3369 |
3366 # distinguish between file to forget and the other |
3370 # distinguish between file to forget and the other |
3367 added = set() |
3371 added = set() |
3368 for abs in dsadded: |
3372 for abs in dsadded: |
3369 if repo.dirstate[abs] != b'a': |
3373 if not repo.dirstate.get_entry(abs).added: |
3370 added.add(abs) |
3374 added.add(abs) |
3371 dsadded -= added |
3375 dsadded -= added |
3372 |
3376 |
3373 for abs in deladded: |
3377 for abs in deladded: |
3374 if repo.dirstate[abs] == b'a': |
3378 if repo.dirstate.get_entry(abs).added: |
3375 dsadded.add(abs) |
3379 dsadded.add(abs) |
3376 deladded -= dsadded |
3380 deladded -= dsadded |
3377 |
3381 |
3378 # For files marked as removed, we check if an unknown file is present at |
3382 # For files marked as removed, we check if an unknown file is present at |
3379 # the same path. If a such file exists it may need to be backed up. |
3383 # the same path. If a such file exists it may need to be backed up. |