Feed All Stories

Today

pulkit committed rHG21e77ede77ab: narrow: factor out logic to build ellipses related b2parts in separate fn.
narrow: factor out logic to build ellipses related b2parts in separate fn
Fri, May 24, 1:34 AM
pulkit committed rHG92f584065b4f: narrow: remove unrequired compat code for old versions of hg.
narrow: remove unrequired compat code for old versions of hg
Fri, May 24, 1:34 AM
pulkit closed D6435: narrow: factor out logic to build ellipses related b2parts in separate fn.
Fri, May 24, 1:34 AM
pulkit closed D6434: narrow: remove unrequired compat code for old versions of hg.
Fri, May 24, 1:34 AM

Yesterday

hooper added inline comments to D6440: fix: let fixer tools inherit hg's cwd so they can look at the working copy.
Thu, May 23, 9:02 PM
marmoute committed rHGa09829e14fc0: perf: make sure to explicitly disable any profiler after the first iteration.
perf: make sure to explicitly disable any profiler after the first iteration
Thu, May 23, 7:37 PM
martinvonz added a comment to D6436: narrow: use narrow_widen wireproto command to widen in case of ellipses.

This is going to break our server. Can you make it work with existing servers for a while (behave differently depending on capability, I suppose), so we can get a chance to transition? I would think it's not going to be terribly hard, but let me know if it would take more time than you have and I'll try to help.

Thu, May 23, 12:45 PM
martinvonz added inline comments to D6435: narrow: factor out logic to build ellipses related b2parts in separate fn.
Thu, May 23, 12:42 PM
martinvonz added a comment to D6432: match: de-flake test-doctest.py by not depending on util.dirs() order.
In D6432#93545, @yuja wrote:

@@ -1384,26 +1384,26 @@

>>> _rootsdirsandparents(
...     [(b'glob', b'g/h/*', b''), (b'glob', b'g/h', b''),
...      (b'glob', b'g*', b'')])
  • (['g/h', 'g/h', ''], [], ['', 'g']) + (['g/h', 'g/h', ''], [], set(['', 'g']))

Perhaps, this would break py3 doctests. The repr syntax changed.

Thu, May 23, 12:28 PM
ngoldbaum created D6442: help: include subtopic in error message if passed.
Thu, May 23, 11:36 AM
ngoldbaum added a dependent revision for D6441: help: check if a subtopic exists and raise an error if it doesn't (issue6145): D6442: help: include subtopic in error message if passed.
Thu, May 23, 11:36 AM
ngoldbaum created D6441: help: check if a subtopic exists and raise an error if it doesn't (issue6145).
Thu, May 23, 11:36 AM
kevincox accepted D6426: rust-discovery: optionally don't randomize at all, for tests.
Thu, May 23, 11:15 AM
kevincox accepted D6425: rust-discovery: exposing sampling to python.
Thu, May 23, 10:55 AM
kevincox accepted D6424: rust-discovery: takefullsample() core implementation.
Thu, May 23, 10:53 AM
kevincox accepted D6423: rust-discovery: core implementation for take_quick_sample().
Thu, May 23, 10:47 AM
durin42 added inline comments to D6440: fix: let fixer tools inherit hg's cwd so they can look at the working copy.
Thu, May 23, 9:32 AM
martinvonz added inline comments to D6408: convert: demonstrate broken {files} list in merge commits with file flags.
Thu, May 23, 9:06 AM
pulkit added inline comments to D6408: convert: demonstrate broken {files} list in merge commits with file flags.
Thu, May 23, 8:01 AM
pulkit added inline comments to D6408: convert: demonstrate broken {files} list in merge commits with file flags.
Thu, May 23, 8:00 AM
hooper closed D6439: test: add missing 'cd ..' to test case.
Thu, May 23, 7:49 AM
hooper committed rHGb02f3aa2fab5: test: add missing 'cd ..' to test case.
test: add missing 'cd ..' to test case
Thu, May 23, 7:49 AM
pulkit accepted D6439: test: add missing 'cd ..' to test case.
Thu, May 23, 7:40 AM

Wed, May 22

