spectral (Kyle Lippincott)
User

Projects

User does not belong to any projects.

User Details

User Since
Jun 29 2017, 4:34 PM (64 w, 3 d)

Recent Activity

Thu, Sep 20

spectral committed rHG9d5c919b6dc3: narrow: extract wdir cleanup function to make it extensible.
narrow: extract wdir cleanup function to make it extensible
Thu, Sep 20, 3:46 PM
spectral closed D4681: narrow: extract wdir cleanup function to make it extensible.
Thu, Sep 20, 3:46 PM
spectral created D4681: narrow: extract wdir cleanup function to make it extensible.
Thu, Sep 20, 3:20 PM

Tue, Sep 18

spectral closed D4606: narrow: when writing treemanifests, skip inspecting directories outside narrow.
Tue, Sep 18, 9:47 AM
spectral committed rHG24870f1be088: narrow: when writing treemanifests, skip inspecting directories outside narrow.
narrow: when writing treemanifests, skip inspecting directories outside narrow
Tue, Sep 18, 9:47 AM

Mon, Sep 17

spectral accepted D4612: zsh_completion: add -b/--branch and -B/--bookmark(s) flags properly.
Mon, Sep 17, 5:46 PM
spectral added a comment to D4606: narrow: when writing treemanifests, skip inspecting directories outside narrow.
In D4606#70323, @yuja wrote:

Looks good to me. One nit.

    • a/mercurial/manifest.py +++ b/mercurial/manifest.py @@ -1203,7 +1203,7 @@ s._dirty = False self._loadfunc = _load_for_read
  • def writesubtrees(self, m1, m2, writesubtree): + def writesubtrees(self, m1, m2, writesubtree, match=None):

Can you remove the unsupported default value match=None from inner functions?

Mon, Sep 17, 2:55 PM
spectral updated the diff for D4606: narrow: when writing treemanifests, skip inspecting directories outside narrow.
Mon, Sep 17, 2:54 PM
spectral updated the diff for D4606: narrow: when writing treemanifests, skip inspecting directories outside narrow.
Mon, Sep 17, 2:32 PM

Sun, Sep 16

spectral created D4606: narrow: when writing treemanifests, skip inspecting directories outside narrow.
Sun, Sep 16, 12:44 AM

Fri, Sep 14

spectral closed D4587: narrow: intersect provided matcher with narrowmatcher in `hg diff`.
Fri, Sep 14, 10:22 PM
spectral committed rHGee7ee0c516ca: narrow: intersect provided matcher with narrowmatcher in `hg diff`.
narrow: intersect provided matcher with narrowmatcher in `hg diff`
Fri, Sep 14, 10:21 PM
spectral updated the summary of D4587: narrow: intersect provided matcher with narrowmatcher in `hg diff`.
Fri, Sep 14, 4:26 PM
spectral created D4587: narrow: intersect provided matcher with narrowmatcher in `hg diff`.
Fri, Sep 14, 4:04 PM

Tue, Sep 11

spectral added a comment to D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
In D4370#69050, @yuja wrote:

Queued, thanks.

+ def _loadchildrensetlazy(self, visit):
+ if not visit:
+ return None
+ if visit == 'all' or visit == 'this':
+ self._loadalllazy()
+ return None
+
+ todel = []
+ for k in visit:
+ kslash = k + '/'
+ ld = self._lazydirs.get(kslash)
+ if ld:
+ path, node, readsubtree = ld
+ self._dirs[kslash] = readsubtree(path, node)
+ todel.append(kslash)
+ for kslash in todel:
+ del self._lazydirs[kslash]

Any reason not to use self._loadlazy(kslash)?

Tue, Sep 11, 3:34 PM
spectral closed D4371: treemanifest: use visitchildrenset when doing a walk.
Tue, Sep 11, 8:36 AM
spectral committed rHG3ba9ef0fb693: treemanifest: use visitchildrenset when doing a walk.
treemanifest: use visitchildrenset when doing a walk
Tue, Sep 11, 8:36 AM
spectral closed D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
Tue, Sep 11, 8:36 AM
spectral committed rHG154e4f84b51c: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
treemanifest: use visitchildrenset when filtering a manifest to a matcher
Tue, Sep 11, 8:36 AM

Mon, Sep 10

