Denis Laxalde <denis@laxalde.org> [Fri, 13 Oct 2017 04:02:06 +0530] rev 34684
tersestatus: avoid modifying tersedict
Turn dirnode's methods into generators which can be used to update "tersedict"
in caller. So instead of passing the "tersedict" to be mutated here and there,
it's now clearer where it is updated as it's purely a local variable to
tersedir() function.
While I was here, I renamed _processtersestatus to tersewalk and
_addfilestotersed to iterfilepaths.
Differential Revision: https://phab.mercurial-scm.org/D1043
Denis Laxalde <denis@laxalde.org> [Wed, 11 Oct 2017 21:19:19 +0200] rev 34683
tersestatus: make methods part of the dirnode class
Differential Revision: https://phab.mercurial-scm.org/D1042
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 06 Oct 2017 20:54:23 +0530] rev 34682
tersestatus: re-implement the functionality to terse the status
The previous terse status implementation was hacking around os.listdir() and was
flaky. There have been a lot of instances of mercurial buildbots failing
and google's internal builds failing because of the
hacky implementation of terse status. Even though I wrote the last
implementation but it was hard for me to find the reason for the flake.
The new implementation can be slower than the old one but is clean and easy to
understand.
In this we create a node object for each directory and create a tree
like structure starting from the root of the working copy. While building the
tree like structure we store some information on the nodes which will be helpful
for deciding later whether we can terse the dir or not.
Once the whole tree is build we traverse and built the list of files for each
status with required tersing.
There is no behaviour change as the old test, test-status-terse.t passes with
the new implementation.
Differential Revision: https://phab.mercurial-scm.org/D985
Phil Cohen <phillco@fb.com> [Fri, 13 Oct 2017 12:54:46 -0700] rev 34681
context: add is `isinmemory()` to filectx
This will make it easier to skip certain behavior when running an in-memory
merge.
Differential Revision: https://phab.mercurial-scm.org/D1061
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34680
merge: ensure that we always commit the mergestate
In future patches, we may halt the merge process based on configuration or
user requests by raising exceptions. We need to ensure that the mergestate
is unconditionally committed even when such an exception is raised.
Depends on D930.
Differential Revision: https://phab.mercurial-scm.org/D931
Ryan McElroy <rmcelroy@fb.com> [Fri, 06 Oct 2017 06:48:43 -0700] rev 34679
merge: add tests to show current behavior on failed filemerges
Currently, failed file merges will nevertheless force the user to continue
attempting to merge all additional unresolved files. Future patches will allow
the user to halt the merge process instead. This patch first introduces a test
demonstrating the current bejhavior so the upcoming changes are more obvious.
Differential Revision: https://phab.mercurial-scm.org/D930