Pulkit Goyal <7895pulkit@gmail.com> [Tue, 14 Jul 2020 15:42:28 +0530] rev 45168
merge: document return values of manifestmerge() and calculateupdates()
In future patches, I want to add one more return value which represents
information which needs to stored and used at commit time.
Differential Revision: https://phab.mercurial-scm.org/D8741
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 19:02:10 +0530] rev 45167
merge: refactor code to advise fsmonitor in separate function
merge.update() is quite hard to understand, found this an easy win.
The end goal is to have better organized merge and mergestate handling and then
fix some related bugs.
Differential Revision: https://phab.mercurial-scm.org/D8740
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 18:43:38 +0530] rev 45166
mergestate: document what mergestate._results is for
Understanding that dict is important for understanding how mergestate is
performing operations on dirstate.
Differential Revision: https://phab.mercurial-scm.org/D8739
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 18:38:09 +0530] rev 45165
mergestate: rename a helpless variable name to bit helpful one
The old variable name `r` makes it ~impossible to understand what does it mean.
One can only understand that after going to callers and hoping that its
documented there.
I also documented return value of the function involved while I was there.
Differential Revision: https://phab.mercurial-scm.org/D8738
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 18:20:54 +0530] rev 45164
mergestate: remove unnecessary recordactions() from mergestate class
This function is updating dirstate which sounds like not something which a
method on mergestate class should do. Also this just calls another function.
Lets directly call that function and remove this reducing mergestate
responsibility a bit.
There was single caller which is updated.
Differential Revision: https://phab.mercurial-scm.org/D8737
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 17:05:41 +0530] rev 45163
mergestate: document mergestate records in an organized way
This makes clear which mergestate record is used for what and group them based
on how they are used right now.
Differential Revision: https://phab.mercurial-scm.org/D8719
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 16:39:42 +0530] rev 45162
mergestate: remove unused unsupported related mergestate records
I tried to find users of this but was unable to find. Seems like RECORD_OVERRIDE
is doing for what they were used before.
Differential Revision: https://phab.mercurial-scm.org/D8718
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 16:38:24 +0530] rev 45161
mergestate: add comments about couple of record types and minor reorder
I am trying to divide the records into certain groups and then have dedicated
objects for them. Taking baby steps in that direction.
Differential Revision: https://phab.mercurial-scm.org/D8717
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 15:50:02 +0530] rev 45160
mergestate: remove unrequired RECORD_RESOLVED_OTHER record
This was introduced in last cycle however while working on refactoring
mergestate, I realized it's unncessary.
This will break users who did a merge using previous version, did this kind of
storage and before commiting updated the mercurial version.
Differential Revision: https://phab.mercurial-scm.org/D8716
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 09 Jul 2020 14:44:58 +0530] rev 45159
mergestate: rename addpath() -> addpathonflict() to prevent confusion
addpath() seems to imply that we are adding a new path/entry to the mergestate.
Differential Revision: https://phab.mercurial-scm.org/D8715
Manuel Jacob <me@manueljacob.de> [Sat, 18 Jul 2020 12:35:55 +0200] rev 45158
windows: don’t set `softspace` attribute in `winstdout`
Python 2 file objects have the `softspace` attribute
(https://docs.python.org/2/library/stdtypes.html#file.softspace), which is used
by the print statement to track its internal state. The documentation demands
from file-like objects only that the attribute is writable and initialized to
0. Method `file.write()` sets it to 0, but this is not documented.
Historically, sys.stdout was replaced by an instance of the `winstdout` class,
so it needed to behave exactly the same (the softspace fix was introduced in
705278e70457). Nowadays we don’t replace sys.stdout and don’t use the print
statement on `winstdout` instances, so we can safely drop it.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 14:58:22 +0200] rev 45157
windows: handle file-like objects without isatty() method
Copying the function is not nice, but moving around stuff to avoid the
circular import didn’t seem to be worth the effort.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 08:21:31 +0200] rev 45156
exchange: check actually missing revs for obsolete / unstable revs (
issue6372)
The previous code was using `outgoing.ancestorsof`, which was originally called
`outgoing.missingheads` although not containing the missing heads. This
confusion was probably the reason why the buggy code was written.
The actually outgoing changesets are stored in `outgoing.missing`. By checking
all outgoing changesets, we avoid the problem and can show the list of all
obsolete or unstable changesets, which is more helpful for the user.
Manuel Jacob <me@manueljacob.de> [Fri, 17 Jul 2020 07:59:20 +0200] rev 45155
tests: test that push doesn’t complain about unstable changesets if no changes
When there’re no outgoing changes, push doesn’t complain about unstable
changesets.
There is currently a bug (see
issue6372) that causes that there is an abort on
push when the outgoing changes contain another changeset even if that is not
obsolete or unstable. A test case and fix for that is sent in the next patch.
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 17 Jul 2020 03:53:19 -0700] rev 45154
diff: move no-eol text constant to a common location
Differential Revision: https://phab.mercurial-scm.org/D8763
Rodrigo Damazio Bovendorp <rdamazio@google.com> [Fri, 17 Jul 2020 02:31:42 -0700] rev 45153
revert: fix interactive reverting of end-of-file newline changes
The chunk reversal used by `revert -i` in Curses mode was not taking this case
into account.
Differential Revision: https://phab.mercurial-scm.org/D8762