Tue, 17 Nov 2015 17:00:54 -0800 mergestate: add a constructor that sets up a clean merge state
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 17:00:54 -0800] rev 26987
mergestate: add a constructor that sets up a clean merge state Eventually, we'll move the read call out of the constructor. This will: - avoid unnecessary reads when we're going to nuke the merge state anyway - avoid raising an exception if there's an unsupported merge record 'clean' seems like a good name for it because I wanted to avoid anything with the word 'new' in it, and 'reset' is more an action performed on a merge state than a way to get a new merge state. Thanks to Martin von Zweigbergk for feedback about naming this.
Tue, 17 Nov 2015 14:11:52 -0800 mergestate: raise structured exception for unsupported merge records
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:11:52 -0800] rev 26986
mergestate: raise structured exception for unsupported merge records We're going to catch this exception in 'hg summary' to print a better error message. This code is pretty untested, so there are no changes to test output. In upcoming patches we're going to test the output more thoroughly.
Tue, 17 Nov 2015 14:10:12 -0800 error: add a structured exception for unsupported merge records
Siddharth Agarwal <sid0@fb.com> [Tue, 17 Nov 2015 14:10:12 -0800] rev 26985
error: add a structured exception for unsupported merge records We're going to use this in summary to print a better error message.
Tue, 17 Nov 2015 13:47:16 -0800 dirstate: back out 502b56a9e897
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:47:16 -0800] rev 26984
dirstate: back out 502b56a9e897 Superseded by the parent of this commit.
Tue, 17 Nov 2015 13:47:14 -0800 osutil: make statfiles check for interrupts periodically
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:47:14 -0800] rev 26983
osutil: make statfiles check for interrupts periodically This is a simpler and faster fix for issue4878 than the contortions performed in 502b56a9e897.
Tue, 17 Nov 2015 13:43:09 -0800 osutil: don't leak on statfiles error
Bryan O'Sullivan <bos@serpentine.com> [Tue, 17 Nov 2015 13:43:09 -0800] rev 26982
osutil: don't leak on statfiles error Found using the power of the mighty eyeball.
Thu, 12 Nov 2015 12:44:15 +0100 histedit: extracts _isdirtywc function
liscju <piotr.listkiewicz@gmail.com> [Thu, 12 Nov 2015 12:44:15 +0100] rev 26981
histedit: extracts _isdirtywc function Checking if working copy is dirty was done in few places, this patch extracts it in _isdirtywc procedure.
Mon, 16 Nov 2015 11:23:32 -0800 node: add 'nullhex', hex-encoded nullid
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:23:32 -0800] rev 26980
node: add 'nullhex', hex-encoded nullid We're going to need this for upcoming changes, because the merge state stores nodes as hex strings.
Mon, 16 Nov 2015 11:45:35 -0800 filemerge: introduce class whose objects represent files not in a context
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:45:35 -0800] rev 26979
filemerge: introduce class whose objects represent files not in a context Most code is going to barf at the return values here (particularly from data and size), so we restrict it to the filemerge code. This is already somewhat supported via: ctx.filectx(f, fileid=nullid) Indeed, for add/add conflicts (ancestor doesn't have the file) we use precisely that. However, that is broken in subtle ways: - The cmp() function in filectx returns False (identical) for such a filectx when compared to a zero-length file. - size() returns 0 rather than some sort of value indicating that the file isn't present. - data() returns '' rather than some sort of value indicating that the file isn't present. Given the relatively niche use of such filectxes, this seems to be the simplest way to fix all these issues.
Mon, 16 Nov 2015 11:27:27 -0800 filectx: add isabsent method
Siddharth Agarwal <sid0@fb.com> [Mon, 16 Nov 2015 11:27:27 -0800] rev 26978
filectx: add isabsent method This will indicate whether this filectx represents a file that is *not* in a changectx. This will be used by merge and filemerge code to know about when a conflict is a change/delete conflict. While this is kind of hacky, it is the least bad of all the alternatives. Other options considered but rejected include: - isinstance(fctx, ...) -- not very Pythonic, doesn't support duck typing - fctx.size() is None -- the 'size()' call on workingfilectxes causes a disk stat - fctx.filenode() == nullid -- the semantics around filenode are incredibly confusing. In particular, for workingfilectxes, filenode() is always None no matter whether the file is present on disk or in either parent. Having different behavior for None versus nullid in the merge code is just asking for pain. Thanks to Pierre-Yves David for early review feedback here.
Fri, 13 Nov 2015 22:37:51 -0800 filectx: allow custom comparators
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 22:37:51 -0800] rev 26977
filectx: allow custom comparators We're going to introduce other sorts of filectxes very soon, and we'd like the cmp method to function properly (i.e. commutatively) for them. The only way to make that happen is for this cmp method to call into that specialized one if that defines a custom comparator.
Fri, 13 Nov 2015 23:01:36 -0800 debugmergestate: print out record type for files
Siddharth Agarwal <sid0@fb.com> [Fri, 13 Nov 2015 23:01:36 -0800] rev 26976
debugmergestate: print out record type for files We're going to add a separate record type for change/delete conflicts soon. We need to make sure they get stored with the correct record type so that older versions of Mercurial correctly abort when they see change/delete records.
Sun, 15 Nov 2015 22:45:20 -0800 merge.applyupdates: don't return early if merge driver's conclude failed
Siddharth Agarwal <sid0@fb.com> [Sun, 15 Nov 2015 22:45:20 -0800] rev 26975
merge.applyupdates: don't return early if merge driver's conclude failed Somewhat silly oversight -- this prevented the progress bar from being reset.
Mon, 16 Nov 2015 17:15:36 -0800 convert: use repo._bookmarks.recordchange instead of repo._bookmarks.write
Laurent Charignon <lcharignon@fb.com> [Mon, 16 Nov 2015 17:15:36 -0800] rev 26974
convert: use repo._bookmarks.recordchange instead of repo._bookmarks.write Before this patch, convert was using repo._bookmarks.write, a deprecated API for saving bookmarks. This patch changes the use of repo._bookmarks.write to repo._bookmarks.recordchange.
Mon, 16 Nov 2015 17:14:15 -0800 convert: indentation change to make the next patch more legible
Laurent Charignon <lcharignon@fb.com> [Mon, 16 Nov 2015 17:14:15 -0800] rev 26973
convert: indentation change to make the next patch more legible We put the code to be indented in the next patch in a "if True:" block to make it easier to review.
Sun, 15 Nov 2015 20:27:27 +0530 strip: renaming local variables
Shubhanshu Agrawal <agrawal.shubhanshu@gmail.com> [Sun, 15 Nov 2015 20:27:27 +0530] rev 26972
strip: renaming local variables Renaming local variables to be more precise, i want to store a different list of bookmarks and it would be hard to understand what marks represents in that change therefore renaming it to repomarks. Renamed bookmarks(module) to bookmarksmod as to free up bookmarks which will be used when pluralizing bookmark.
Wed, 11 Feb 2015 22:22:29 -0800 test-rename-merge2: make selected output less arbitrary
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Feb 2015 22:22:29 -0800] rev 26971
test-rename-merge2: make selected output less arbitrary It's unclear why everything from the first 'updating:' line should be ignored. The arbitrariness makes it confusing that changing the code so e.g. the 'getting 8/f' line is printed later makes it disappear completely from the ouput. The list of 'preserving x for resolve of y' seems convered by the subsequent for loop in the test case. Perhaps it's only copies that are of interests, so let's keep only that part.
Sun, 15 Nov 2015 22:11:23 -0500 test-convert-git: drop a git warning that doesn't occur on Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Nov 2015 22:11:23 -0500] rev 26970
test-convert-git: drop a git warning that doesn't occur on Windows I do see this on Linux with 1.7.7.6, but not on Windows with 1.9.5.msysgit.0. Adding a (?) didn't work to conditionally ignore the line; I'm not sure if the (glob) interferes with that.
Sun, 15 Nov 2015 21:12:13 -0500 tests: fix globs for Windows
Matt Harbison <matt_harbison@yahoo.com> [Sun, 15 Nov 2015 21:12:13 -0500] rev 26969
tests: fix globs for Windows
Sun, 15 Nov 2015 22:58:28 +0100 pull: return 255 value on update failure (issue4948) (BC)
liscju <piotr.listkiewicz@gmail.com> [Sun, 15 Nov 2015 22:58:28 +0100] rev 26968
pull: return 255 value on update failure (issue4948) (BC) Before this patch hg pull -u on UpdateAbort error returned 0 value to the system. This patch fixes this by reraising UpdateAbort with updated error msg.
Wed, 11 Nov 2015 10:19:11 -0800 filemerge: remove leading space from " no tool found..."
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Nov 2015 10:19:11 -0800] rev 26967
filemerge: remove leading space from " no tool found..." I could not find or see a reason for the unusual formatting. The lines following it in the test cases are not indented.
Mon, 09 Nov 2015 22:31:01 +0900 test-encoding: enable fuzz testing of utf8b roundtrip
Yuya Nishihara <yuya@tcha.org> [Mon, 09 Nov 2015 22:31:01 +0900] rev 26966
test-encoding: enable fuzz testing of utf8b roundtrip This test was written by David R. MacIver <david@drmaciver.com> at the London sprint. We can enable it as the bug in utf8b encoder/decoder has been fixed.
Sun, 01 Nov 2015 17:42:03 +0900 import-checker: reset context to verify convention in function scope
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 17:42:03 +0900] rev 26965
import-checker: reset context to verify convention in function scope I got the following error by rewriting hgweb/webcommands.py to use absolute_import. It is false-positive because the import line appears in "help" function: hgweb/webcommands.py:1297: higher-level import should come first: mercurial This patch makes the import checker aware of the function scope and apply rules recursively.
Sun, 01 Nov 2015 00:37:22 +0900 import-checker: allow import of child modules from package root
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Nov 2015 00:37:22 +0900] rev 26964
import-checker: allow import of child modules from package root I got the following error by rewriting hgweb/__init__.py to use absolute_import, which is obviously wrong: Import cycle: mercurial.hgweb.__init__ -> mercurial.hgweb.__init__ "from foo import bar" should not make a cycle if "foo" is a package and if "bar" is a module or a package. On the other hand, it should be detected as a cycle if "bar" is a non-module name. Both cases are doc-tested already, so this patch does not add new doctest.
(0) -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip