Skip to content
Snippets Groups Projects
  1. Oct 17, 2017
  2. Oct 18, 2017
  3. Oct 17, 2017
  4. Sep 28, 2017
    • Boris Feld's avatar
      config: use 'experimental.evolution.exchange' · 44797aed
      Boris Feld authored
      Extract 'experimental.evolution' = exchange as
      'experimental.evolution.exchange'.
      
      We keep the new option in the 'experimental.evolution' namespace in order to
      stay coherent with other options ('experimental.evolution.bundle-obsmarker'
      and 'experimental.evolution.track-operation') ease the renaming as possibly
      'evolution.exchange'.
      
      Differential Revision: https://phab.mercurial-scm.org/D1151
      44797aed
    • Boris Feld's avatar
      config: use 'experimental.evolution.allowunstable' · 7f183c64
      Boris Feld authored
      Extract 'experimental.evolution' = allowunstable as
      'experimental.evolution.allowunstable'.
      
      We keep the new option in the 'experimental.evolution' namespace in order to
      stay coherent with other options ('experimental.evolution.bundle-obsmarker'
      and 'experimental.evolution.track-operation') ease the renaming as possibly
      'evolution.allowunstable'.
      
      Differential Revision: https://phab.mercurial-scm.org/D1150
      7f183c64
    • Boris Feld's avatar
      config: use 'experimental.evolution.create-markers' · 1644623a
      Boris Feld authored
      Extract 'experimental.evolution' = createmarkers as
      'experimental.evolution.createmarkers'.
      
      We keep the new option in the 'experimental.evolution' namespace in order to
      stay coherent with other options ('experimental.evolution.bundle-obsmarker'
      and 'experimental.evolution.track-operation') ease the renaming as possibly
      'evolution.createmarkers'.
      
      Differential Revision: https://phab.mercurial-scm.org/D1149
      1644623a
  5. Oct 17, 2017
  6. Oct 16, 2017
  7. Apr 21, 2015
  8. Sep 14, 2015
  9. Oct 16, 2017
  10. Oct 17, 2017
    • Denis Laxalde's avatar
      log: add -L/--line-range option to follow file history by line range · 84c6b938
      Denis Laxalde authored
      We add an experimental -L/--line-range option to 'hg log' taking file patterns
      along with a line range using the (new) FILE,FROMLINE-TOLINE syntax where FILE
      may be a pattern (matching exactly one file). The resulting history is similar
      to what the "followlines" revset except that, if --patch is specified,
      only diff hunks within specified line range are shown.
      
      Basically, this brings the CLI on par with what currently only exists in hgweb
      through line selection in "file" and "annotate" views resulting in a file log
      with filtered patch to only display followed line range.
      
      The option may be specified multiple times and can be combined with --rev and
      regular file patterns to further restrict revisions. Usage of this option
      requires --follow; revisions are shown in descending order and renames are
      followed. Only the --graph option is currently not supported.
      
      The UI is the result of a consensus from review feedback at:
      
        https://www.mercurial-scm.org/pipermail/mercurial-devel/2017-October/106749.html
      
      
      The implementation spreads between commands.log() and cmdutil module.
      In commands.log(), the main loop may now use a "hunksfilter" factory (similar
      to "filematcher") that, for a given "rev", produces a filtering function
      for diff hunks for a given file context object.
      The logic to build revisions from -L/--line-range options lives in
      cmdutil.getloglinerangerevs() which produces "revs", "filematcher" and
      "hunksfilter" information. Revisions obtained by following files' line range
      are filtered if they do not match the revset specified by --rev option. If
      regular FILE arguments are passed along with -L options, both filematchers are
      combined into a new matcher.
      
      .. feature::
      
         Add an experimental -L/--line-range FILE,FROMLINE-TOLINE option to 'hg log'
         command to follow the history of files by line range. In combination with
         -p/--patch option, only diff hunks within specified line range will be
         displayed. Feedback, especially on UX aspects, is welcome.
      84c6b938
  11. Oct 06, 2017
  12. Oct 05, 2017
  13. Oct 04, 2017
  14. Oct 06, 2017
    • Boris Feld's avatar
      obsfate: add obsfate to default mapfile · 962f7df2
      Boris Feld authored
      Use the verbosity aware template keyword introduced earlier. It has the nice
      property of being verbosity dependent but in order to customize the obsfate
      part, users will need to replace the lobsfate definition from default mapfile
      with the one using template functions (by copying the one from test-obsmarker-
      template.t for example).
      
      As it's a more advanced use-case, I'm more inclined to have the same code for
      the {obsfate} keyword, in the changeset printer and in the default mapfile for
      consistency.
      
      But, the definition in default mapfile could be replaced with one based on
      template filter to obsfate output customization if it is a big need for users.
      962f7df2
  15. Oct 05, 2017
    • Boris Feld's avatar
      log: add obsfate by default in changeset printer · d45236f3
      Boris Feld authored
      Having an obsfate by default in log will be useful for users to understand why
      they have obsolete and unstable changesets. Obsfate will only be shown for
      obsolete changesets, which only happens if people opt-in to experimental feature.
      
      But when obsolete changeset are visible, it is very useful to understand where
      they are. Having it in log could be sufficient for most people, so they don't
      have to learn a new command (like obslog which is itself useful in case of
      divergences).
      
      For example, when pulling and working directory parent become obsolete:
      
        $ hg pull
        ...
        working directory parent is obsolete! (f936c1697205)
      
      This message comes from the Evolve extension.
      
      Obsfate would comes handy:
      
        $ hg log -G
        o  changeset:   2:6f91013c5136
        |  tag:         tip
        |  parent:      0:4ef7b558f3ec
        |  user:        Boris Feld <boris.feld@octobus.net>
        |  date:        Mon Oct 09 16:00:27 2017 +0200
        |  summary:     A
        |
        | @  changeset:   1:f936c1697205
        |/   user:        Boris Feld <boris.feld@octobus.net>
        |    date:        Mon Oct 09 16:00:27 2017 +0200
        |    obsfate:     rewritten using amend as 2:6f91013c5136
        |    summary:     -A
        |
        o  changeset:   0:feb4dd822b8c
           user:        Boris Feld <boris.feld@octobus.net>
           date:        Tue Oct 09 16:00:00 2017 +0200
           summary:     ROOT
      
      And once we update, we don't have an obsolete changeset in the log anymore so
      we don't show obsfate anymore, most users won't see obsfate often if they
      don't have obsolete changeset often:
      
        @  changeset:   2:6f91013c5136
        |  tag:         tip
        |  parent:      0:4ef7b558f3ec
        |  user:        Boris Feld <boris.feld@octobus.net>
        |  date:        Mon Oct 09 16:00:27 2017 +0200
        |  summary:     A
        |
        o  changeset:   0:feb4dd822b8c
           user:        Boris Feld <boris.feld@octobus.net>
           date:        Tue Oct 09 16:00:00 2017 +0200
           summary:     ROOT
      d45236f3
  16. Oct 09, 2017
  17. Oct 06, 2017
  18. Oct 05, 2017
    • Boris Feld's avatar
      templatekw: introduce obsfate keyword · e27f1f04
      Boris Feld authored
      Introduce an obsfate printer that uses all helpers functions defined in
      obsutil to get all the obsfate-related data and format a string according to
      the current format in test-obsmarker-template.t.
      
      Then, introduce an obsfate templatekw that uses the obsfateprinter to return a
      list of strings.
      
      The goal is not to replace existing obsfate template functions but to propose
      a default, good-enough and easily usable obsfate definition for end-users that
      don't want to customize it. Such output would ultimately get included in the
      default log output.
      
      Here are some output examples for a commit amended:
      
      rewritten using amend as 5:a9b1f8652753 by test (at 1970-01-01 00:00 +0000)
      
      Next patches will make the output dependent on the verbosity.
      
      Exemple of use-cases:
      
      For having the obsfate on a single-line between brackets:
      
        {if(obsfate, " [{join(obsfate, "; ")}]")}
      
      For having the obsfate in several lines:
      
        {if(obsfate, "{obsfate % "  Obsfate: {fate}\n"}")}
      e27f1f04
  19. Oct 09, 2017
    • Pulkit Goyal's avatar
      copies: add a config to limit the number of candidates to check in heuristics · f05a6e01
      Pulkit Goyal authored
      The heuristics algorithm find possible candidates for move/copy and then check
      whether they are actually a copy or move. In some cases, there can be lot of
      candidates possible which can actually slow down the algorithm.
      
      This patch introduces a config option
      `experimental.copytrace.movecandidateslimit` using which one can limit the
      candidates to check. The limit defaults to 100.
      
      Thanks to Yuya for suggesting to skip copytracing for that file with a
      warning.
      
      Differential Revision: https://phab.mercurial-scm.org/D987
      f05a6e01
  20. Oct 17, 2017
Loading