( )⚙ D11788 dirstate: do no use `set_clean` in revert

This is an archive of the discontinued Mercurial Phabricator instance.

dirstate: do no use `set_clean` in revert
ClosedPublic

Authored by marmoute on Nov 24 2021, 6:12 AM.

Details

Summary

The current set_clean usage is racy (the file might be modified between its
restoration and the set_clean call).

So we simply leave the file as ambiguous and the next status will fix that.

We still have to make sure the copy information is dropped, so we teach dirstate
how to do that.

The win32txt extension is confused after this because current logic is broken in
more location. However this series will ultimately fix that so we "ignore" it
for now. Fixing it now is complicated without some extra fix landing later.

Diff Detail

Repository
rHG Mercurial
Branch
default
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

marmoute created this revision.Nov 24 2021, 6:12 AM
Alphare accepted this revision.Nov 24 2021, 8:34 AM
Alphare added a subscriber: Alphare.
Alphare added inline comments.
mercurial/cmdutil.py
3632

"merge" twice

This revision is now accepted and ready to land.Nov 24 2021, 8:34 AM
marmoute edited the summary of this revision. (Show Details)Nov 30 2021, 6:53 PM
marmoute updated this revision to Diff 31227.
Alphare requested changes to this revision.Dec 1 2021, 5:15 AM

You've edited the commit message and made it... less readable? This was probably a mistake

This revision now requires changes to proceed.Dec 1 2021, 5:15 AM
marmoute edited the summary of this revision. (Show Details)Dec 1 2021, 8:21 AM
Alphare accepted this revision.Dec 1 2021, 10:15 AM
This revision is now accepted and ready to land.Dec 1 2021, 10:15 AM
This revision was automatically updated to reflect the committed changes.