hooper created D6440: fix: let fixer tools inherit hg's cwd so they can look at the working copy.
Wed, May 22, 8:00 PM
hooper created D6439: test: add missing 'cd ..' to test case.
Wed, May 22, 8:00 PM
hooper added a dependent revision for D6439: test: add missing 'cd ..' to test case: D6440: fix: let fixer tools inherit hg's cwd so they can look at the working copy.
Wed, May 22, 8:00 PM
martinvonz closed D6433: match: remove an obsolete comment about util.finddirs().
Wed, May 22, 7:41 PM
martinvonz closed D6432: match: de-flake test-doctest.py by not depending on util.dirs() order.
Wed, May 22, 7:41 PM
martinvonz committed rHGc4b8f8637d7a: match: de-flake test-doctest.py by not depending on util.dirs() order.
match: de-flake test-doctest.py by not depending on util.dirs() order
Wed, May 22, 7:41 PM
martinvonz committed rHG52beb1b8a649: match: remove an obsolete comment about util.finddirs().
match: remove an obsolete comment about util.finddirs()
Wed, May 22, 7:41 PM
marmoute committed rHG563cd9a72682: perf: add a `pre-run` option.
perf: add a `pre-run` option
Wed, May 22, 7:41 PM
marmoute committed rHG3293086ff663: perf: add an option to profile the benchmark section.
perf: add an option to profile the benchmark section
Wed, May 22, 7:41 PM
yuja added a comment to D6432: match: de-flake test-doctest.py by not depending on util.dirs() order.

Perhaps, this would break py3 doctests. The repr syntax changed.

Wed, May 22, 7:26 PM
martinvonz added a comment to D6422: copies: avoid calling matcher if matcher.always().

The nodes in the above example have been selected by a script because they had interresting property. They are not based on a tag so I can't give you one. How did you converted the repo ? I think hg convert keeps a map somewhere, otherwise, using the commit message could work.

Wed, May 22, 7:09 PM
marmoute added a comment to D6422: copies: avoid calling matcher if matcher.always().

The nodes in the above example have been selected by a script because they had interresting property. They are not based on a tag so I can't give you one. How did you converted the repo ? I think hg convert keeps a map somewhere, otherwise, using the commit message could work.

Wed, May 22, 6:29 PM
pulkit created D6436: narrow: use narrow_widen wireproto command to widen in case of ellipses.
Wed, May 22, 5:48 PM
pulkit created D6438: narrow: pass the bundle to bundle2.widen_bundle() instead of generating there.
Wed, May 22, 5:48 PM
pulkit added a dependent revision for D6437: narrow: refactor code around widening complicated by previous patch: D6438: narrow: pass the bundle to bundle2.widen_bundle() instead of generating there.
Wed, May 22, 5:47 PM
pulkit created D6437: narrow: refactor code around widening complicated by previous patch.
Wed, May 22, 5:47 PM
pulkit added a dependent revision for D6436: narrow: use narrow_widen wireproto command to widen in case of ellipses: D6437: narrow: refactor code around widening complicated by previous patch.
Wed, May 22, 5:47 PM
pulkit added a dependent revision for D6435: narrow: factor out logic to build ellipses related b2parts in separate fn: D6436: narrow: use narrow_widen wireproto command to widen in case of ellipses.
Wed, May 22, 5:47 PM
pulkit created D6435: narrow: factor out logic to build ellipses related b2parts in separate fn.
Wed, May 22, 5:47 PM
pulkit added a dependent revision for D6434: narrow: remove unrequired compat code for old versions of hg: D6435: narrow: factor out logic to build ellipses related b2parts in separate fn.
Wed, May 22, 5:47 PM
pulkit created D6434: narrow: remove unrequired compat code for old versions of hg.
Wed, May 22, 5:47 PM
martinvonz created D6433: match: remove an obsolete comment about util.finddirs().
Wed, May 22, 5:26 PM
martinvonz created D6432: match: de-flake test-doctest.py by not depending on util.dirs() order.
Wed, May 22, 5:26 PM
martinvonz added a dependent revision for D6432: match: de-flake test-doctest.py by not depending on util.dirs() order: D6433: match: remove an obsolete comment about util.finddirs().
Wed, May 22, 5:26 PM
martinvonz added a comment to D6422: copies: avoid calling matcher if matcher.always().

Can you indicate a summary of the total speedup of the series ? (from base to last changesets?).

Wed, May 22, 3:17 PM
martinvonz updated the summary of D6422: copies: avoid calling matcher if matcher.always().
Wed, May 22, 3:15 PM
marmoute added a comment to D6422: copies: avoid calling matcher if matcher.always().

Can you indicate a summary of the total speedup of the series ? (from base to last changesets?). Also I am not sure for which case these number apply ? Is this the compatibility mode or after repository conversion ? Can we have number for both ?

Wed, May 22, 2:34 PM
martinvonz added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

We could maybe make it a function of both the number of heads and roots. That is not strictly the number of connected set, but that would provide a more conservative approach. That could over-sample for hour-glass shape, but they are probably less common.

The current way (only consider roots) should not over-sample, right? It still seems very effective in practice.

I suppose it will if you have thousands of roots converging to one point, then that point diverging again towards thousands of heads, all of that actually missing from the remote, but anyway, the current random wouldn't catch that either.

