Skip to content
Snippets Groups Projects
  1. Dec 07, 2021
  2. Dec 30, 2021
  3. Jan 04, 2022
  4. Jan 03, 2022
  5. Aug 25, 2021
  6. Feb 15, 2019
    • Jordi Gutiérrez Hermoso's avatar
      help: properly document the default pattern · 823e906d879d
      Jordi Gutiérrez Hermoso authored
      The default isn't to glob. It's relpath, which does no globbing at
      all. Thus most commands and options like -X/-I and hg files require
      `glob:` in front of them to actually do any globbing.
      
      I think long ago the default was to glob, but that hasn't been true
      for a long time.
      823e906d879d
  7. Dec 10, 2021
  8. Nov 16, 2021
  9. Dec 10, 2021
  10. Dec 08, 2021
  11. Dec 18, 2021
  12. Dec 17, 2021
  13. Nov 09, 2021
  14. Dec 08, 2021
    • Martin von Zweigbergk's avatar
      simplemerge: make `localorother` a "mode" instead of a separate thing · 5151b0f6519e
      Martin von Zweigbergk authored
      `simplemerge()` takes a `mode` argument, which can be "union", "merge"
      or "mergediff", and a `localorother` argument, which can be `None`,
      "local", or "other". The two options are not at all orthogonal -- most
      combinations don't make sense. Also, at least "union", "local", and
      "other" are very closely related. Therefore, it makes sense to combine
      them into one.
      
      It probably makes sense to split the `mode` argument into `resolve`
      and `marker_style`, where the former can be `None`, "union", "local",
      or "other", and the latter can be "merge", "merge3", "mergediff", or
      "minimize". This is a good step in that direction whether or not we
      end up doing that.
      
      Differential Revision: https://phab.mercurial-scm.org/D11887
      5151b0f6519e
  15. Dec 07, 2021
    • Martin von Zweigbergk's avatar
      fa159bb463e6
    • Martin von Zweigbergk's avatar
      simplemerge: stop merging file flags · 58a3be48ddd2
      Martin von Zweigbergk authored
      As 384df4db6520 (merge: merge file flags together with file content,
      2013-01-09) explains, we shouldn't do a 3-way merge of the
      symlink. However, since 84614212ae39 (flags: actually merge flags in
      simplemerge, 2020-05-16), we do that in
      `simplemerge.simplemerge()`. What's more, the merging of the
      executable flag there isn't actually necessary; it was made a no-op by
      the very next commit, i.e. 4234c9af515d (flags: read flag from
      dirstate/disk for workingcopyctx (issue5743), 2020-05-16).
      
      I found the overall flag-merging code (not the bit in
      `simplemerge.py`) very hard to follow, but I think I now finally
      understand how it works. `mergestate.resolve()` calculates the merged
      file flags and sets them on the local side of the merge (confusingly
      by calling `_restore_backup()`). Then it calls
      `filemerge.filemerge()`, which in turn calls
      `simplemerge.simplemerge()` (if premerge is enabled). That means that
      the flags on the local side `fcs.flags()` are already correct when the
      flag-merging code in `simplemerge.simplemerge()` runs. Interestingly,
      that code still works when the local side already has the merged
      value, it just doesn't change the value. Here's a truth table to
      explain why:
      
      ```
      BLOMCAR
      0000000
      0011111
      0101011
      0111111
      1000000
      1010000
      1100000
      1111101
      ```
      
      B: Base
      L: Local
      O: Other
      M: Merged flags from `mergestate.resolve()`, i.e. what's called "local"
         when we get to `simplemerge.simplemerge()`
      C: `commonflags` in `simplemerge.simplemerge()`, i.e. `M & O`
      A: `addedflags` in `simplemerge.simplemerge()`, i.e. `(M ^ O) - B`
      R: Re-merged flags `simplemerge.simplemerge()`, i.e. `C | A`
      
      As you can see, the re-merged flags are always unchanged compared to
      the initial merged flags (R equals M).
      
      Therefore, this patch effectively backs out 84614212ae39. (I might
      later refactor this code to have the flags explicitly passed in.)
      
      `simplemerge.simplemerge()` is also called from
      `contrib/simplemerge.py`, but that code never passes any flags.
      
      Differential Revision: https://phab.mercurial-scm.org/D11879
      58a3be48ddd2
  16. Dec 08, 2021
  17. Dec 06, 2021
  18. Dec 19, 2021
  19. Dec 17, 2021
  20. Dec 15, 2021
  21. Dec 14, 2021
    • Pierre-Yves David's avatar
      rank: add a "rank" value to the revlog-entry tuple · 52034c42c09d
      Pierre-Yves David authored
      The rank of a revision is the size of sub-graph it defines as a head. In other
      words, the rank of X is the size of `ancestors(X)` (X included).
      
      This is a property that can help various algorithm and we intend to store it in
      changelog-v2. We start with adding this new information to the "entry tuple",
      with a default value. We will start to compute and persist the rank later.
      
      Differential Revision: https://phab.mercurial-scm.org/D11936
      52034c42c09d
  22. Dec 15, 2021
  23. Dec 14, 2021
  24. Dec 15, 2021
  25. Nov 29, 2021
  26. Nov 16, 2021
  27. Dec 16, 2021
  28. Dec 17, 2021
  29. Dec 15, 2021
    • Matt Harbison's avatar
      pytype: stop excluding ssutil.py · 08af0adc235c
      Matt Harbison authored
      Pytype simply can't distinguish the type for this one entry's value from the
      other values:
      
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
            No attribute 'append' on None [attribute-error]
          In Optional[Union[Any, List[nothing], bool, bytes]]
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
            No attribute 'append' on bool [attribute-error]
          In Optional[Union[Any, List[nothing], bool, bytes]]
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 142, in _hostsettings:
            No attribute 'append' on bytes [attribute-error]
          In Optional[Union[Any, List[nothing], bool, bytes]]
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
            No attribute 'append' on None [attribute-error]
          In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
            No attribute 'append' on bool [attribute-error]
          In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
        File "/mnt/c/Users/Matt/hg/mercurial/sslutil.py", line 147, in _hostsettings:
            No attribute 'append' on bytes [attribute-error]
          In Optional[Union[Any, List[Tuple[Any, Any]], bool, bytes]]
      
      Differential Revision: https://phab.mercurial-scm.org/D11931
      08af0adc235c
    • Matt Harbison's avatar
      pytype: stop excluding wireprotoserver.py · 81805bba11f9
      Matt Harbison authored
      The `config` entry is a 2 part tuple, which has `__iter__()`:
      
        File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 253, in _availableapis:
            No attribute '__iter__' on Callable[[Any, Any], Any] [attribute-error]
          In Union[Callable[[Any, Any, Any, Any, Any], None], Callable[[Any, Any], Any]]
        File "/mnt/c/Users/Matt/hg/mercurial/wireprotoserver.py", line 253, in _availableapis:
            No attribute '__iter__' on Callable[[Any, Any, Any, Any, Any], None] [attribute-error]
          In Union[Callable[[Any, Any, Any, Any, Any], None], Callable[[Any, Any], Any]]
      
      Differential Revision: https://phab.mercurial-scm.org/D11930
      81805bba11f9
  30. Dec 14, 2021
Loading