1. 15 Oct, 2020 1 commit
  2. 05 Oct, 2020 1 commit
    • Jörg Sonnenberger's avatar
      unbundle: free temporary objects after use · 44d84b726c8a
      Jörg Sonnenberger authored
      This reduces peak RSS for larger unbundle operations by ~30 Bytes per
      changeset on AMD64. This can't be a direct delete for Python 2.7, so
      reset the object instead and leave a comment.
      
      The efilesset object can't be deleted as it is referenced by the local
      onchangelog function and Python 2.7 rejects a delete on the existance of
      a nested scope.
      
      Differential Revision: https://phab.mercurial-scm.org/D9153
      44d84b726c8a
  3. 13 Oct, 2020 1 commit
  4. 14 Oct, 2020 2 commits
  5. 08 Sep, 2020 1 commit
    • Yuya Nishihara's avatar
      revset: add diff(pattern) predicate for "grep --diff" · 99b8b73eb622
      Yuya Nishihara authored
      I find this is useful in GUI log viewer since the tool only needs to support
      "log -rREV" command.
      
      This is basic implementation. Windowed search is not implemented since it
      wouldn't work pretty well with the smartset API. And filename matcher is
      not supported because the syntax isn't determined. My idea is to add handling
      of diff(pattern, file(..)) and diff(pattern, follow(..)), which will then be
      evolved to a full revset+matcher combinator support:
      
        x & diff(pattern, y & z)
                          =====
                          y & z builds (revs(y) & revs(z), matcher(y) & matcher(z))
                          pair, and narrows the search space of diff()
            ====================
            diff() returns matched (revs, matcher) pair
        ========================
        revs and matcher will be combined respectively by &-operator, and the matcher
        will optionally be used to filter "hg log -p" output
      
      The predicate name "diff()" wouldn't be great, but grep() is already used.
      Another options I can think of are "grepdiff()" and "containsdiff()".
      Naming suggestions are welcome.
      99b8b73eb622
  6. 05 Oct, 2020 1 commit
  7. 14 Oct, 2020 1 commit
  8. 05 Oct, 2020 1 commit
  9. 09 Sep, 2020 1 commit
  10. 04 Oct, 2020 1 commit
    • Yuya Nishihara's avatar
      scmutil: move walkchangerevs() from cmdutil · 508dfd1c18df
      Yuya Nishihara authored
      It's no longer a command-level function, but a pure helper to walk revisions
      in a windowed way. This change will help eliminate reverse dependency of
      revset.py -> grep.py -> cmdutil.py in future patches.
      508dfd1c18df
  11. 09 Sep, 2020 1 commit
  12. 13 Oct, 2020 2 commits
  13. 14 Oct, 2020 1 commit
    • Kyle Lippincott's avatar
      record: when backing up, avoid generating very long filenames · 9628d3cd9d13
      Kyle Lippincott authored
      If the original file's path is longer than the individual filename maximum
      length (256 on Linux, I believe?), then this mechanism of "replace slashes with
      underscores" causes an error.
      
      Now, we'll produce just the "basename" of the file, plus some stuff to ensure
      it's unique. This can be potentially confusing for users if there's a file with
      the same name in multiple directories, but I suspect that this is better than
      just breaking.
      
      Example:
      `<reporoot>/a/long/path/to/somefile.txt` used to be backed up as
      `<reporoot>/.hg/record-backups/a_long_path_to_somefile.txt.abcdefgh`, it will
      now be backed up as `<reporoot>/.hg/record-backups/somefile.txt.abcdefgh`
      
      We could do the naive thing (what we were doing before) and have it to doing
      something with either subdirectories
      (`<backuproot>/a/long/path/to/somefile.txt.abcdefgh` or minimize #dirs with
      `<backuproot>/a_long_path/to_somefile.txt.abcdefgh`), prefix-truncated paths
      (such as `<backuproot>/__ath_to_somefile.txt.abcdefgh`, where that `__` elides
      enough to get us under 255 chars (counting the +9 we need to add!)), or
      hash-of-dirname (`<backuproot>/<sha1sum_of_dirname>/somefile.txt.abcdefgh`), but
      ultimately every option felt over engineered and that it would be more likely to
      cause problems than it would be to solve any, especially if it was conditional
      on directory length.
      
      Differential Revision: https://phab.mercurial-scm.org/D9207
      9628d3cd9d13
  14. 10 Oct, 2020 1 commit
  15. 06 Oct, 2020 1 commit
  16. 09 Oct, 2020 1 commit
  17. 10 Oct, 2020 4 commits
  18. 09 Oct, 2020 1 commit
  19. 09 Sep, 2020 6 commits
  20. 08 Oct, 2020 1 commit
  21. 09 Oct, 2020 1 commit
  22. 08 Oct, 2020 3 commits
  23. 07 Oct, 2020 4 commits
  24. 06 Oct, 2020 1 commit
  25. 01 Oct, 2020 1 commit