spectral committed rHG93486cc46125: treemanifest: introduce lazy loading of subdirs.
treemanifest: introduce lazy loading of subdirs
Mon, Sep 10, 10:37 PM
spectral committed rHG8798be5f04fc: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
treemanifest: avoid unnecessary copies/processing when using alwaysmatcher
Mon, Sep 10, 10:37 PM
spectral committed rHGc29548ba4a75: treemanifest: avoid loading everything just to get their nodeid.
treemanifest: avoid loading everything just to get their nodeid
Mon, Sep 10, 10:37 PM
spectral committed rHG079d7bfa463d: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty
Mon, Sep 10, 10:37 PM
spectral closed D4369: treemanifest: avoid loading everything just to get their nodeid.
Mon, Sep 10, 2:45 PM
spectral closed D4368: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
Mon, Sep 10, 2:45 PM
spectral committed rHG1d8d3699a6d1: treemanifest: avoid loading everything just to get their nodeid.
treemanifest: avoid loading everything just to get their nodeid
Mon, Sep 10, 2:45 PM
spectral committed rHGa7f65983f395: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
treemanifest: avoid unnecessary copies/processing when using alwaysmatcher
Mon, Sep 10, 2:45 PM
spectral closed D4366: treemanifest: introduce lazy loading of subdirs.
Mon, Sep 10, 2:45 PM
spectral committed rHG43af08f3205f: treemanifest: introduce lazy loading of subdirs.
treemanifest: introduce lazy loading of subdirs
Mon, Sep 10, 2:45 PM
spectral closed D4367: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
Mon, Sep 10, 2:45 PM
spectral committed rHG4df252c01f16: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty
Mon, Sep 10, 2:45 PM

Fri, Sep 7

spectral updated the diff for D4371: treemanifest: use visitchildrenset when doing a walk.
Fri, Sep 7, 9:22 PM
spectral updated the diff for D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
Fri, Sep 7, 9:22 PM
spectral updated the summary of D4371: treemanifest: use visitchildrenset when doing a walk.
Fri, Sep 7, 4:48 PM
spectral updated the diff for D4371: treemanifest: use visitchildrenset when doing a walk.
Fri, Sep 7, 4:07 PM
spectral updated the diff for D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
Fri, Sep 7, 4:07 PM
spectral updated the diff for D4369: treemanifest: avoid loading everything just to get their nodeid.
Fri, Sep 7, 4:07 PM
spectral updated the diff for D4368: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
Fri, Sep 7, 4:07 PM
spectral updated the diff for D4367: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
Fri, Sep 7, 4:07 PM

Thu, Sep 6

spectral added a comment to D4366: treemanifest: introduce lazy loading of subdirs.

I'm not sure how I feel about so many methods having the if dir in self._lazydirs: self._loadlazy(dir) pattern.

On one hand, action at a distance when it involves caching can be dangerous. And doing the lookup inline will avoid a Python function call.

On the other, it seems very redundant.

Overall I'm OK with the patch. I just feel like using a collections.defaultdict or implementing __missing__ to automagically resolve missing keys might work out better. Do you think this is a reasonable request?

I think it's a reasonable request, but I'm not sure it's feasible with how collections.defaultdict/__missing__ work. They are *only* called by getitem. We'd need a separate dict subclass for _dirs that handles contains as well, at the very least, for all the cases of if dir not in self._dirs: return <something>

I'm playing around with such a thing, it's not difficult but I think might be more awkward than helpful. Even if that doesn't bear fruit, while implementing it I noticed something: I'm not actually populating self._lazydirs in this patch, I appear to have lost it during split/merge/whatever. Oops. I have to hope that the numbers I have in the commit description were before I lost this, since otherwise it's completely incomprehensible that this patch would cause a performance benefit (well, maybe not, if dead code can cause a performance loss, why not the other way around?)

Thu, Sep 6, 3:08 PM
spectral updated the diff for D4366: treemanifest: introduce lazy loading of subdirs.
Thu, Sep 6, 3:01 PM
spectral closed D4351: match: improve includematcher.visitchildrenset to be much faster and cached.
Thu, Sep 6, 8:13 AM
spectral committed rHG35ecaa999a12: match: improve includematcher.visitchildrenset to be much faster and cached.
match: improve includematcher.visitchildrenset to be much faster and cached
Thu, Sep 6, 8:13 AM

Tue, Sep 4

spectral added a comment to D4351: match: improve includematcher.visitchildrenset to be much faster and cached.
In D4351#67751, @yuja wrote:

Can't apply. Can you rebase?

Tue, Sep 4, 6:44 PM
spectral updated the diff for D4351: match: improve includematcher.visitchildrenset to be much faster and cached.
Tue, Sep 4, 6:44 PM
spectral accepted D4426: zsh_completion: use revsets to exclude this rev from suggestions to hg merge.
Tue, Sep 4, 4:33 PM
spectral accepted D4428: zsh_completion: complete shelve and unshelve.
Tue, Sep 4, 4:31 PM

