Fri, 22 Jun 2018 00:05:20 +0100 revlog: efficient implementation of 'descendant'
Boris Feld <boris.feld@octobus.net> [Fri, 22 Jun 2018 00:05:20 +0100] rev 38513
revlog: efficient implementation of 'descendant' Iterating over descendants is costly, because there are no "parent -> children" pointers. Walking the other way around is much more efficient, especially on large repositories, where descendant walks can cost seconds. And the other hand, common ancestors code follows links in the right direction and has a compiled implementation. In real life usage, this saved up to 80s during some pull operations, where descendant test happens in extension code.
Thu, 21 Jun 2018 23:56:51 +0100 revlog: refactor out the rev-oriented part of commonancestorheads
Boris Feld <boris.feld@octobus.net> [Thu, 21 Jun 2018 23:56:51 +0100] rev 38512
revlog: refactor out the rev-oriented part of commonancestorheads We plan to use this in a function taking revs as argument. Round trips to nodes seem silly.
Thu, 21 Jun 2018 23:53:43 +0100 revlog: do inclusive descendant testing (API)
Boris Feld <boris.feld@octobus.net> [Thu, 21 Jun 2018 23:53:43 +0100] rev 38511
revlog: do inclusive descendant testing (API) In many other places, a revision is considered a descendant of itself. We update the behavior of `revlog.descendant()` to match this. (for example. `revlog.isancestor` does inclusive testing). No tests break, so it seems safe to do so. This will make it easier to use a more efficient implementation in a later changeset.
Sat, 30 Jun 2018 16:06:05 -0700 manifest: make cachesize a private attribute
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Jun 2018 16:06:05 -0700] rev 38510
manifest: make cachesize a private attribute AFAICT this isn't accessed outside the class. It is a private attribute and its naming should reflect that. Differential Revision: https://phab.mercurial-scm.org/D3868
Sat, 30 Jun 2018 15:51:04 -0700 repository: document that file() return value conforms to interface
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 30 Jun 2018 15:51:04 -0700] rev 38509
repository: document that file() return value conforms to interface Differential Revision: https://phab.mercurial-scm.org/D3867
Sun, 01 Jul 2018 21:40:55 +0900 cleanup: pass in overwrite flag to hg.updaterepo() as named argument
Yuya Nishihara <yuya@tcha.org> [Sun, 01 Jul 2018 21:40:55 +0900] rev 38508
cleanup: pass in overwrite flag to hg.updaterepo() as named argument For clarity.
Sat, 30 Jun 2018 07:23:02 +0530 histedit: use self.stateobj to check whether interrupted histedit exists
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Jun 2018 07:23:02 +0530] rev 38507
histedit: use self.stateobj to check whether interrupted histedit exists self.stateobj is an instance of state.cmdstate() class which has an .exists() function which is used to check whether there exists an interrupted statefile or not. Differential Revision: https://phab.mercurial-scm.org/D3865
Sat, 30 Jun 2018 07:21:21 +0530 histedit: add a stateobj variable to histeditstate class
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Jun 2018 07:21:21 +0530] rev 38506
histedit: add a stateobj variable to histeditstate class The stateobj variable will be an instance of state.cmdstate() class. The stateobj variable will be used in upcoming patches to simplify the code a bit and start using cbor to write state files. Differential Revision: https://phab.mercurial-scm.org/D3864
Sat, 30 Jun 2018 07:10:49 +0530 histedit: factor out logic of processing state data in separate fn
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Jun 2018 07:10:49 +0530] rev 38505
histedit: factor out logic of processing state data in separate fn The new function will serve as the point from where we always get a dictionary of data stored in the statefile and will be helpful in integrating state.cmdstate.read() to write statefile in cbor. Differential Revision: https://phab.mercurial-scm.org/D3863
Sat, 30 Jun 2018 07:05:36 +0530 histedit: use hg.updaterepo() to avoid ui.{push|pop}buffer() hack
Pulkit Goyal <7895pulkit@gmail.com> [Sat, 30 Jun 2018 07:05:36 +0530] rev 38504
histedit: use hg.updaterepo() to avoid ui.{push|pop}buffer() hack In some parts of code, we call hg.update() and surround that with ui.pushbuffer() and ui.popbuffer() to suppress the output returned by hg.update(). We have hg.updaterepo() which does not writes to UI and can be used instead. Differential Revision: https://phab.mercurial-scm.org/D3862
Fri, 29 Jun 2018 14:43:41 -0700 scmutil: fix __enter__ in progress context manager
Danny Hooper <hooper@google.com> [Fri, 29 Jun 2018 14:43:41 -0700] rev 38503
scmutil: fix __enter__ in progress context manager Differential Revision: https://phab.mercurial-scm.org/D3861
Fri, 29 Jun 2018 14:14:35 -0700 httppeer: fix use of uninitialized variable with devel logging
Martin von Zweigbergk <martinvonz@google.com> [Fri, 29 Jun 2018 14:14:35 -0700] rev 38502
httppeer: fix use of uninitialized variable with devel logging If the request fails, "res" was uninitialized. Differential Revision: https://phab.mercurial-scm.org/D3860
Sat, 30 Jun 2018 11:33:05 +0900 rebase: convert opts dict to bytes at once
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Jun 2018 11:33:05 +0900] rev 38501
rebase: convert opts dict to bytes at once
Sat, 30 Jun 2018 11:29:48 +0900 rebase: isolate command options from internal flags
Yuya Nishihara <yuya@tcha.org> [Sat, 30 Jun 2018 11:29:48 +0900] rev 38500
rebase: isolate command options from internal flags I want to get rid of per-function byteskwargs(opts).
Fri, 29 Jun 2018 01:05:08 +0530 rebase: suppress warning thrown when aborting rebase in case of dryrun
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Jun 2018 01:05:08 +0530] rev 38499
rebase: suppress warning thrown when aborting rebase in case of dryrun Before this patch dryrun output contained "rebase aborted" every time we run rebase in dryrun mode and this warning does not sound safe from a user prespective. Differential Revision: https://phab.mercurial-scm.org/D3857
Fri, 29 Jun 2018 00:47:33 +0530 rebase: no need to store backup in case of dryrun
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Jun 2018 00:47:33 +0530] rev 38498
rebase: no need to store backup in case of dryrun While aborting an unfinished rebase in case of dryrun there is no need to store backup for those rebased csets. Differential Revision: https://phab.mercurial-scm.org/D3827
Fri, 29 Jun 2018 00:22:50 +0530 rebase: split _origrebase() for conveniece in dryrun
Sushil khanchi <sushilkhanchi97@gmail.com> [Fri, 29 Jun 2018 00:22:50 +0530] rev 38497
rebase: split _origrebase() for conveniece in dryrun This patch split _origrebase() method by extracting rbsrt part from that to make it easy to implement dryrun in more elegant way than before. Differential Revision: https://phab.mercurial-scm.org/D3856
Thu, 28 Jun 2018 23:57:15 +0530 rebase: extract dryrun as a function
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Jun 2018 23:57:15 +0530] rev 38496
rebase: extract dryrun as a function To avoid more number of indented blocks and make it easier to add additional functionality in dryrun, extracted as a function. Differential Revision: https://phab.mercurial-scm.org/D3855
Thu, 28 Jun 2018 23:36:45 +0530 rebase: add lock to cover whole dryrun process
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 28 Jun 2018 23:36:45 +0530] rev 38495
rebase: add lock to cover whole dryrun process Before this patch it is easy for another hg to interrupt the dryrun. This patch make sure that dryrun will complete without any interruption. Differential Revision: https://phab.mercurial-scm.org/D3854
Tue, 29 May 2018 00:26:20 +0200 merge: add a 'keepconflictparent' argument to graft
Boris Feld <boris.feld@octobus.net> [Tue, 29 May 2018 00:26:20 +0200] rev 38494
merge: add a 'keepconflictparent' argument to graft Before this change, `merge.graft` was always dropping the "grafted" changeset from the parent. This is impractical in case of conflict as the second parent can be useful to help with conflict resolution. We add a new boolean parameter to control this behavior. This will make using `merge.graft` directly in shelve practicable. Differential Revision: https://phab.mercurial-scm.org/D3692
Thu, 28 Jun 2018 18:07:22 -0700 unlinkpath: make empty directory removal optional (issue5901) (issue5826)
Kyle Lippincott <spectral@google.com> [Thu, 28 Jun 2018 18:07:22 -0700] rev 38493
unlinkpath: make empty directory removal optional (issue5901) (issue5826) There are known cases where performing operations such as rebase from a directory that is newly created can fail or at least lead to being in a directory handle that no longer exists. This is even reproducible by just doing something as simple as: cd foo; hg rm * The behavior is different if you use `hg addremove`, the directory is not removed until we attempt to go back to the node after committing it: cd foo; rm *; hg addremove; hg ci -m'bye foo'; hg co .^; hg co tip Differential Revision: https://phab.mercurial-scm.org/D3859
Thu, 28 Jun 2018 21:24:47 +0530 py3: convert opts keys to bytes using pycompat.byteskwargs()
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 28 Jun 2018 21:24:47 +0530] rev 38492
py3: convert opts keys to bytes using pycompat.byteskwargs() This fixes the py3 build broken due to 56b2074114b19e12abd9cd4c378d58b702232705. Differential Revision: https://phab.mercurial-scm.org/D3853
Thu, 28 Jun 2018 22:23:08 -0400 procutil: add a shim for translating shell commands to native commands
Matt Harbison <matt_harbison@yahoo.com> [Thu, 28 Jun 2018 22:23:08 -0400] rev 38491
procutil: add a shim for translating shell commands to native commands
Sat, 16 Jun 2018 23:26:40 +0900 revset: move lookup of first ancestor() candidate out of the loop
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 23:26:40 +0900] rev 38490
revset: move lookup of first ancestor() candidate out of the loop
Sat, 16 Jun 2018 23:21:47 +0900 revset: leverage orset() to flatten ancestor() arguments
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 23:21:47 +0900] rev 38489
revset: leverage orset() to flatten ancestor() arguments This also makes orset() accept an empty argument because nullary ancestor() call is valid. That's not the case for orset(), but should be okay.
Sat, 16 Jun 2018 23:12:41 +0900 revset: remove orphan i18n comment from ancestor()
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 23:12:41 +0900] rev 38488
revset: remove orphan i18n comment from ancestor()
Thu, 28 Jun 2018 23:21:55 +0530 grep: deprecates `--all` flag
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Thu, 28 Jun 2018 23:21:55 +0530] rev 38487
grep: deprecates `--all` flag As the name "all" is a misnomer for an option that searches on diffs of revisions, we are moving to diff flag from all, deprecating it in the process. Differential Revision: https://phab.mercurial-scm.org/D3825
Tue, 26 Jun 2018 10:02:01 -0700 namespaces: let namespaces override singlenode() definition
Martin von Zweigbergk <martinvonz@google.com> [Tue, 26 Jun 2018 10:02:01 -0700] rev 38486
namespaces: let namespaces override singlenode() definition Some namespaces have multiple nodes per name (meaning that their namemap() returns multiple nodes). One such namespace is the "topics" namespace (from the evolve repo). We also have our own internal namespace at Google (for review units) that has multiple nodes per name. These namespaces may not want to use the default "pick highest revnum" resolution that we currently use when resolving a name to a single node. As an example, they may decide that `hg co <name>` should check out a commit that's last in some sense even if an earlier commit had just been amended and thus had a higher revnum [1]. This patch gives the namespace the option to continue to return multiple nodes and to override how the best node is picked. Allowing namespaces to override that may also be useful as an optimization (it may be cheaper for the namespace to find just that node). I have been arguing (in D3715) for using all the nodes returned from namemap() when resolving the symbol to a revset, so e.g. `hg log -r stable` would resolve to *all* nodes on stable, not just the one with the highest revnum (except that I don't actually think we should change it for the branch namespace because of BC). Most people seem opposed to that. If we decide not to do it, I think we can deprecate the namemap() function in favor of the new singlenode() (I find it weird to have namespaces, like the branch namespace, where namemap() isn't nodemap()'s inverse). I therefore think this patch makes sense regardless of what we decide on that issue. [1] Actually, even the branch namespace would have wanted to override singlenode() if it had supported multiple nodes. That's because closes branch heads are mostly ignored, so "hg co default" will not check out the highest-revnum node if that's a closed head. Differential Revision: https://phab.mercurial-scm.org/D3852
Wed, 27 Jun 2018 12:24:21 +0530 rebase: refactor dryrun implementation
Sushil khanchi <sushilkhanchi97@gmail.com> [Wed, 27 Jun 2018 12:24:21 +0530] rev 38485
rebase: refactor dryrun implementation This patch refactor dry-run code to make it easy to add additional functionality in dryrun. Otherwise we had to add every functionality through _origrebase() which does not seem a good implementation. Differential Revision: https://phab.mercurial-scm.org/D3849
Sun, 02 Jul 2017 00:32:09 -0400 hooks: allow Unix style environment variables on external Windows hooks
Matt Harbison <matt_harbison@yahoo.com> [Sun, 02 Jul 2017 00:32:09 -0400] rev 38484
hooks: allow Unix style environment variables on external Windows hooks This will help making common hooks between Windows and non-Windows platforms. Having to build the shellenviron dict here and in procutil.system() is a bit unfortunate, but the only other option is to fix up the command inside procutil.system(). It seems more important that the note about the hook being run reflects what is actually run. The patch from last summer added the hooks on the command line, but it looks like HG_ARGS has since learned about --config args, and the output was just confusing. Therefore, it's now loaded from a file in the histedit test for clarity.
Sun, 24 Jun 2018 01:13:09 -0400 windows: add a method to convert Unix style command lines to Windows style
Matt Harbison <matt_harbison@yahoo.com> [Sun, 24 Jun 2018 01:13:09 -0400] rev 38483
windows: add a method to convert Unix style command lines to Windows style This started as a copy/paste of `os.path.expandvars()`, but limited to a given dictionary of variables, converting `foo = foo + bar` to `foo += bar`, and adding 'b' string prefixes. Then code was added to make sure that a value being substituted in wouldn't itself be expanded by cmd.exe. But that left inconsistent results between `$var1` and `%var1%` when its value was '%foo%'- since neither were touched, `$var1` wouldn't expand but `%var1%` would. So instead, this just converts the Unix style to Windows style (if the variable exists, because Windows will leave `%missing%` as-is), and lets cmd.exe do its thing. I then dropped the %% -> % conversion (because Windows doesn't do this), and added the ability to escape the '$' with '\'. The escape character is dropped, for consistency with shell handling. After everything seemed stable and working, running the whole test suite flagged a problem near the end of test-bookmarks.t:1069. The problem is cmd.exe won't pass empty variables to its child, so defined but empty variables are now skipped. I can't think of anything better, and it seems like a pre-existing violation of the documentation, which calls out that HG_OLDNODE is empty on bookmark creation. Future additions could potentially be replacing strong quotes with double quotes (cmd.exe doesn't know what to do with the former), escaping a double quote, and some tilde expansion via os.path.expanduser(). I've got some doubts about replacing the strong quotes in case sh.exe is run, but it seems like the right thing to do the vast majority of the time. The original form of this was discussed about a year ago[1]. [1] https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-July/100735.html
Thu, 28 Jun 2018 10:50:53 +0800 hgweb: add archive entries to graph page
Anton Shestakov <av6@dwimlabs.net> [Thu, 28 Jun 2018 10:50:53 +0800] rev 38482
hgweb: add archive entries to graph page Changelog page has them, so it makes sense to add them to graph page too.
Thu, 28 Jun 2018 07:41:08 +0800 hgweb: add z-index for search field tooltip
Anton Shestakov <av6@dwimlabs.net> [Thu, 28 Jun 2018 07:41:08 +0800] rev 38481
hgweb: add z-index for search field tooltip On graph page, search field tooltip sometimes goes down to the graph area, where it used to be covered by foreground element of graph entries (.fg) because they have z-index: 10. To prevent the tooltip from being covered, z-index: 15 is enough.
Wed, 27 Jun 2018 07:19:30 -0700 tests: pass "rev" argument to commands.update() as string
Martin von Zweigbergk <martinvonz@google.com> [Wed, 27 Jun 2018 07:19:30 -0700] rev 38480
tests: pass "rev" argument to commands.update() as string commands.update() normally gets its "rev" argument as a string, but test-basic.t was passing an integer. That happened to work, but we shouldn't rely on it. Differential Revision: https://phab.mercurial-scm.org/D3851
Wed, 27 Jun 2018 23:39:41 +0900 revset: fix heads() order to always follow the input set (BC)
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jun 2018 23:39:41 +0900] rev 38479
revset: fix heads() order to always follow the input set (BC) An argument expression should never affect the order of the result set. That's the rule of the revset predicates.
Wed, 27 Jun 2018 23:33:57 +0900 test-revset: show that order of heads() can be wrong
Yuya Nishihara <yuya@tcha.org> [Wed, 27 Jun 2018 23:33:57 +0900] rev 38478
test-revset: show that order of heads() can be wrong
Wed, 27 Jun 2018 10:21:07 -0400 stringutil: update list of re-special characters to include &~
Augie Fackler <augie@google.com> [Wed, 27 Jun 2018 10:21:07 -0400] rev 38477
stringutil: update list of re-special characters to include &~ I missed this because I was looking at the change that refactored re.escape, and these characters were added in https://github.com/python/cpython/commit/05cb728d68a278d11466f9a6c8258d914135c96c. Differential Revision: https://phab.mercurial-scm.org/D3850
Tue, 26 Jun 2018 11:38:58 -0400 tests: fix up some lax escaping in test-template-basic.t
Augie Fackler <augie@google.com> [Tue, 26 Jun 2018 11:38:58 -0400] rev 38476
tests: fix up some lax escaping in test-template-basic.t These misfired escapes turn into hard errors in Python 3.7, and I'd really rather we not work around it. We should *probably* try and find a way to proactively warn users about invalid escape sequences. There's one more failure of this type in this file on Python 3.7, but I can't figure out the issue. It'll need to be corrected in a follow-up. Differential Revision: https://phab.mercurial-scm.org/D3843
Tue, 26 Jun 2018 10:36:23 -0400 cleanup: migrate from re.escape to stringutil.reescape
Augie Fackler <augie@google.com> [Tue, 26 Jun 2018 10:36:23 -0400] rev 38475
cleanup: migrate from re.escape to stringutil.reescape This has consistent behavior on Python 2.7, 3.6, and 3.7 and has the benefit of probably being a little faster. Test output changes are largely because / used to be pointlessly escaped. Differential Revision: https://phab.mercurial-scm.org/D3842
Tue, 26 Jun 2018 10:33:52 -0400 stringutil: add a new function to do minimal regex escaping
Augie Fackler <augie@google.com> [Tue, 26 Jun 2018 10:33:52 -0400] rev 38474
stringutil: add a new function to do minimal regex escaping Per https://bugs.python.org/issue29995, re.escape() used to over-escape regular expression strings, but in Python 3.7 that's been fixed, which also improved the performance of re.escape(). Since it's both an output change for us *and* a perfomance win, let's just effectively backport the new behavior to hg on all Python versions. Differential Revision: https://phab.mercurial-scm.org/D3841
Tue, 26 Jun 2018 16:14:02 +0530 graft: add no-commit mode (issue5631)
Sushil khanchi <sushilkhanchi97@gmail.com> [Tue, 26 Jun 2018 16:14:02 +0530] rev 38473
graft: add no-commit mode (issue5631) This patch adds a new flag --no-commit in graft command. This feature grafts the changes but do not create commits for those changes, grafted changes will be added in the working directory. Also added tests to reflect the expected behavior. Differential Revision: https://phab.mercurial-scm.org/D2409
Tue, 26 Jun 2018 02:05:11 +0530 patchbomb: use email.mime.base instead of email.MIMEBase
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 26 Jun 2018 02:05:11 +0530] rev 38472
patchbomb: use email.mime.base instead of email.MIMEBase The later was removed on Python 3. On python 2: >>> email.MIMEBase.MIMEBase is email.mime.base.MIMEBase True Differential Revision: https://phab.mercurial-scm.org/D3836
Tue, 26 Jun 2018 02:04:17 +0530 patchbomb: use email.mime.multipart instead of email.MIMEMultipart
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 26 Jun 2018 02:04:17 +0530] rev 38471
patchbomb: use email.mime.multipart instead of email.MIMEMultipart The later was removed in Python 3. On python 2: >>> email.MIMEMultipart.MIMEMultipart is email.mime.multipart.MIMEMultipart True Differential Revision: https://phab.mercurial-scm.org/D3835
Tue, 26 Jun 2018 01:08:47 +0530 py3: add b'' prefixes in tests/test-bundle2-pushback.t
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 26 Jun 2018 01:08:47 +0530] rev 38470
py3: add b'' prefixes in tests/test-bundle2-pushback.t This makes the test run on Python 3. # skip-blame because just b'' prefixes. Differential Revision: https://phab.mercurial-scm.org/D3834
Tue, 26 Jun 2018 00:37:02 +0530 py3: make tests/test-diff-antipatience.t work with python 3
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 26 Jun 2018 00:37:02 +0530] rev 38469
py3: make tests/test-diff-antipatience.t work with python 3 On python3, if we do list(b'abcd'), we get [97, 98, 99, 100]. So this patch does the list() operation on unicodes and then convert things to bytes. This also adds `and None` to suppress return values of .write() calls. Differential Revision: https://phab.mercurial-scm.org/D3833
Mon, 25 Jun 2018 11:04:17 -0700 terse: pass "clean" and "unknown" booleans by name for clarity
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Jun 2018 11:04:17 -0700] rev 38468
terse: pass "clean" and "unknown" booleans by name for clarity Differential Revision: https://phab.mercurial-scm.org/D3838
Mon, 25 Jun 2018 11:01:11 -0700 terse: add tests of running from subdirectory
Martin von Zweigbergk <martinvonz@google.com> [Mon, 25 Jun 2018 11:01:11 -0700] rev 38467
terse: add tests of running from subdirectory I also included comments explaining what I think the output should be (discussion started on D3628). Differential Revision: https://phab.mercurial-scm.org/D3837
Sat, 23 Jun 2018 19:23:53 +0900 convert: don't pass --no-files to "darcs show repo" command
Yuya Nishihara <yuya@tcha.org> [Sat, 23 Jun 2018 19:23:53 +0900] rev 38466
convert: don't pass --no-files to "darcs show repo" command The test fails with darcs 2.14.0 because --no-files is no longer supported. It was removed at the patch 97973a52bf496657558412562d6fad2ee651b1e0, which says "show repo: removed --files option, removed manual flags parsing." As far as I can tell, --no-files was specified just for optimization, so old darcs should work without it.
Tue, 29 May 2018 00:15:44 +0200 shelve: stop testing missing rebase state file
Boris Feld <boris.feld@octobus.net> [Tue, 29 May 2018 00:15:44 +0200] rev 38465
shelve: stop testing missing rebase state file We no longer use the file. Neither during rebase not during continue. Differential Revision: https://phab.mercurial-scm.org/D3691
Tue, 29 May 2018 00:12:35 +0200 shelve: actually test corrupted shelve state
Boris Feld <boris.feld@octobus.net> [Tue, 29 May 2018 00:12:35 +0200] rev 38464
shelve: actually test corrupted shelve state The test was previous moving the corrupted shelve state file as an histedit state file. Differential Revision: https://phab.mercurial-scm.org/D3690
Tue, 29 May 2018 00:13:48 +0200 shelve: directly handle `--continue`
Boris Feld <boris.feld@octobus.net> [Tue, 29 May 2018 00:13:48 +0200] rev 38463
shelve: directly handle `--continue` Shelve is currently sub-contracting some of its work to the rebase extension. In order to make shelve more independent and flexible we would like shelve to handle the parent alignment directly. This changeset takes on the next step, handling the abort process. Same as for --abort. It turns out we have all the necessary bits in the `shelvestate` file. So we do not need anything from the interrupted rebase. Differential Revision: https://phab.mercurial-scm.org/D3689
Mon, 28 May 2018 18:15:21 +0200 shelve: directly handle the abort process
Boris Feld <boris.feld@octobus.net> [Mon, 28 May 2018 18:15:21 +0200] rev 38462
shelve: directly handle the abort process Shelve is currently sub-contracting some of its work to the rebase extension. In order to make shelve more independent and flexible we would like shelve to handle the parent alignment directly. This change starts with the simplest bits, handling the abort process. It turns out we have all the necessary bits in the `shelvestate` file. So we do not need anything from the interrupted rebase. As a nice side effect, a test about missing `shelverebasestate` state file now behave better. Differential Revision: https://phab.mercurial-scm.org/D3688
Mon, 28 May 2018 20:51:20 +0200 shelve: check the actual shelvestate in morestatus
Boris Feld <boris.feld@octobus.net> [Mon, 28 May 2018 20:51:20 +0200] rev 38461
shelve: check the actual shelvestate in morestatus The rebasestate is a lower level implementation details that we are trying to remove. Differential Revision: https://phab.mercurial-scm.org/D3687
Sat, 12 May 2018 18:44:03 -0700 packaging: dynamically define make targets
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 18:44:03 -0700] rev 38460
packaging: dynamically define make targets We currently have make boilerplate for each instance of a distro's release. This is redundant, annoying to maintain, and prone to errors. This commit defines variables holding available releases for various distros. We then iterate through the list and dynamically define make targets. Differential Revision: https://phab.mercurial-scm.org/D3761
Sat, 12 May 2018 14:41:48 -0700 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 14:41:48 -0700] rev 38459
packaging: don't write files for templatized Dockerfiles Now that Docker image building is implemented in Python and we can perform template substitution in memory, we don't need to write out produced Dockerfiles to disk. Differential Revision: https://phab.mercurial-scm.org/D3760
Sat, 12 May 2018 17:03:47 -0700 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 17:03:47 -0700] rev 38458
packaging: replace dockerlib.sh with a Python script I want to do some more advanced things with Docker in upcoming commits. Trying to do that with shell scripts will be a bit too painful for my liking. Implementing things in Python will be vastly simpler in the long run. This commit essentially ports dockerlib.sh to a Python script. dockerdeb and dockerrpm have been ported to use the new hg-docker script. hg-docker requires Python 3. I've only tested on Python 3.5. Unlike the local packaging scripts which may need to run on old distros, the Docker packaging scripts don't have these constraints. So I think it is acceptable to require Python 3.5. As part of the transition, the Docker image tags changed slightly. I don't think that's a big deal: the Docker image names are effectively arbitrary and are a means to an end to achieve running commands in Docker containers. The code for resolving the Dockerfile content allows substituting values passed as arguments. This will be used in a subsequent commit. Differential Revision: https://phab.mercurial-scm.org/D3759
Sat, 12 May 2018 15:51:37 -0700 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com> [Sat, 12 May 2018 15:51:37 -0700] rev 38457
packaging: consistently create build user in Dockerfiles Previously, dockerlib.sh appended some commands to create a "build" user in each Docker image. The resulting Docker images could be inconsistent depending on the execution environment and base image. With this change, we explicitly create our custom user and group as the first action in each Dockerfile. The user always has user:group 1000:1000 and all built images are consistent. We also create a home directory for the user under /build. This directory is currently ignored. As part of this, we stop setting the DBUILDUSER variable in dockerlib.sh and instead set it in the respective scripts that call it. This is in preparation for further refactoring of dockerlib.sh. Differential Revision: https://phab.mercurial-scm.org/D3758
Fri, 15 Jun 2018 00:50:48 +0530 scmutil: move construction of instability count message to separate fn
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 00:50:48 +0530] rev 38456
scmutil: move construction of instability count message to separate fn When the commad we are running, introduces new instabilities, we show a message like `5 new orphan changesets`, `2 new content-divergent changesets`, `1 new phase-divergent changesets` etc which is very nice. Now taking a step ahead, we want users to show how to fix them too. Something like: `5 new orphan changesets (run 'hg evolve' to resolve/stabilize them)` `2 new content-divergent changesets (run 'hg evolve --content-divergent' to resolve them)` and maybe telling user a way to understand more about those new instabilities like `hg evolve --list` or `hg log -r 'orphan()'` something like that. The idea came from issue5855 which I want to fix because fixing that will result in a nice UI. Taking the construction logic out will allow extensions like evolve (maybe rebase too) to wrap that and add information about how to resolve and how to understand the instability more. Differential Revision: https://phab.mercurial-scm.org/D3734
Mon, 25 Jun 2018 16:36:14 +0200 procutil: use unbuffered stdout on Windows stable 4.6.2
Sune Foldager <cryo@cyanite.org> [Mon, 25 Jun 2018 16:36:14 +0200] rev 38455
procutil: use unbuffered stdout on Windows Windows doesn't support line buffering, treating it as fully buffered. This causes output of slow commands to stutter. We use unbuffered instead.
Mon, 25 Jun 2018 16:36:14 +0200 procutil: use unbuffered stdout on Windows
Sune Foldager <cryo@cyanite.org> [Mon, 25 Jun 2018 16:36:14 +0200] rev 38454
procutil: use unbuffered stdout on Windows Windows doesn't support line buffering, treating it as fully buffered. This causes output of slow commands to stutter. We use unbuffered instead.
Fri, 25 May 2018 18:16:38 +0530 graft: introduce --abort flag to abort interrupted graft
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 25 May 2018 18:16:38 +0530] rev 38453
graft: introduce --abort flag to abort interrupted graft This patch introduces a new --abort flag to `hg graft` command which aborts an interrupted graft and rollbacks to the state before graft. The behavior when some of grafted changeset get's published while interrupted graft or we have new descendants on grafted changesets is same as that of rebase which is warn the user, don't strip and abort the abort the graft. Tests are added for the new flag. .. feature:: `hg graft` now has a `--abort` flag which aborts the interrupted graft and rollbacks to state before the graft. Differential Revision: https://phab.mercurial-scm.org/D3754
Fri, 15 Jun 2018 02:46:34 +0530 graft: move `if continue` to elif and add new line
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 02:46:34 +0530] rev 38452
graft: move `if continue` to elif and add new line This will make upcoming patch where we introduce a new elif for the abort case more readable. Also added a new line before the if-else starts. Differential Revision: https://phab.mercurial-scm.org/D3752
Fri, 15 Jun 2018 02:34:27 +0530 graft: start storing new nodes formed in graftstate
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 15 Jun 2018 02:34:27 +0530] rev 38451
graft: start storing new nodes formed in graftstate This patch starts storing the new nodes formed during the ongoing graft operation in the graftstate. We need the list of new nodes formed while implmenting `graft --abort` which will strip out the new nodes. Differential Revision: https://phab.mercurial-scm.org/D3751
Thu, 14 Jun 2018 23:22:51 +0900 show: use filter() function to strip "tip" tag
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 23:22:51 +0900] rev 38450
show: use filter() function to strip "tip" tag Before, an empty tag "" was inserted in place of "tip", resulting in double spaces.
Thu, 14 Jun 2018 23:10:14 +0900 templater: extend filter() to accept template expression for emptiness test
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 23:10:14 +0900] rev 38449
templater: extend filter() to accept template expression for emptiness test This utilizes the pass-by-name nature of template arguments.
Thu, 14 Jun 2018 22:33:26 +0900 templater: introduce filter() function to remove empty items from list
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 22:33:26 +0900] rev 38448
templater: introduce filter() function to remove empty items from list The primary use case is to filter out "tip" from a list of tags.
Sun, 17 Jun 2018 16:10:38 +0900 templater: fix truth testing of integer 0 taken from a list/dict
Yuya Nishihara <yuya@tcha.org> [Sun, 17 Jun 2018 16:10:38 +0900] rev 38447
templater: fix truth testing of integer 0 taken from a list/dict Broken at f9c426385853. bool(python_value) shouldn't be used here since an integer 0 has to be truthy for backward compatibility.
Mon, 18 Jun 2018 21:58:04 +0900 formatter: look for template symbols from the associated name
Yuya Nishihara <yuya@tcha.org> [Mon, 18 Jun 2018 21:58:04 +0900] rev 38446
formatter: look for template symbols from the associated name Otherwise symbolsused() would fail if a named template is specified with -T.
Mon, 25 Jun 2018 15:54:56 +0530 py3: add b'' prefixes in tests/test-obsolete-divergent.t
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Jun 2018 15:54:56 +0530] rev 38445
py3: add b'' prefixes in tests/test-obsolete-divergent.t This makes the test pass on Python 3. # skip-blame because just b'' prefixes. Differential Revision: https://phab.mercurial-scm.org/D3832
Mon, 25 Jun 2018 01:07:23 +0530 py3: use stringutil.pprint() to print NoneType
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 25 Jun 2018 01:07:23 +0530] rev 38444
py3: use stringutil.pprint() to print NoneType Before this patch, when running test-debugcommands.t, we get a TypeError because NoneType can't be converted into bytes. This patch uses stringutil.pprint() to print the ui._colormode. We are now close to getting test-debugcommands.t passing on Python 3. Differential Revision: https://phab.mercurial-scm.org/D3831
Sat, 23 Jun 2018 08:59:18 +0530 rebase: make dry-run return 1 or 0 according to result
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 23 Jun 2018 08:59:18 +0530] rev 38443
rebase: make dry-run return 1 or 0 according to result In dry-run mode, if there is no conflict return 0, if any then return 1 Differential Revision: https://phab.mercurial-scm.org/D3829
Fri, 24 Mar 2017 00:33:35 -0400 relink: use context manager for lock management
Matt Harbison <matt_harbison@yahoo.com> [Fri, 24 Mar 2017 00:33:35 -0400] rev 38442
relink: use context manager for lock management
Fri, 24 Mar 2017 00:32:31 -0400 censor: use context manager for lock management
Matt Harbison <matt_harbison@yahoo.com> [Fri, 24 Mar 2017 00:32:31 -0400] rev 38441
censor: use context manager for lock management
Thu, 21 Jun 2018 22:33:42 +0900 templater: remove redundant member variables from templater class
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:33:42 +0900] rev 38440
templater: remove redundant member variables from templater class We no longer need them since the engine is instantiated in __init__().
Thu, 21 Jun 2018 22:27:30 +0900 templater: resurrect cache of engine instance
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:27:30 +0900] rev 38439
templater: resurrect cache of engine instance The engine-level cache was effectively disabled at 48289eafb37d "templater: drop extension point of engine classes (API)" by mistake, which made template rendering quite slow. Spotted by Martin von Zweigbergk.
Thu, 21 Jun 2018 22:23:43 +0900 templater: extract template loader to separate class
Yuya Nishihara <yuya@tcha.org> [Thu, 21 Jun 2018 22:23:43 +0900] rev 38438
templater: extract template loader to separate class This avoids reference cycle in the subsequent patch: templater -> _proc -> templater.load -> templater The templater class will be a thin wrapper around the loader and the engine.
Sat, 16 Jun 2018 14:34:35 +0900 tests: rename and document test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:34:35 +0900] rev 38437
tests: rename and document test-command-template.t So that we can specify templater tests as test-template-*. (original) $ wc -l test-command-template.t test-template-* 5041 test-command-template.t 23 test-template-filters.t 5064 total (at this patch) $ wc -l test-template-* 1088 test-template-basic.t 1376 test-template-functions.t 1195 test-template-keywords.t 1760 test-template-map.t 5419 total
Sat, 16 Jun 2018 14:14:52 +0900 tests: extract test-template-keywords.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:14:52 +0900] rev 38436
tests: extract test-template-keywords.t from test-command-template.t
Sat, 16 Jun 2018 14:10:12 +0900 tests: fold test-template-filters.t into test-template-functions.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 14:10:12 +0900] rev 38435
tests: fold test-template-filters.t into test-template-functions.t
Sat, 16 Jun 2018 13:17:11 +0900 tests: extract test-template-functions.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 13:17:11 +0900] rev 38434
tests: extract test-template-functions.t from test-command-template.t I decided to not split filters and functions into two test files since we sometimes reimplement a filter as a function.
Sat, 16 Jun 2018 12:37:43 +0900 tests: extract test-template-map.t from test-command-template.t
Yuya Nishihara <yuya@tcha.org> [Sat, 16 Jun 2018 12:37:43 +0900] rev 38433
tests: extract test-template-map.t from test-command-template.t test-command-template.t is one of the slowest tests. Let's split it into 4 files of manageable size.
Thu, 21 Jun 2018 08:22:11 -0700 cleanupnodes: preserve phase of parents of new nodes
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Jun 2018 08:22:11 -0700] rev 38432
cleanupnodes: preserve phase of parents of new nodes As Yuya noted in the review of D3818, passing in targetphase=phases.draft would result in advancing the phase boundary of a secret-phase parent. We never pass targetphase=phases.draft so far, but it's a bug waiting to happen. I tried to refactor it so max(parentphase, X) happened in one place, but I couldn't come up with good variables names and I ended up with a "newphase = max(newphase, parentphase)" line, which made the whole block not look any better to me. Differential Revision: https://phab.mercurial-scm.org/D3824
Sat, 16 Jun 2018 18:36:25 +0530 rebase: delete the comment which was not following "do not eat my data"
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 16 Jun 2018 18:36:25 +0530] rev 38431
rebase: delete the comment which was not following "do not eat my data" Differential Revision: https://phab.mercurial-scm.org/D3756
Fri, 08 Jun 2018 22:16:23 +0900 tags: unblock log-like template keywords and functions
Yuya Nishihara <yuya@tcha.org> [Fri, 08 Jun 2018 22:16:23 +0900] rev 38430
tags: unblock log-like template keywords and functions It checks if ctx will be used in template since loading ctx per revision could take extra 10-100msec in total depending on the number of tags.
Fri, 08 Jun 2018 22:10:22 +0900 formatter: provide hint of context keys required by template
Yuya Nishihara <yuya@tcha.org> [Fri, 08 Jun 2018 22:10:22 +0900] rev 38429
formatter: provide hint of context keys required by template This allows us to create ctx objects only if necessary. I tried another idea which is to populate ctx from 'repo' and 'node' value on demand. It worked, but seemed unnecessarily complicated. So I chose a simpler one. The datafields argument is a space-separated string for consistency with fm.write() API.
Thu, 14 Jun 2018 21:18:58 +0900 templatefuncs: declare resource requirements for future use
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 21:18:58 +0900] rev 38428
templatefuncs: declare resource requirements for future use
Thu, 14 Jun 2018 21:17:56 +0900 templatefuncs: minimize resource requirements
Yuya Nishihara <yuya@tcha.org> [Thu, 14 Jun 2018 21:17:56 +0900] rev 38427
templatefuncs: minimize resource requirements
Thu, 21 Jun 2018 09:32:31 -0700 merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 21 Jun 2018 09:32:31 -0700] rev 38426
merge with stable
Tue, 19 Jun 2018 22:45:52 +0900 merge: do not fill manifest of committed revision with pseudo node (issue5526) stable
Yuya Nishihara <yuya@tcha.org> [Tue, 19 Jun 2018 22:45:52 +0900] rev 38425
merge: do not fill manifest of committed revision with pseudo node (issue5526) Since a75d24539aba "convert: fix convert dropping p2 contents during filemap merge", wctx is not always a committablectx because the convert extension passes in repo[n] as wctx. If wctx is a committed changeset, its manifest dict shouldn't be mutated reflecting to the working directory.
Tue, 19 Jun 2018 13:49:06 -0700 split: preserve phase of commit that is being split
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 13:49:06 -0700] rev 38424
split: preserve phase of commit that is being split With this change, hg split will preserve the phase of the commit that is being split, ignoring the phases.new-commit setting. Previously, we would use whatever phases.new-commit was set to (unless our parent was secret, then we would be secret even if phases.new-commit=draft). Now, splitting a draft commit with phases.new-commit=secret does not cause the new commits to become secret, and splitting a secret commit with phases.new-commit=draft and a draft parent does not cause the new commits to become draft. Test cases and commit message taken from Kyle Lippincott's D2016 (thanks!). Differential Revision: https://phab.mercurial-scm.org/D3819
Tue, 19 Jun 2018 11:07:40 -0700 scmutil: make cleanupnodes optionally also fix the phase
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:40 -0700] rev 38423
scmutil: make cleanupnodes optionally also fix the phase We have had multiple bugs where the phase wasn't correctly carried forward to a rewritten changeset (for example: phabricator, split, evolve, fix). Handling the phase update in cleanupnodes() makes it less likely to happen again, especially once we have made it fix the phase by default (perhaps in the next release cycle). This patch also updates all applicable callers so we get some testing of it. Note that rebase and histedit can't be fixed yet because they call cleanupnodes() only at the end and the phase may have been changed by the user when the rebase/histedit was interrupted (due to merge conflicts). I think we should make them write one commit at a time (as it already does), along with associated obsmarkers, bookmark moves, etc. When that's done, we can switch them over to cleanupnodes(). Differential Revision: https://phab.mercurial-scm.org/D3818
Tue, 19 Jun 2018 11:07:23 -0700 tests: add test of uncommit with default phase as secret
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 11:07:23 -0700] rev 38422
tests: add test of uncommit with default phase as secret We didn't seem to have any test checking that uncommitting a draft commit with phase.new-phase=secret preserved the draft phase. Differential Revision: https://phab.mercurial-scm.org/D3817
Sun, 17 Jun 2018 15:52:08 +0530 grep: add --diff flag
Sangeet Kumar Mishra <mail2sangeetmishra@gmail.com> [Sun, 17 Jun 2018 15:52:08 +0530] rev 38421
grep: add --diff flag Adds a diff flag, which works exactly same as all, in fact since --all searches diffs, there diff is a better name for it. The all flag is still here for backward compatibility reasons. Some major tests for all has been picked and added for diff. Differential Revision: https://phab.mercurial-scm.org/D3763
Wed, 20 Jun 2018 09:27:30 -0700 fix: include cleanupnodes() in transaction
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Jun 2018 09:27:30 -0700] rev 38420
fix: include cleanupnodes() in transaction As pointed out by Yuya, we need a transaction to make sure the state before the call to cleanupnodes() is not observable. Differential Revision: https://phab.mercurial-scm.org/D3823
Tue, 19 Jun 2018 22:19:37 -0700 progress: enforce use of complete() on the helper class
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:19:37 -0700] rev 38419
progress: enforce use of complete() on the helper class complete() is preferred over update(None), so let's enforce that. Differential Revision: https://phab.mercurial-scm.org/D3822
Tue, 19 Jun 2018 22:11:34 -0700 progress: extract function for closing topic
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:11:34 -0700] rev 38418
progress: extract function for closing topic progress(None) had a completely different implementation from the progress(<not None>) implementation. It very much feels like it should be a separate method, so this patch makes it so. That also makes it clear that only the topic parameter matters when closing a topic (e.g. "total" does not matter). Differential Revision: https://phab.mercurial-scm.org/D3821
Tue, 19 Jun 2018 22:06:28 -0700 progress: use context manager for lock
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Jun 2018 22:06:28 -0700] rev 38417
progress: use context manager for lock Differential Revision: https://phab.mercurial-scm.org/D3820
Tue, 19 Jun 2018 18:21:37 +0200 configitem: reorder items in the 'server' section
Boris Feld <boris.feld@octobus.net> [Tue, 19 Jun 2018 18:21:37 +0200] rev 38416
configitem: reorder items in the 'server' section Keeping things alphabetically sorted.
Thu, 21 Jun 2018 00:48:59 -0400 test-lfs: add coverage for the binary() fileset
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:48:59 -0400] rev 38415
test-lfs: add coverage for the binary() fileset This ensures that the blobs don't need to be present to be filtered properly.
Thu, 21 Jun 2018 00:05:26 -0400 fileset: use filectx.isbinary() to filter out binaries in eol()
Matt Harbison <matt_harbison@yahoo.com> [Thu, 21 Jun 2018 00:05:26 -0400] rev 38414
fileset: use filectx.isbinary() to filter out binaries in eol() Since LFS stores the binary attribute in the pointer file, this means that the file doesn't need to be downloaded in order to be skipped. This function also catches an IOError if the data can't be loaded in the non-LFS case. I wonder if it's worth storing the unix/dos attributes in the pointer file as well, though I'd expect LFS files to be binary most of the time.
Tue, 19 Jun 2018 13:07:18 +0300 crecord: re-center display in interactive curses commit on pageup/down
Matti Hamalainen <ccr@tnsp.org> [Tue, 19 Jun 2018 13:07:18 +0300] rev 38413
crecord: re-center display in interactive curses commit on pageup/down A long-standing issue in the crecord (interactive curses commit interface) is that using PageUp/Down to move along longer-than current screen size chunks would "lose" the cursor and not properly re-center. There has been self.recenterdisplayedarea() to do that, but it has not been in use for some reason. Add calls to the appropriate uparrowshiftevent() and downarrowshiftevent() methods to fix this.
Fri, 02 Feb 2018 14:21:04 -0800 tests: in test-split.t, save a "clean" copy of pre-split repo for later use
Kyle Lippincott <spectral@google.com> [Fri, 02 Feb 2018 14:21:04 -0800] rev 38412
tests: in test-split.t, save a "clean" copy of pre-split repo for later use Differential Revision: https://phab.mercurial-scm.org/D2015
Mon, 18 Jun 2018 16:01:06 -0700 tests: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 16:01:06 -0700] rev 38411
tests: use progress helper With this commit, the only in-tree caller of ui.progress() is scmutil.progress(). That means that we could deprecate it. It also means that we can considering inlining it in scmutil.progress. Differential Revision: https://phab.mercurial-scm.org/D3812
Mon, 18 Jun 2018 15:55:38 -0700 changegroup: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:55:38 -0700] rev 38410
changegroup: use progress helper Although it looks like this code was micro-optimized, I could not measure any slow-down. Differential Revision: https://phab.mercurial-scm.org/D3811
Mon, 18 Jun 2018 15:17:27 -0700 synthrepo: close progress topics
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:17:27 -0700] rev 38409
synthrepo: close progress topics Differential Revision: https://phab.mercurial-scm.org/D3810
Mon, 18 Jun 2018 15:17:10 -0700 synthrepo: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:17:10 -0700] rev 38408
synthrepo: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3809
Mon, 18 Jun 2018 15:14:39 -0700 largefiles: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:14:39 -0700] rev 38407
largefiles: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3808
Mon, 18 Jun 2018 15:05:52 -0700 convert: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 15:05:52 -0700] rev 38406
convert: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3807
Mon, 18 Jun 2018 14:59:53 -0700 lfs: use progess helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:59:53 -0700] rev 38405
lfs: use progess helper Differential Revision: https://phab.mercurial-scm.org/D3806
Mon, 18 Jun 2018 14:52:41 -0700 relink: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:52:41 -0700] rev 38404
relink: use progress helper This doesn't use progress.increment() because progress output is skipped for some positions (so we may end up calling "update(0), update(2), update(7)", or similar). Differential Revision: https://phab.mercurial-scm.org/D3805
Mon, 18 Jun 2018 14:34:07 -0700 patchbomb: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:34:07 -0700] rev 38403
patchbomb: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3804
Mon, 18 Jun 2018 14:32:12 -0700 patchbomb: don't close unused progress topic
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:32:12 -0700] rev 38402
patchbomb: don't close unused progress topic The "writing" topic has not been used since 1830d0cc4bc1 (patchbomb: minor refactoring of mbox functionality, preparing for move, 2011-11-23). Differential Revision: https://phab.mercurial-scm.org/D3803
Mon, 18 Jun 2018 14:29:08 -0700 churn: use progess helper
Martin von Zweigbergk <martinvonz@google.com> [Mon, 18 Jun 2018 14:29:08 -0700] rev 38401
churn: use progess helper Differential Revision: https://phab.mercurial-scm.org/D3802
Sun, 17 Jun 2018 23:54:58 -0700 treediscovery: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:54:58 -0700] rev 38400
treediscovery: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3801
Sun, 17 Jun 2018 23:48:23 -0700 upgrade: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:48:23 -0700] rev 38399
upgrade: use progress helper A minor side-effect is that we no longer print the progress at 0 (and that we don't re-print it at its current value when starting the next manifest/file). Differential Revision: https://phab.mercurial-scm.org/D3800
Sun, 17 Jun 2018 23:49:27 -0700 upgrade: close progress after each revlog
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:49:27 -0700] rev 38398
upgrade: close progress after each revlog IIUC, one is supposed to close each progress topic before strarting a new one. Otherwise the topics are considered nested, which we don't want here. Differential Revision: https://phab.mercurial-scm.org/D3799
Sun, 17 Jun 2018 23:28:00 -0700 verify: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:28:00 -0700] rev 38397
verify: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3798
Sun, 17 Jun 2018 23:35:49 -0700 verify: use progress helper for subdirectory progress
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:35:49 -0700] rev 38396
verify: use progress helper for subdirectory progress I also reworded a variable to make it clearer that it's only used for subdirectories. Differential Revision: https://phab.mercurial-scm.org/D3797
Sun, 17 Jun 2018 23:17:03 -0700 similar: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:17:03 -0700] rev 38395
similar: use progress helper A side-effect is that progress is now reported as 1 *before* we start checking the first file. That seems to be how we do it in most places. Also, the right topic is now closed. Differential Revision: https://phab.mercurial-scm.org/D3796
Sun, 17 Jun 2018 23:13:03 -0700 repair: use progress helper
Martin von Zweigbergk <martinvonz@google.com> [Sun, 17 Jun 2018 23:13:03 -0700] rev 38394
repair: use progress helper Differential Revision: https://phab.mercurial-scm.org/D3795
(0) -30000 -10000 -3000 -1000 -120 +120 +1000 +3000 +10000 tip