Yuya Nishihara <yuya@tcha.org> [Sat, 31 Oct 2015 22:15:16 +0900] rev 27139
hgweb: extract factory function of httpservice object
The next patch will merge the cmdutil.service() calls of both commandserver
and hgweb. Before doing it, this patch wipes out the code specific to hgweb
from commands.serve().
Yuya Nishihara <yuya@tcha.org> [Sat, 31 Oct 2015 21:57:45 +0900] rev 27138
hgweb: move httpservice object from commands module
This avoids the deep import of hgweb.server at the commands module.
Siddharth Agarwal <sid0@fb.com> [Wed, 25 Nov 2015 14:25:33 -0800] rev 27137
merge: move almost all change/delete conflicts to resolve phase (BC) (API)
We have finally laid all the groundwork to make this happen.
The only change/delete conflicts that haven't been moved are .hgsubstate
conflicts. Those are trickier to deal with and well outside the scope of this
series.
We add comprehensive testing not just for the initial selections but also for
re-resolves and all possible dirstate transitions caused by merge tools. That
testing managed to shake out several bugs in the way we were handling dirstate
transitions.
The other test changes are because we now treat change/delete conflicts as
proper merges, and increment the 'merged' counter rather than the 'updated'
counter. I believe this is the right approach here.
For third-party extensions, if they're interacting with filemerge code they
might have to deal with an absentfilectx rather than a regular filectx.
Still to come:
- add a 'leave unresolved' option to merges
- change the default for non-interactive change/delete conflicts to be 'leave
unresolved'
- add debug output to go alongside debug outputs for binary and symlink file
merges
Siddharth Agarwal <sid0@fb.com> [Wed, 25 Nov 2015 14:26:46 -0800] rev 27136
test-merge-changedelete.t: print out debugmergestate
We're going to use this to verify the merge state in upcoming patches.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Nov 2015 18:26:21 -0800] rev 27135
debugmergestate: also recognize change/delete conflicts in the merge state
We're going to use this for tests in upcoming patches.
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Nov 2015 10:26:37 -0800] rev 27134
debugmergestate: print out null nodes as 'null'
This is so much easier to read than a long string of zeroes, and we're going to
have a lot more of these nodes once change/delete conflicts are part of the
merge state.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Nov 2015 15:03:00 -0800] rev 27133
test-merge-force.t: check .orig files separately
We're going to soon compare the output of all the non-orig files before and
after a resolve, and this makes that more convenient. The .orig files are
obviously going to differ between the two.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Nov 2015 15:26:51 -0800] rev 27132
merge.recordupdates: mark 'a' files as added unconditionally
See the previous patch for why we do this.
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Nov 2015 10:19:39 -0800] rev 27131
merge: add a new action type representing files to add/mark as modified
This is somewhat different from the currently existing 'a' action, for the
following case:
- dirty working copy, with file 'fa' added and 'fm' modified
- hg merge --force with a rev that neither has 'fa' nor 'fm'
- for the change/delete conflicts we pick 'changed' for both 'fa' and 'fm'.
In this case 'branchmerge' is true, but we need to distinguish between 'fa',
which should ultimately be marked added, and 'fm', which should be marked
modified.
Our current strategy is to just not touch the dirstate at all. That works for
now, but won't work once we move change/delete conflicts to the resolve phase.
In that case we may perform repeated re-resolves, some of which might mark the
file removed or remove the file from the dirstate. We'll need to re-add the
file to the dirstate, and we need to be able to figure out whether we mark the
file added or modified. That is what the new 'am' action lets us do.
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Nov 2015 10:03:21 -0800] rev 27130
mergestate: add a cached property accessor for the local context
This is going to be useful in an upcoming patch. We make this a public accessor
because this is also going to be useful for custom merge drivers.
Siddharth Agarwal <sid0@fb.com> [Mon, 30 Nov 2015 10:05:09 -0800] rev 27129
mergestate: raise exception if otherctx is accessed but _other isn't set
We don't want to inadvertently return the workingctx (self._repo[None]).
timeless <timeless@mozdev.org> [Mon, 30 Nov 2015 18:47:33 +0000] rev 27128
pager: improve help for --pager=
try to clarify how to enable/disable the pager
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 24 Nov 2015 21:17:26 -0800] rev 27127
setup: remove unused py_modules argument to setup()
It is never populated and is useless clutter.
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Nov 2015 13:45:56 -0800] rev 27126
test-merge-changedelete.t: add resolve --list output
We're going to move change/delete conflicts to the resolve phase, and the
resolve --list output is one of the things that will be important to test.
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Nov 2015 13:43:14 -0800] rev 27125
test-merge-changedelete.t: add a file with regular merge conflicts
In upcoming patches we're going to move change/delete conflicts to the resolve
phase -- it will be important to see how regular conflicts interact with
change/delete ones.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Nov 2015 10:58:35 -0800] rev 27124
filemerge: in ':prompt', use ':fail' tool rather than returning directly
The ':fail' tool now knows to write out the changed side for change/delete
conflicts.
This has no impact right now but will make things better when we move
change/delete conflicts in here.
Siddharth Agarwal <sid0@fb.com> [Tue, 24 Nov 2015 10:57:01 -0800] rev 27123
filemerge: in ':fail' tool, write out other side if local side is deleted
We do this because we don't want to modify the dirstate for failures, and don't
just want to leave the file missing from disk. Plus it's more useful for the
user if the changed side is written out -- it is easier to delete a file than
to get it back via hg revert.
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Nov 2015 18:03:25 -0800] rev 27122
mergestate: explicitly forget 'dc' conflicts where the deleted side is picked
Once we move change/delete conflicts into the resolve phase, a 'dc' file might
first be resolved by picking the other side, then later be resolved by picking
the local side. For this transition we want to make sure that the file goes
back to not being in the dirstate.
This has no impact on conflicts during the initial merge.
Siddharth Agarwal <sid0@fb.com> [Mon, 23 Nov 2015 19:06:15 -0800] rev 27121
merge.applyupdates: add all actions returned from merge state
At the moment this is a no-op (the only actions defined are 'r', 'a' and 'g'),
but soon we're going to add other sorts of actions to the dictionary returned
from mergestate.actions().
Mathias De Maré <mathias.demare@gmail.com> [Fri, 27 Nov 2015 20:23:23 +0100] rev 27120
identify: refer to log to be able to view full hashes
Mathias De Maré <mathias.demare@gmail.com> [Fri, 27 Nov 2015 20:23:02 +0100] rev 27119
log: add 'hg log' example for full hashes
Mathias De Maré <mathias.demare@gmail.com> [Fri, 02 Oct 2015 07:48:23 +0200] rev 27118
backout: add examples to clarify basic usage
timeless <timeless@mozdev.org> [Wed, 25 Nov 2015 06:10:54 +0000] rev 27117
gpg: rename sigcheck function
I see no reason for the function not to be sigcheck ...
Augie Fackler <augie@google.com> [Tue, 24 Nov 2015 18:40:16 -0500] rev 27116
extensions: properly mark progress as part of core
This should have been done as part of or as an immediate follow-up to
f5c906878a47, but presumably this feature of extensions.py was
forgotten at that time.
Yuya Nishihara <yuya@tcha.org> [Fri, 27 Nov 2015 23:10:48 +0900] rev 27115
test-help: don't use progress extension for the test of argument parsing
The next patch will remove the progress extension completely, so we have
to pick another extension. The schemes is picked arbitrary.
This test was introduced at
69da16b366ad.
timeless <timeless@mozdev.org> [Tue, 24 Nov 2015 22:31:56 +0000] rev 27114
hghave.py: fix matchoutput documentation
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 24 Nov 2015 14:23:46 -0800] rev 27113
dispatch: use versiontuple()
We have a new generic function for this. Use it.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 24 Nov 2015 14:23:51 -0800] rev 27112
util: add versiontuple() for returning parsed version information
We have similar code in dispatch.py. Another consumer is about to be
created, so establish a generic function in an accessible location.
Bryan O'Sullivan <bos@serpentine.com> [Tue, 24 Nov 2015 16:38:54 -0800] rev 27111
extensions: rename _ignore to _builtin, add descriptive comment
It was previously not at all obvious what this was for.
We also change it to a set to avoid iterating over an admittedly
small list repeatedly at startup time.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 22 Nov 2015 14:44:55 -0800] rev 27110
ui: avoid needless casting to a str
In many cases, we don't need to cast to a str because the object will
be cast when it is eventually written.
As part of testing this, I added some code to raise exceptions when a
non-str was passed in and wasn't able to trigger it. i.e. we're already
passing str into this function everywhere, so the casting isn't
necessary.
Gregory Szorc <gregory.szorc@gmail.com> [Tue, 24 Nov 2015 11:23:10 -0800] rev 27109
ui: remove labeled argument from popbuffer
It was moved to pushbuffer and currently does nothing.
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 22 Nov 2015 14:18:42 -0800] rev 27108
color: evaluate labels at write time
Previously, we stored 2-tuples of text and label in a list and then
evaluated the labels when the buffer was popped. After this patch,
we evaluate the labels at write time and do a simple join when the
buffer is popped.
This patch appears to have no impact on performance, despite creating
fewer 2-tuples and having fewer strings hanging around in memory.