1. 19 Mar, 2022 1 commit
    • Yuya Nishihara's avatar
      license: update license to GPLv2+ · b3c7242073f6
      Yuya Nishihara authored
      I agree with Mads Kiilerich that "since most contributors have given explicit
      approval and (AFAIK) nobody has objected, I think we in good faith can move
      forward and change the license.
      
      If anybody should object later, the trivial mitigation is to change the
      license back, but it would probably also be possible to remove their code."
      
      Closes #5748, #5763
      
      --HG--
      branch : stable
      b3c7242073f6
  2. 05 Apr, 2022 1 commit
    • Matt Harbison's avatar
      qtcompat: fully qualify the QDialogButtonBox enums · 870f35421834
      Matt Harbison authored
      These weren't caught with the script because of the local aliasing of the class
      name.  These were fished out of the pile of changes made by the modified
      replacement script described a few commits back, the class aliases eliminated,
      and then the original replacement script re-run, with a few reversions of
      `QLibraryInfo.LibraryPath` to keep PyQt5 compatibility.
      870f35421834
  3. 24 Jul, 2021 1 commit
    • Aay Jay Chan's avatar
      visdiff: remove `dodiffwrapper()` · 14125eaac673
      Aay Jay Chan authored
      Since b85e65f3a070 (visdiff: use qtlib.gettempdir(), 2010-05-08), temporary
      files are cleaned up on application exit.  `dodiffwrapper()` doesn't do any
      actual work, only logs a misleading message.
      14125eaac673
  4. 14 Apr, 2021 1 commit
  5. 11 Apr, 2021 2 commits
    • Matt Harbison's avatar
      visdiff: add support for filesets · a04ef9b0da0c
      Matt Harbison authored
      Previously, it stacktraced with a ProgrammingError because of the missing ctx.
      The `hg diff` command uses ctx2 here too.
      a04ef9b0da0c
    • Matt Harbison's avatar
      visdiff: filter copy data through the file matcher to hide unrelated changes · dc379588cfc3
      Matt Harbison authored
      I noticed this hacking on some other functionality, but it can be seen with an
      existing command like this when updated to any recent change:
      
          $ python thg vdiff -r 5bfef52bfcc9 tortoisehg/hgqt/qsci.py tortoisehg/hgqt/qtcore.py
      
      All of the subsequent file copies that took place between then and now get
      included in the snapshots, even though they weren't related.  Two files need to
      match to invoke a dirdiff, otherwise the snapshot of the unrelated files occurs,
      but only the named one is diffed.  The same behavior occurs if two of the files
      in the manifest view of that revision are selected and diffed to local.
      
      The filtering might still be a little generous in that it matches either the
      source or destination.  But I'm not sure what the data looks like for a diff
      from new -> old as opposed to old -> new, and order of revision selection might
      be a little too subtle in the GUI.
      dc379588cfc3
  6. 10 Apr, 2021 1 commit
  7. 09 Apr, 2021 1 commit
    • Matt Harbison's avatar
      typing: add type hints to tortoisehg/hgqt/visdiff.py · b4c2c53d1349
      Matt Harbison authored
      There are a handful of `annotation-type-mismatch` suppressions for constructs
      like a function's Text arg being immediately overwritten with the bytes form of
      the argument.  This is an experimental diagnostic that needs to be explicitly
      enabled in pytype (for now), but such uses also seem to confuse PyCharm.  It
      does seem reasonable to overwrite the argument after converting between bytes
      and unicode, but one such overwrite at the end of the function wasn't as
      useful, so it has been elided away.
      b4c2c53d1349
  8. 10 Apr, 2021 1 commit
  9. 07 Apr, 2021 1 commit
    • Matt Harbison's avatar
      thg: convert all `scmutil.revsymbol()` uses to `hglib.revsymbol()` · 710c0d416cbd
      Matt Harbison authored
      Since the function could theoretically return a workingctx, there are a couple
      places that need type assertions where attributes are accessed that are not on
      basectx.
      
      Additionally, pytype flagged the mq module for calling a function on the custom
      context subclass, so that is now suppressed.  I'm assuming these context
      subclass functions would be better off being unbound methods in a `contextutil`
      module or similar, because the hidden subclass is confusing the typing some
      times, and it's weird that some functions on a context return unicode.
      710c0d416cbd
  10. 31 Jul, 2020 1 commit
    • Matt Harbison's avatar
      cleanup: drop `procutil.quotecommand()` · 77c946f56861
      Matt Harbison authored
      This was dropped in hg 8e8fd938ca07 after py2.7.1 compat code was removed from
      it in hg 5258bffdb1d6, and it simply became an identity function.
      
      --HG--
      branch : stable
      77c946f56861
  11. 07 Feb, 2020 1 commit
  12. 04 Feb, 2020 1 commit
    • Matt Harbison's avatar
      visdiff: convert the tool command back to str before displaying in an error dlg · eb63baf582e8
      Matt Harbison authored
      The str cast is necessary, otherwise an AttributeError is raised saying (for
      example) that 'FileNotFoundError' object has no attribute 'decode'.  In testing
      this (by trying to `subprocess.Popen("NULL")`), the error dialog pops up with
      the title, but nothing else in the box.  The following message is printed in the
      terminal, and the whole process hangs:
      
          QObject::startTimer: Timers can only be used with threads started with QThread
      
      --HG--
      branch : stable
      eb63baf582e8
  13. 06 Feb, 2020 1 commit
  14. 04 Feb, 2020 4 commits
  15. 01 Feb, 2020 1 commit
  16. 15 Dec, 2019 1 commit
  17. 21 Mar, 2021 1 commit
  18. 10 Mar, 2021 1 commit
  19. 18 Nov, 2019 1 commit
  20. 15 Nov, 2019 1 commit
  21. 07 Sep, 2019 1 commit
  22. 11 Sep, 2019 1 commit
  23. 20 Sep, 2019 1 commit
  24. 11 Sep, 2019 1 commit
  25. 07 Sep, 2019 1 commit
    • kiilerix's avatar
      py3: fix visdiff.launchtool · f33d43f06d0a
      kiilerix authored
      Don't change that things are passed as byte string, but accept that the
      'replace' dict has system string as key so it can be created as 'dict()' with
      named parameters.
      f33d43f06d0a
  26. 31 Aug, 2019 1 commit
  27. 25 Aug, 2019 1 commit
    • kiilerix's avatar
      assert: try to show some relevant value when an assert fails · 54976f208547
      kiilerix authored
      Debugging and print statements can tell more about failing asserts, but it is
      nice to get *some* information up front, also to make it easier to reproduce.
      
      General guidelines:
      
      Try to avoid anything that must compute something and thus can fail - try to
      just inspect local variables (or whatever assert looked at).
      
      For type related asserts, try to add repr().
      
      Sometimes, multiple variables are relevant - in that case use tuples.
      54976f208547
  28. 23 Aug, 2019 1 commit
    • Matt Harbison's avatar
      configitems: drop the default parameters for registered items · 2cd812a72398
      Matt Harbison authored
      A couple of notable things:
      
        - `tortoisehg.autoresolve` still gets a default value in backout and rebase,
          even though it is not registered dynamicdefault.
      
        - the following were left with '' as the default, because it is used to set
          text with a QString, and it is unknown how far back None would be accepted.
          (Any other '' -> None conversions are not used to set text)
      
          * email.cc
          * email.to
          * gpg.key
          * hostfingerprints.*  (strange the default here is a list)
      
        - `tortoisehg.overlayicons` in nautilus-thg needs to be registered, as does
          `debug.delaylock`.
      
        - `web.name` still takes a default because it is dynamicdefault
      2cd812a72398
  29. 13 Jun, 2020 1 commit
    • Matt Harbison's avatar
      visdiff: account for the new `copies.branch_copies` class · 3fcde995dc6a
      Matt Harbison authored
      Double clicking any file in a merge commit that is a descendant of a commit with
      copies was triggering a crash dialog.  It didn't seem to happen in the original
      commit, or other merges in a private repo where the problem was discovered.
      
      --HG--
      branch : stable
      3fcde995dc6a
  30. 19 May, 2019 1 commit
    • Matt Harbison's avatar
      py3: migrate unicode() to pycompat.unicode() · 6a0080d4e5a5
      Matt Harbison authored
      Fixed up after running `2to3 -w -n -f unicode .`, and re-adding the dropped u''
      prefixes.  The pycompat.unicode() hack is copied into setup.py because that
      module declares the dependency on mercurial.
      6a0080d4e5a5
  31. 14 Apr, 2019 1 commit
  32. 12 Apr, 2019 1 commit
  33. 24 Mar, 2019 1 commit
  34. 23 Mar, 2019 1 commit
  35. 08 Oct, 2018 1 commit
  36. 03 Oct, 2018 1 commit
    • Matt Harbison's avatar
      visdiff: use scmutil.revsymbol() to resolve --change · 2c8f85f3a8e7
      Matt Harbison authored
      I triggered this by accidentally double clicking a file in the shelved half of
      the shelf widget:
      
          Traceback (most recent call last):
            File "tortoisehg\hgqt\chunks.pyo", line 166, in vdiff
            File "tortoisehg\hgqt\visdiff.pyo", line 216, in visualdiff
            File "tortoisehg\hgqt\thgrepo.pyo", line 772, in __getitem__
            File "mercurial\localrepo.pyo", line 856, in __getitem__
            File "mercurial\context.pyo", line 439, in __init__
          ProgrammingError: unsupported changeid 'patch' of type <type 'str'>
      
      Now it pops up a message saying 'Unable to find changeset'.  Oddly, the value of
      --change in this case is 'patch', and I wasn't able to trigger this with visual
      diff.
      
      --HG--
      branch : stable
      2c8f85f3a8e7