[PATCH V3] show: new extension for displaying various repository data

Durham Goode durham at fb.com
Mon Apr 3 13:58:30 EDT 2017



On 4/3/17 9:46 AM, Gregory Szorc wrote:
> On Mon, Apr 3, 2017 at 9:37 AM, Durham Goode <durham at fb.com
> <mailto:durham at fb.com>> wrote:
>
>     On 4/3/17 8:36 AM, Augie Fackler wrote:
>
>         On Mon, Apr 03, 2017 at 08:17:33AM -0700, Gregory Szorc wrote:
>
>
>
>                 On Apr 3, 2017, at 08:07, Yuya Nishihara <yuya at tcha.org
>                 <mailto:yuya at tcha.org>> wrote:
>
>                     On Sat, 1 Apr 2017 20:42:10 +0900, Yuya Nishihara wrote:
>
>                         On Fri, 24 Mar 2017 19:31:20 -0700, Gregory
>                         Szorc wrote:
>                         # HG changeset patch
>                         # User Gregory Szorc <gregory.szorc at gmail.com
>                         <mailto:gregory.szorc at gmail.com>>
>                         # Date 1490408340 25200
>                         #      Fri Mar 24 19:19:00 2017 -0700
>                         # Node ID 42b0afe0f6ebea285569e0061e1eab2fcffb686e
>                         # Parent  aea8ec3f7dd1967a05ecce8f779e16f7ad14fdee
>                         show: new extension for displaying various
>                         repository data
>
>
>                     Looks good, and there seems no negative comment on
>                     this, so I'll queue it
>                     tomorrow or next Monday.
>
>
>                 Finally pushed this.
>
>
>             \o/
>
>             So, I could use some help adding new views to this. It is
>             experimental and there is no BC, so I think I can encourage
>             people to experiment :)
>
>             I'd *really* like to get some form of smartlog/wip/underway
>             in show for 4.2. I've barely started that work. Is anyone
>             willing to work on that? If not, I can try to hack on
>             something basic.
>
>
>         Durham, do you have anyone that might be interested in getting
>         smartlog-type functionality in core as part of 'hg show'?
>
>
>     There's a couple options here. The simplest V1 would be to have the
>     hg show view just be an alias for this:
>
>     hg log --config experimental.graphstyle.grandparent='2.' -G -r
>     '::(draft() & (date(-14) | ::bookmark())) & draft() +
>     ancestor(draft() & (date(-14) | ::bookmark())) + . + present(master)
>     + present(@)'
>
>     (in human words:  draft ancestors of your bookmarks and your last 2
>     weeks of unbookmarked drafts, plus the common ancestor of those,
>     plus your working copy location, plus master-or-@)
>
>     with some fancy template alias (I've provided our '{sl}' template
>     here https://bpaste.net/show/72b096bea240
>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__bpaste.net_show_72b096bea240&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=nuarHzhP1wi1T9iURRCj1A&m=74unOuh78CSF2f62gL8Nc1VGzXr9oTZ-cRnncG5wblk&s=DVsTAmn_B3aOcSjpN1pZUXCsW4Hg5hwpoidEXdsE2UE&e=>).
>     It's not quite fast enough on a huge repo, but for everyone else
>     it's probably fine.
>
>
> That's similar to how `hg wip` is implemented. I was also thinking that
> initially implementing it in terms of a pre-defined revset + template
> would be a good first start.
>
>
>
>
>     The second option is we could reuse our existing smartlog extension
>     implementation.  It results in better output because it's smarter
>     about sorting (to avoid line crosses, instead of just outputting in
>     rev order) and smarter about figuring out what is 'master' in the
>     repo and about efficiently doing the computation (not using revsets
>     in some cases). But it's about 500 lines of not-pretty code that we
>     probably wouldn't have time to pretty-up.
>
>
> Since there are no BC guarantees for show yet, let's land a revset +
> template implementation in 4.2 then iterate with smartlog's features in
> the 4.3 cycle.
>
> Sound like a plan?

Sounds good.  What are we calling it?  "hg show mycommits"?


More information about the Mercurial-devel mailing list