Fri, Aug 31

spectral added a comment to D4428: zsh_completion: complete shelve and unshelve.

(Not marking accepted, though I'm fine with it going in as is, so that we get a chance to answer the questions before it lands)

Fri, Aug 31, 6:43 PM
spectral accepted D4427: zsh_completion: handle --rev as well as -r for diff and revert.
Fri, Aug 31, 6:37 PM
spectral added a comment to D4426: zsh_completion: use revsets to exclude this rev from suggestions to hg merge.

Would it make sense to combine this into one hg invocation? I think it wouldn't be that hard (hmm, not as trivial as I thought, but.. not the worst thing ever? :))

Fri, Aug 31, 6:34 PM

Wed, Aug 29

spectral accepted D4362: zsh_completion: complete merge tools for -t/--tool.
Wed, Aug 29, 2:33 PM
spectral accepted D4361: zsh_completion: complete hg files.

(Accept conditional on fixing/documenting the difference I noticed)

Wed, Aug 29, 2:24 PM
spectral accepted D4360: zsh_completion: adjust usage of common options.
Wed, Aug 29, 2:20 PM

Mon, Aug 27

spectral closed D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
Mon, Aug 27, 10:28 AM
spectral committed rHG3c4b2e880273: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
log: respect graphshorten on terminal nodes (collapsing o-~ to just o~)
Mon, Aug 27, 10:27 AM

Aug 24 2018

spectral planned changes to D4366: treemanifest: introduce lazy loading of subdirs.

I'm not sure how I feel about so many methods having the if dir in self._lazydirs: self._loadlazy(dir) pattern.

On one hand, action at a distance when it involves caching can be dangerous. And doing the lookup inline will avoid a Python function call.

On the other, it seems very redundant.

Overall I'm OK with the patch. I just feel like using a collections.defaultdict or implementing __missing__ to automagically resolve missing keys might work out better. Do you think this is a reasonable request?

Aug 24 2018, 6:36 PM
spectral committed rHGeebd591803ab: copies: correctly skip directories that have already been considered.
copies: correctly skip directories that have already been considered
Aug 24 2018, 4:54 PM
spectral closed D4284: copies: correctly skip directories that have already been considered.
Aug 24 2018, 4:54 PM
spectral added inline comments to D4284: copies: correctly skip directories that have already been considered.
Aug 24 2018, 4:35 PM
spectral closed D4365: match: make exactmatcher.visitchildrenset return file children as well.
Aug 24 2018, 1:21 PM
spectral closed D4364: match: document that visitchildrenset might return files.
Aug 24 2018, 1:21 PM
spectral committed rHGc9a3f7f5c023: match: make exactmatcher.visitchildrenset return file children as well.
match: make exactmatcher.visitchildrenset return file children as well
Aug 24 2018, 1:21 PM
spectral committed rHG27946fca8a05: match: document that visitchildrenset might return files.
match: document that visitchildrenset might return files
Aug 24 2018, 1:21 PM
spectral created D4371: treemanifest: use visitchildrenset when doing a walk.
Aug 24 2018, 1:36 AM
spectral created D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
Aug 24 2018, 1:36 AM
spectral created D4369: treemanifest: avoid loading everything just to get their nodeid.
Aug 24 2018, 1:36 AM
spectral created D4368: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4369: treemanifest: avoid loading everything just to get their nodeid: D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4370: treemanifest: use visitchildrenset when filtering a manifest to a matcher: D4371: treemanifest: use visitchildrenset when doing a walk.
Aug 24 2018, 1:36 AM
spectral created D4366: treemanifest: introduce lazy loading of subdirs.
Aug 24 2018, 1:36 AM
spectral created D4367: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4368: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher: D4369: treemanifest: avoid loading everything just to get their nodeid.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4367: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty: D4368: treemanifest: avoid unnecessary copies/processing when using alwaysmatcher.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4366: treemanifest: introduce lazy loading of subdirs: D4367: treemanifest: attempt to avoid loading all lazily-loaded subdirs in _isempty.
Aug 24 2018, 1:36 AM
spectral added a dependent revision for D4365: match: make exactmatcher.visitchildrenset return file children as well: D4366: treemanifest: introduce lazy loading of subdirs.
Aug 24 2018, 1:36 AM
spectral created D4365: match: make exactmatcher.visitchildrenset return file children as well.
Aug 24 2018, 1:19 AM
spectral created D4364: match: document that visitchildrenset might return files.
Aug 24 2018, 1:19 AM
spectral added a dependent revision for D4364: match: document that visitchildrenset might return files: D4365: match: make exactmatcher.visitchildrenset return file children as well.
Aug 24 2018, 1:19 AM

Aug 23 2018

spectral updated the diff for D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
Aug 23 2018, 9:12 PM
spectral added a comment to D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).