Wed, May 22, 2:29 PM
gracinet added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

Also I'd like to mention that I have changesets that add more precise timing info, both for the Python variant (this one) and the Rust variant. These are the ones I used to put timing info in D6430 and D6428. I can share them, but I wouldn't submit them.

Wed, May 22, 2:15 PM
marmoute added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

Something only based on the number of root can also over sample. For a "simple" example, imagine a undecideded set with many roots that eventually all merge into a few heads.
If most of that set is common between local and remote, few question about the part of the history at the heads will quickly "decide" many changesets. Numberous questions at the roots part of the history won't.

Wed, May 22, 2:14 PM
gracinet added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

We could maybe make it a function of both the number of heads and roots. That is not strictly the number of connected set, but that would provide a more conservative approach. That could over-sample for hour-glass shape, but they are probably less common.

The current way (only consider roots) should not over-sample, right? It still seems very effective in practice.

Wed, May 22, 2:13 PM
martinvonz added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

We could maybe make it a function of both the number of heads and roots. That is not strictly the number of connected set, but that would provide a more conservative approach. That could over-sample for hour-glass shape, but they are probably less common.

Wed, May 22, 1:42 PM
marmoute added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

We could maybe make it a function of both the number of heads and roots. That is not strictly the number of connected set, but that would provide a more conservative approach. That could over-sample for hour-glass shape, but they are probably less common.

Wed, May 22, 1:41 PM
gracinet added a comment to D6428: rust-discovery: using the children cache in add_missing.

