Skip to content
Snippets Groups Projects
  1. Jul 16, 2020
  2. Jul 17, 2020
    • Manuel Jacob's avatar
      aea246bc
    • Manuel Jacob's avatar
      discovery: change users of `outgoing.missingheads` to `outgoing.ancestorsof` · c93dd9d9
      Manuel Jacob authored
      The attribute `missingheads` was recently renamed to `ancestorsof`, as it,
      despite the old name, doesn’t contain the missing heads but the changesets that
      were requested (including ancestors) for the outgoing operation.
      
      Changing all the users enables to print a warning if the old name is used.
      
      There is a good chance that some of the users are buggy because of the old name.
      Changing them to use the new name makes it more obvious that they are buggy. All
      users need to be reviewed for bugs. When sending patches for fixing them, the
      change will be more obvious without having to explain again and again the
      discrepancy of the old attribute name and what it actually contained.
      c93dd9d9
  3. Jul 15, 2020
    • Manuel Jacob's avatar
      discovery: fix docstring of `outgoing` class · 5631b011
      Manuel Jacob authored
      Also, introduce a more correct name `ancestorsof` for what was named
      `missingheads` before. For now, we just forward `ancestorsof` to `missingheads`
      until all users are changed.
      
      There were some mistakes in the old docstring / name:
      
      * `missingheads` (new name: `ancestorsof`) contains the revs whose ancestors
        are included in the outgoing operation. It may contain non-head revs and revs
        which are already on the remote, so the name "missingheads" is wrong in two
        ways.
      * `missing` contains only ancestors of `missingheads`, so not *all nodes*
        present in local but not in remote.
      * `common` might not contain all common revs, e.g. not some that are not an
        ancestor of `missingheads`.
      
      It seems like the misleading name have fostered an actual bug (issue6372),
      where `outgoing.missingheads` was used assuming that it contains the heads of
      the missing changesets.
      5631b011
    • Manuel Jacob's avatar
      discovery: weaken claim about returned common heads if ancestorsof are given · 75f6491b
      Manuel Jacob authored
      As the test case shows, the claim is not true in general.
      75f6491b
  4. Jul 16, 2020
  5. Jul 15, 2020
  6. Jul 16, 2020
  7. Jul 15, 2020
  8. Jul 16, 2020
  9. Jul 07, 2020
  10. Jun 01, 2020
    • Manuel Jacob's avatar
      absorb: make it explicit if empty changeset was created · f5509998
      Manuel Jacob authored
      If the config rewrite.empty-successor=skip is set, a message "became empty and
      was dropped" is shown if the changeset became empty. If the config
      rewrite.empty-successor=keep is set, absorb may create changesets even if they
      became empty. It’s probably a good idea to make that explicit. Therefore the
      message is changed to be a combination of both: "became empty and became ...".
      
      Repeating the word "became" is not very elegant. This results from the fact
      that "became" was and is overloaded to indicate both the change from non-empty
      to empty and the successor relation. In the combinated message, both meanings
      are used in one sentence.
      f5509998
    • Manuel Jacob's avatar
      absorb: consider rewrite.empty-successor configuration · 3ee8e2d5
      Manuel Jacob authored
      This adds support for the recently added rewrite.empty-successor configuration.
      3ee8e2d5
    • Manuel Jacob's avatar
      rebase: consider rewrite.empty-successor configuration · 1efbfa9b
      Manuel Jacob authored
      This adds support for the recently added rewrite.empty-successor configuration.
      1efbfa9b
  11. Jul 12, 2020
  12. Jul 11, 2020
    • Manuel Jacob's avatar
      config: add option to control creation of empty successors during rewrite · b6269741
      Manuel Jacob authored
      The default for many history-rewriting commands (e.g. rebase and absorb) is
      that changesets which would become empty are not created in the target branch.
      This makes sense if the source branch consists of small fix-up changes. For
      more advanced workflows that make heavy use of history-editing to create
      curated patch series, dropping empty changesets is not as important or even
      undesirable.
      
      Some users want to keep the meta-history, e.g. to make finding comments in a
      code review tool easier or to avoid that divergent bookmarks are created. For
      that, obsmarkers from the (to-be) empty changeset to the changeset(s) that
      already made the changes should be added. If a to-be empty changeset is pruned
      without a successor, adding the obsmarkers is hard because the changeset has to
      be found within the hidden part of the history.
      
      If rebasing in TortoiseHg, it’s easy to miss the fact that the to-be empty
      changeset was pruned. An empty changeset will function as a reminder that
      obsmarkers should be added.
      
      Martin von Zweigbergk mentioned another advantage. Stripping the successor will
      de-obsolete the predecessor. If no (empty) successor is created, this won’t be
      possible.
      
      In the future, we may want to consider other behaviors, like e.g. creating the
      empty successor, but pruning it right away. Therefore this configuration
      accepts 'skip' and 'keep' instead of being a boolean configuration.
      b6269741
  13. Aug 31, 2019
  14. Jul 06, 2020
  15. Jul 07, 2020
    • Jörg Sonnenberger's avatar
      phases: sparsify phase lists · b1e51ef4
      Jörg Sonnenberger authored
      When the internal and archived phase was added, allphase became a large,
      sparsely populated list. This dramatically increased the number of
      lookup operations for public relations in `phasecache.phase`. As a first
      step, define allphases and related lists explicitly to contain only the
      actual phases. Make phasenames a dictionary and create corresponding
      dictionaries for mapping phase names back to numbers. Adjust various
      list to be sparse as well with the exception of phaseroots and phasesets
      members of phasecache. Keep those as a separate step as it involves
      changes to the C module.
      
      Differential Revision: https://phab.mercurial-scm.org/D8697
      b1e51ef4
    • Jörg Sonnenberger's avatar
      phases: updatephases should not skip internal phase · 361a7444
      Jörg Sonnenberger authored
      Historically, updatephases used to skip the secret phase, but wasn't
      updated when archived and internal were added.
      
      Differential Revision: https://phab.mercurial-scm.org/D8696
      361a7444
  16. Jun 27, 2020
  17. Jul 07, 2020
  18. Jun 24, 2020
    • Raphaël Gomès's avatar
      hg-core: define a `dirstate_status` `Operation` · 98817e5d
      Raphaël Gomès authored
      This is 3/3 in a series of patches to improve dirstate status' code.
      
      Following in the footsteps of a46e36b82461, we move the main status
      functionality to an `Operation`. This will most likely be subject to change in
      the future (what function signature, what parameters, etc., but we will see
      when `rhg` gets `hg status` support.
      
      Differential Revision: https://phab.mercurial-scm.org/D8663
      98817e5d
    • Raphaël Gomès's avatar
      rust-status: improve documentation and readability · 470d306e
      Raphaël Gomès authored
      This patch is 2/3 in the series to improve the dirstate status code. It adds a
      number of common type aliases to add more obvious semantics to function
      signatures, improves/adds documentation where necessary and improves one or two
      patterns to be more idiomatic.
      
      Differential Revision: https://phab.mercurial-scm.org/D8662
      470d306e
    • Raphaël Gomès's avatar
      rust-status: refactor status into a struct · 7528699c
      Raphaël Gomès authored
      The code for `dirstate/status` has grown too large for comfort, this is the
      first of three patches that try to improve maintainability.
      In this patch, refactoring dirstate's status into a struct allows for slimming
      down function signatures drastically, keeping the mental (and maintenance)
      burden lower, since pretty much all of them shared a few common arguments.
      
      This had the pleasant side-effect of simplifying lifetimes a little. This has
      no observable impact on performance.
      
      The next patch will add/improve documentation and refactor some types. I tried
      to keep new code down to a minimum in this patch because it's already pretty
      big.
      
      Differential Revision: https://phab.mercurial-scm.org/D8661
      7528699c
  19. Dec 14, 2019
  20. Jun 22, 2020
  21. Apr 14, 2020
Loading