Can we have a test for this?

Oh, sorry, there are updated tests (my browser tab was stale when I reviewed this). That also explains why two minlines changed by 2: the ~ is also removed, which I didn't expect. I think I would like to have the ~ in there. Without them, it may look like two independent branches come in sequence, no?

Yes, it might. I kinda went back and forth on this, as you probably saw on the FR from our users; I came to the conclusion that those using graphshorten are already losing : vs | distinctions, so seems to already be opting in to potentially misleading graphs. When I realized that hg show work also used graphshorten and this wasn't an explicit choice by the user, I was less sure on this and requested input from indygreg. If we agree that we need the ~ by default, I can easily add it back. Having never used hg show work, doing most of my changes in a repo where we don't really have branches that would cause this to be confusing, and that we have the branch name in the compact log format that I showed in the commit description, I don't think I'm a good judge of the importance of the ~ in these cases :)

I feel pretty strongly that making a non-linear graph appear linear is much more misleading than eliding intermediate nodes, so I'd really like the ~ back.

Aug 23 2018, 8:51 PM
spectral updated the diff for D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
Aug 23 2018, 8:50 PM
spectral added a comment to D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).

Can we have a test for this?

Oh, sorry, there are updated tests (my browser tab was stale when I reviewed this). That also explains why two minlines changed by 2: the ~ is also removed, which I didn't expect. I think I would like to have the ~ in there. Without them, it may look like two independent branches come in sequence, no?

Aug 23 2018, 7:48 PM
spectral updated the summary of D4284: copies: correctly skip directories that have already been considered.
Aug 23 2018, 5:08 PM
spectral added a comment to D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).

Since this touches hg show work test output, I've added indygreg as an explicit reviewer.

Aug 23 2018, 4:38 PM
spectral added a reviewer for D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~): indygreg.
Aug 23 2018, 4:38 PM
spectral updated the diff for D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
Aug 23 2018, 4:37 PM
spectral created D4363: log: respect graphshorten on terminal nodes (collapsing o-~ to just o~).
Aug 23 2018, 4:33 PM

Aug 22 2018

spectral updated the diff for D4351: match: improve includematcher.visitchildrenset to be much faster and cached.
Aug 22 2018, 9:00 PM
spectral added inline comments to D4331: nodes: expand/comment the magic nodes so they are more easily searchable.
Aug 22 2018, 3:27 PM

Aug 21 2018

spectral created D4351: match: improve includematcher.visitchildrenset to be much faster and cached.
Aug 21 2018, 6:18 PM

Aug 17 2018

spectral committed rHGb623c7b23695: nodes: expand/comment the magic nodes so they are more easily searchable.
nodes: expand/comment the magic nodes so they are more easily searchable
Aug 17 2018, 6:36 PM
spectral closed D4331: nodes: expand/comment the magic nodes so they are more easily searchable.
Aug 17 2018, 6:36 PM
spectral created D4331: nodes: expand/comment the magic nodes so they are more easily searchable.
Aug 17 2018, 6:32 PM

Aug 16 2018

spectral closed D4287: overlayworkingctx: fix exception in metadata-only inmemory merges (issue5960).
Aug 16 2018, 9:25 AM
spectral committed rHG95bd19f60957: overlayworkingctx: fix exception in metadata-only inmemory merges (issue5960).
overlayworkingctx: fix exception in metadata-only inmemory merges (issue5960)
Aug 16 2018, 9:25 AM

Aug 15 2018

spectral updated the diff for D4287: overlayworkingctx: fix exception in metadata-only inmemory merges (issue5960).
Aug 15 2018, 9:01 PM
spectral created D4287: overlayworkingctx: fix exception in metadata-only inmemory merges (issue5960).
Aug 15 2018, 8:53 PM
spectral added a comment to D3896: copies: handle case when both merge cset are not descendant of merge base.

Any updates on this? I'm poking at updating this function in core, and not too excited to have to also modify the copy in evolve that seems to have spawned :/

Aug 15 2018, 6:01 PM
spectral created D4284: copies: correctly skip directories that have already been considered.
Aug 15 2018, 5:47 PM

Aug 14 2018

spectral closed D4260: shallowbundle: work with hg 4c99c6d1 which consolidated cg#packer -> cgpacker.
Aug 14 2018, 9:47 PM