This revision is new. At the time I submitted the previous series, it was almost always the case that the advantage of the C reachableroots2() over the Rust `dagop::range() was more than compensated by sampling been done in Rust instead of Python.
I originally planned to finish that one and submit it as a follow-up optimization, but now it's necessary to prevent being slower in the fastest cases where there's no sampling.

Wed, May 22, 1:17 PM
martinvonz updated the summary of D6431: copies: also encode p[12]copies destination as index into "files" list.
Wed, May 22, 1:03 PM
martinvonz updated the diff for D6416: changelog: optionally store added and removed files in changeset extras.
Wed, May 22, 1:02 PM
martinvonz created D6431: copies: also encode p[12]copies destination as index into "files" list.
Wed, May 22, 1:02 PM
martinvonz updated the diff for D6417: context: get filesadded() and filesremoved() from changeset if configured.
Wed, May 22, 1:02 PM
gracinet created D6430: rust-discovery: using from Python code.
Wed, May 22, 1:00 PM
gracinet added a dependent revision for D6429: rust-discovery: avoid useless calls to addcommons/addmissings: D6430: rust-discovery: using from Python code.
Wed, May 22, 1:00 PM
gracinet created D6429: rust-discovery: avoid useless calls to addcommons/addmissings.
Wed, May 22, 1:00 PM
gracinet created D6428: rust-discovery: using the children cache in add_missing.
Wed, May 22, 1:00 PM
gracinet added a dependent revision for D6427: discovery: new devel.discovery.randomize option: D6428: rust-discovery: using the children cache in add_missing.
Wed, May 22, 1:00 PM
gracinet updated subscribers of D6427: discovery: new devel.discovery.randomize option.

@kevincox this used to be D6346
I had to fix conflict and adapt the test due to growing sample size having landed since then

Wed, May 22, 12:56 PM
gracinet added a comment to D6426: rust-discovery: optionally don't randomize at all, for tests.

@kevincox this used to be D6345

Wed, May 22, 12:55 PM
gracinet added a comment to D6425: rust-discovery: exposing sampling to python.

@kevincox this used to be D6261

Wed, May 22, 12:54 PM
gracinet added a comment to D6424: rust-discovery: takefullsample() core implementation.

@kevincox this used to be D6260 (I don't think I changed anything besides rebasing)

Wed, May 22, 12:53 PM
gracinet added a comment to D6423: rust-discovery: core implementation for take_quick_sample().

@kevincox this used to be D6257 (I don't think I changed anything besides rebasing)

Wed, May 22, 12:50 PM
gracinet created D6427: discovery: new devel.discovery.randomize option.
Wed, May 22, 12:50 PM
gracinet created D6426: rust-discovery: optionally don't randomize at all, for tests.
Wed, May 22, 12:50 PM
gracinet added a dependent revision for D6426: rust-discovery: optionally don't randomize at all, for tests: D6427: discovery: new devel.discovery.randomize option.
Wed, May 22, 12:50 PM
gracinet created D6425: rust-discovery: exposing sampling to python.
Wed, May 22, 12:50 PM
gracinet created D6424: rust-discovery: takefullsample() core implementation.
Wed, May 22, 12:50 PM
gracinet added a dependent revision for D6424: rust-discovery: takefullsample() core implementation: D6425: rust-discovery: exposing sampling to python.
Wed, May 22, 12:50 PM
gracinet created D6423: rust-discovery: core implementation for take_quick_sample().
Wed, May 22, 12:50 PM
gracinet added a dependent revision for D6423: rust-discovery: core implementation for take_quick_sample(): D6424: rust-discovery: takefullsample() core implementation.
Wed, May 22, 12:49 PM
gracinet abandoned D6346: discovery: new devel.discovery.randomize option.

I'm abandoning this revision because I have to resubmit the whole series after partial incorrect application last week and subsequent droping from the actual repo.

Wed, May 22, 12:40 PM
gracinet abandoned D6262: rust-discovery: using from Python code.
Wed, May 22, 12:39 PM
gracinet added a comment to D6262: rust-discovery: using from Python code.

I'm abandoning this revision because I have to resubmit the whole series after partial incorrect application last week and subsequent droping from the actual repo.

Wed, May 22, 12:38 PM
gracinet abandoned D6345: rust-discovery: optionally don't randomize at all, for tests.

I'm abandoning this revision because I have to resubmit the whole series after partial incorrect application last week and subsequent droping from the actual repo.

Wed, May 22, 12:38 PM
gracinet added a comment to D6345: rust-discovery: optionally don't randomize at all, for tests.

@kevincox I don't think the potential masking in tests due to this strategy is a big problem. That test is pretty recent, compared to setdiscovery, at least, and doesn't really test that sampling is very relevant. We could do better though by introducing several non random selecting strategies if we need it in the future, but this was good enough for me for the time being.

Wed, May 22, 12:36 PM
hooper closed D6414: narrow: consider empty commits to be "inside the narrow spec" for templates.
Wed, May 22, 12:27 PM
hooper committed rHG45c18f7345c1: narrow: consider empty commits to be "inside the narrow spec" for templates.
narrow: consider empty commits to be "inside the narrow spec" for templates
Wed, May 22, 12:27 PM
pulkit accepted D6414: narrow: consider empty commits to be "inside the narrow spec" for templates.
Wed, May 22, 12:19 PM
martinvonz added a comment to D2647: setdiscovery: make progress on most connected groups each roundtrip.

I feel like I am missing something. Your commit message seems to be talking using at least as many item in the sameple than there is independant connected set. However your code seems to use "heads(undecided)" that is a quite different. Using independant connected set seems like a good trade off (but might be expensive to compute). Using all heads can significantly bloat the discovery without giving it a significant edge in many cases.

Good point. The case I can think of is when you have a tree of commits on the local side. Something like this:

o
| o
| | o
| | | o
| | |/
| |/
| o
| |
| o
| |
| o
|/
o
~

If we have a long sequence of commits there and many heads, we would increase the sampling of the (mostly-)linear part unnecessarily. I'll see if there's an easy way to improve that.

Wed, May 22, 12:07 PM
marmoute added a comment to D6422: copies: avoid calling matcher if matcher.always().
Wed, May 22, 6:59 AM
marmoute added a comment to D6422: copies: avoid calling matcher if matcher.always().
Wed, May 22, 4:19 AM

Tue, May 21

martinvonz created D6416: changelog: optionally store added and removed files in changeset extras.
Tue, May 21, 8:33 PM
martinvonz added a dependency for D6416: changelog: optionally store added and removed files in changeset extras: D6369: templatekw: make {file_*} compare to both merge parents (issue4292).
Tue, May 21, 8:33 PM
martinvonz added a dependent revision for D6369: templatekw: make {file_*} compare to both merge parents (issue4292): D6416: changelog: optionally store added and removed files in changeset extras.
Tue, May 21, 8:33 PM
martinvonz created D6422: copies: avoid calling matcher if matcher.always().
Tue, May 21, 8:32 PM
martinvonz created D6420: copies: don't filter out copy targets created on other side of merge commit.
Tue, May 21, 8:32 PM
martinvonz added a dependent revision for D6421: copies: avoid unnecessary copying of copy dict: D6422: copies: avoid calling matcher if matcher.always().
Tue, May 21, 8:32 PM
martinvonz created D6421: copies: avoid unnecessary copying of copy dict.
Tue, May 21, 8:32 PM
martinvonz created D6417: context: get filesadded() and filesremoved() from changeset if configured.
Tue, May 21, 8:32 PM
martinvonz added a dependent revision for D6420: copies: don't filter out copy targets created on other side of merge commit: D6421: copies: avoid unnecessary copying of copy dict.
Tue, May 21, 8:32 PM
martinvonz created D6419: copies: do full filtering at end of _changesetforwardcopies().
Tue, May 21, 8:32 PM