Wed, 12 Dec 2018 16:26:58 +0300 manifest: convert a recursive function to iterative one using stacks
Pulkit Goyal <pulkit@yandex-team.ru> [Wed, 12 Dec 2018 16:26:58 +0300] rev 41153
manifest: convert a recursive function to iterative one using stacks I am debugging a memory issue from yesterday where `hg update` goes upto taking 22GB of memory on our internal treemanifest repository. This is an interesting function and I saw memory consumption increasing while this function was running. It's sometimes hard to understand a recursive function and also the profile won't show you actual operations which took time, rather it will show you the function again and again in profile. I am yet to notice any memory consumption decrease with this patch, but I believe this will help like in making this a generator. Differential Revision: https://phab.mercurial-scm.org/D5413
Sun, 23 Dec 2018 02:01:35 +0530 obsutil: fix the issue5686
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 23 Dec 2018 02:01:35 +0530] rev 41152
obsutil: fix the issue5686 While traversing the obsolescence graph to find the successors sets of csets: In its 4th case (read comments of obsutil.successorssets to see all 4 cases) where we know successors sets of all direct successors of CURRENT, we were just missing a condition to filter out the case when a cset is pruned. And without this condition (that this patch added) it was making a whole successor set to [] just because of one pruned marker. For e.g:if following is the successors set of a cset A: A -> [a, b, c] if we prune c, we expect A's successors set to be [a, b] but you would get: A -> [] So this patch make sure that we calculate the right successorsset of csets considering the pruned cset (in split case). Differential Revision: https://phab.mercurial-scm.org/D5474
Sun, 06 Jan 2019 09:34:41 +0530 histedit: add user input to warning message on editing tagged commits
Navaneeth Suresh <navaneeths1998@gmail.com> [Sun, 06 Jan 2019 09:34:41 +0530] rev 41151
histedit: add user input to warning message on editing tagged commits This is a follow-up patch to D5489. Now, the user will be able to input yes/no(default) on the warning message. Initially, it was the sleep of 1s and histedit window opens. Changes were made as suggested by @mharbison72 and @yuja. Differential Revision: https://phab.mercurial-scm.org/D5494
Mon, 24 Dec 2018 16:04:52 +0300 sparse: fix debugrebuilddirsate when narrow extension is enabled
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 24 Dec 2018 16:04:52 +0300] rev 41150
sparse: fix debugrebuilddirsate when narrow extension is enabled dirstate wrapping in narrow extension converts the manifest object to a list. So let's assume we get a list of files in sparse extension. Differential Revision: https://phab.mercurial-scm.org/D5481
Mon, 24 Dec 2018 15:57:54 +0300 tests: show that debugrebuilddirstate is broken with narrow+sparse
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 24 Dec 2018 15:57:54 +0300] rev 41149
tests: show that debugrebuilddirstate is broken with narrow+sparse This adds a test to show that debugrebuildirstate is broken when both narrow and sparse extensions are enabled. Differential Revision: https://phab.mercurial-scm.org/D5480
Mon, 24 Dec 2018 15:30:39 +0300 sparse: don't enable on clone if it was a narrow clone
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 24 Dec 2018 15:30:39 +0300] rev 41148
sparse: don't enable on clone if it was a narrow clone When both sparse and narrow extensions are enabled and we do a narrow clone, sparse enables itself because it reads --include flag and thinks that user is trying to do a sparse clone. This patch changes that behavior, and now if both extensions are enabled and user passes `--narrow`, then the includes and excludes won't be considered as part of sparse profile. Differential Revision: https://phab.mercurial-scm.org/D5479
Mon, 24 Dec 2018 15:01:47 +0300 tests: add tests for narrow clone when both sparse and narrow are enabled
Pulkit Goyal <pulkit@yandex-team.ru> [Mon, 24 Dec 2018 15:01:47 +0300] rev 41147
tests: add tests for narrow clone when both sparse and narrow are enabled This patch adds tests for doing a narrow clone when client has both sparse and narrow enabled. As shown by this patch, we can see that the narrow clone has sparse enabled which we does not want here. Upcoming patch will fix this. Also while writing tests, I realized we don't have a flag to list the current sparse profile. Differential Revision: https://phab.mercurial-scm.org/D5478
Tue, 08 Jan 2019 00:30:30 -0800 progress: check what type of progress bar to use only once per topic
Martin von Zweigbergk <martinvonz@google.com> [Tue, 08 Jan 2019 00:30:30 -0800] rev 41146
progress: check what type of progress bar to use only once per topic This seems to have sped up `hg perfprogress` from 1.78 s to 1.41 s. Differential Revision: https://phab.mercurial-scm.org/D5530
Tue, 08 Jan 2019 00:17:41 -0800 progress: split up _print() method in bar-updating and debug-printing
Martin von Zweigbergk <martinvonz@google.com> [Tue, 08 Jan 2019 00:17:41 -0800] rev 41145
progress: split up _print() method in bar-updating and debug-printing I just thought this was clearer, but it turned out to also simplify the next patch. This seems to have sped up `hg perfprogress` from 1.85 s to 1.78 s. Differential Revision: https://phab.mercurial-scm.org/D5529
Tue, 08 Jan 2019 00:12:08 -0800 progress: move cached debug flag from progress.progbar to scmutil.progress
Martin von Zweigbergk <martinvonz@google.com> [Tue, 08 Jan 2019 00:12:08 -0800] rev 41144
progress: move cached debug flag from progress.progbar to scmutil.progress It's simpler this way. One possible drawback (and a possisble advantage) is that we now check the debug flag once per topic, so processes that generate new topics all the time will still check the flag frequently. Differential Revision: https://phab.mercurial-scm.org/D5528
Mon, 07 Jan 2019 23:55:26 -0800 progress: write ui.progress() in terms of ui.makeprogress()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 07 Jan 2019 23:55:26 -0800] rev 41143
progress: write ui.progress() in terms of ui.makeprogress() I think ui.makeprogress() should be the preferred interface and we should deprecate ui.progress(). All in-core callers already use ui.makeprogress(). Moving the logic to the scmutil.progress() will let us make further improvements. This seems to have sped up `hg perfprogress` from 1.92 s to 1.85 s, perhaps because we now skip the indirection of updating the progress bar via ui.progress(). Differential Revision: https://phab.mercurial-scm.org/D5527
Tue, 08 Jan 2019 22:07:47 -0800 testrunner: avoid capturing a regex group we don't care about
Martin von Zweigbergk <martinvonz@google.com> [Tue, 08 Jan 2019 22:07:47 -0800] rev 41142
testrunner: avoid capturing a regex group we don't care about Differential Revision: https://phab.mercurial-scm.org/D5536
Tue, 08 Jan 2019 14:48:05 -0800 remotefilelog: add newlines to ui.log() invocations
Kyle Lippincott <spectral@google.com> [Tue, 08 Jan 2019 14:48:05 -0800] rev 41141
remotefilelog: add newlines to ui.log() invocations The comment at the top of ui.log() says that the message should be a newline-terminated string. When using the blackbox logger, if the string does not end in a newline, the appearance in the file gets quite messy. This sometimes leaves a string with just the newline as the message, these are logged by the blackbox logger just fine. I don't know what other loggers do when logging structured data and a message that is just the newline. Differential Revision: https://phab.mercurial-scm.org/D5533
Tue, 08 Jan 2019 10:31:10 -0500 xdiff: don't attempt to use fuzzer inputs larger than 100k
Augie Fackler <augie@google.com> [Tue, 08 Jan 2019 10:31:10 -0500] rev 41140
xdiff: don't attempt to use fuzzer inputs larger than 100k This is the recommended approach from [0], and limiting the input was suggested in https://github.com/google/oss-fuzz/issues/2076 when discussing our broken coverage build. 0: https://github.com/google/oss-fuzz/blob/master/docs/new_project_guide.md#custom-libfuzzer-options-for-clusterfuzz Differential Revision: https://phab.mercurial-scm.org/D5525
Tue, 08 Jan 2019 17:52:39 -0800 tests: support passing testcase after .t paths that have path separators
Kyle Lippincott <spectral@google.com> [Tue, 08 Jan 2019 17:52:39 -0800] rev 41139
tests: support passing testcase after .t paths that have path separators This probably could have been implemented by changing the regex above this bit of code, but I wasn't sure if it would end up handling various OSes correctly, so I decided to go with this version instead. Previously: $ tests/run-tests.py tests/test-ssh.t -l running 2 tests using 2 parallel processes .. # Ran 2 tests, 0 skipped, 0 failed. $ tests/run-tests.py tests/test-ssh.t#sshv1 -l running 0 tests using 0 parallel processes # Ran 0 tests, 0 skipped, 0 failed. Now: $ tests/run-tests.py tests/test-ssh.t -l running 2 tests using 2 parallel processes .. # Ran 2 tests, 0 skipped, 0 failed. $ tests/run-tests.py tests/test-ssh.t#sshv1 -l running 1 tests using 1 parallel processes . # Ran 1 tests, 0 skipped, 0 failed. Differential Revision: https://phab.mercurial-scm.org/D5535
Tue, 08 Jan 2019 09:43:24 -0800 progress: document progress.debug config option
Martin von Zweigbergk <martinvonz@google.com> [Tue, 08 Jan 2019 09:43:24 -0800] rev 41138
progress: document progress.debug config option I think it was not spotted by test-check-config.t that we had not documented it because no caller refers to the ui object simply as "ui" (it was either "self.ui" or just "self"). Differential Revision: https://phab.mercurial-scm.org/D5526
Mon, 07 Jan 2019 18:37:50 -0500 tests: migrate test-wireproto-serverreactor.py to our internal CBOR
Augie Fackler <augie@google.com> [Mon, 07 Jan 2019 18:37:50 -0500] rev 41137
tests: migrate test-wireproto-serverreactor.py to our internal CBOR This leaves the only client of thirdparty.cbor as test-cbor.py, which appears to be testing the behavior of cborutil against cbor. We should figure out some appropriate test strings and drop thirdparty.cbor, but that's a mission for another day. Differential Revision: https://phab.mercurial-scm.org/D5522
Mon, 07 Jan 2019 16:34:04 -0500 state: update comment about use of CBOR
Augie Fackler <augie@google.com> [Mon, 07 Jan 2019 16:34:04 -0500] rev 41136
state: update comment about use of CBOR We use our internal cbor library, not the vendored one in thirdparty. Differential Revision: https://phab.mercurial-scm.org/D5518
Wed, 19 Dec 2018 22:24:20 +0900 rust-ancestors: adjust branches and inline comments per previous change
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Dec 2018 22:24:20 +0900] rev 41135
rust-ancestors: adjust branches and inline comments per previous change Now the top-level "if" can be read as both_visit|revs_visit|bases_visit.
Wed, 19 Dec 2018 21:52:40 +0900 rust-ancestors: remove unreachable conditions from missing_ancestors()
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Dec 2018 21:52:40 +0900] rev 41134
rust-ancestors: remove unreachable conditions from missing_ancestors()
Wed, 19 Dec 2018 21:51:08 +0900 rust-ancestors: duplicate loop that visits parents of revs/bases
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Dec 2018 21:51:08 +0900] rev 41133
rust-ancestors: duplicate loop that visits parents of revs/bases As the inline comment says, it can't be cleanly implemented in Rust. It's better to duplicate the code instead of inserting "if"s. The loop will be cleaned up by future commits.
Wed, 19 Dec 2018 21:42:06 +0900 rust-ancestors: adjust indent level to make next change easier to follow
Yuya Nishihara <yuya@tcha.org> [Wed, 19 Dec 2018 21:42:06 +0900] rev 41132
rust-ancestors: adjust indent level to make next change easier to follow
Sun, 06 Jan 2019 11:29:44 +0900 rust-cpython: remove invalid __package__ attribute
Yuya Nishihara <yuya@tcha.org> [Sun, 06 Jan 2019 11:29:44 +0900] rev 41131
rust-cpython: remove invalid __package__ attribute Since mercurial.rustext is a package, its __package__ should be, if set, "mercurial.rustext". AFAIK, we don't have to set this attribute manually as the rustext module will be imported by the system importer. https://stackoverflow.com/a/21233334/10435339
Mon, 07 Jan 2019 19:03:23 -0500 merge with stable
Augie Fackler <augie@google.com> [Mon, 07 Jan 2019 19:03:23 -0500] rev 41130
merge with stable
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 +1000 +3000 +10000 tip