This instance will be upgraded to Heptapod 0.21.0rc2 on 2021-04-16 at 11:00 UTC+2 (a few minutes of down time)

  1. 14 Jun, 2020 1 commit
    • Manuel Jacob's avatar
      commit: rename ParentWidget to WDirInfoWidget · 0fae0d10114e
      Manuel Jacob authored
      It’s the widget which is shown above the commit message field. Currently, it
      shows only information about the parents of the working directory, but a
      subsequent patch will change that.
  2. 29 Apr, 2020 1 commit
  3. 05 Mar, 2020 1 commit
  4. 03 Feb, 2020 1 commit
  5. 01 Feb, 2020 2 commits
  6. 08 Jan, 2020 1 commit
  7. 11 Dec, 2019 1 commit
  8. 07 Dec, 2019 2 commits
    • Yuya Nishihara's avatar
      commit: reuse dict.get() result to help pytype · d8fe01486ecf
      Yuya Nishihara authored
      Suppresses the following false positives:
        line 1193, in __init__: Key 'user' possibly not in dictionary (yet)
        Called from (traceback):
          line 704, in details
        line 1236, in __init__: Key 'date' possibly not in dictionary (yet)
        Called from (traceback):
          line 704, in details
    • Yuya Nishihara's avatar
      typing: explicitly convert IOError to str · 917484709bc8
      Yuya Nishihara authored
      Suppresses the following errors:
        File "tortoisehg/hgqt/", line 1349, in saveToPath: Function
        tortoisehg.util.hglib.tounicode was called with the wrong arguments
          Expected: (s: None)
          Actually passed: (s: OSError)
        File "tortoisehg/hgqt/", line 1372, in savePushAfter: Function
        tortoisehg.util.hglib.tounicode was called with the wrong arguments
          Expected: (s: None)
          Actually passed: (s: OSError)
        File "tortoisehg/hgqt/", line 1395, in saveAutoInc: Function
        tortoisehg.util.hglib.tounicode was called with the wrong arguments
          Expected: (s: None)
          Actually passed: (s: OSError)
        File "tortoisehg/hgqt/", line 1418, in saveRecurseInSubrepos:
        Function tortoisehg.util.hglib.tounicode was called with the wrong
        arguments [wrong-arg-types]
          Expected: (s: None)
          Actually passed: (s: OSError)
  9. 26 Nov, 2019 2 commits
    • Matt Harbison's avatar
      commit: fix a crash generating the final page of the merge dialog · 088909ebb381
      Matt Harbison authored
      branch : stable
    • Manuel Jacob's avatar
      commit: make note less strong when amending a non-head revision · 8d42452f74d1
      Manuel Jacob authored
      When the parent is a non-head revision, the commit widget shows a warning
      “Not a head revision!” in red color. This makes sense when committing because
      the common case is that a branch should have linear history.
      When amending a revision however, the user wants to amend a specific revision,
      so the note should not be a warning. Because it’s still a fact that the
      revision is not a head revision, the note is still shown, but not in red color.
      The reason for implementing this was that a colleague asked for help because
      the red color made him think that something is wrong.
  10. 21 Nov, 2019 1 commit
  11. 20 Nov, 2019 2 commits
    • muxator's avatar
      commit: fix regression introduced when making compatible with py2 & py3 · 35e37837a85e
      muxator authored
      Change cebe377df167 wrongly removed the "issue." prefix from two places in
      branch : stable
    • Matt Harbison's avatar
      commit: skip bugtraq setup if the plugin option is an empty string too · bc0901a46224
      Matt Harbison authored
      Starting with cebe377df167, a crash dialog appeared the first time clicking on
      the working directory, originating in the exception handler about 15 lines below
      this.  The cause is that repoAgent.configString() returns an empty string if
      ui.config() returns None.
      Prior to identifying this, I noticed that the error being sent to the exception
      handler is this:
          Traceback (most recent call last):
             File "C:\Users\Matt\projects\thg\tortoisehg\hgqt\", line 280, in setupBugTraqButton
               raise e
           WindowsError: [Error -2147221005] Invalid class string
      So the bugtraq stuff may be otherwise broken.  But at least it won't be a
      nuisance when it isn't configured.
      branch : stable
  12. 18 Nov, 2019 1 commit
    • Manuel Jacob's avatar
      py3: convert filenames to unicode before passing to escapepath (fixes #5480) · fb9035853199
      Manuel Jacob authored
      There were two reasons for this change.  First, hglib.escapepath doesn’t work
      with bytes on py3 (where it's generally harder to write code that works with
      both bytes and unicode).  Second, that’s what was already done for the
      filenames passed below to `hg commit`.  Being consistent allows further
      refactorings, like moving TortoiseHg’s filename handling to unicode in more
      branch : stable
  13. 13 Nov, 2019 1 commit
    • Manuel Jacob's avatar
      py3: replace uses of cgi.escape · 25b12546a142
      Manuel Jacob authored
      In Python 3.2, cgi.escape was deprecated in favor of the more safe html.escape,
      which replaces quotes by default and can also replace single quotes.
      In Python 3.8, cgi.escape was removed.
      Because html.escape is not available on Python 2.7, we call cgi.escape (but
      we change the behavior to escape double quotes by default). It doesn't escape
      single quotes, but that's not relevant to us.
      In most cases, I preserved the actual value of the 'quote' argument. However,
      in cases where the result was used in an HTML attribute, I changed the code
      to use the new default behavior.
      branch : stable
  14. 06 Nov, 2019 2 commits
    • muxator's avatar
      py3: make commit functionality working on py2 & py3 · 7d1cc65e24cc
      muxator authored
      Before this change, trying to commit something under python3 would fail with a
      set of messages like the following one:
          File "/opt/mercurial/thg/tortoisehg/hgqt/", line 604, in mqPerformAction
            return self.commit()
          File "/opt/mercurial/thg/tortoisehg/hgqt/", line 952, in commit
          File "/usr/lib/python3/dist-packages/mercurial/", line 688, in configbool
            v = self._config(section, name, default, untrusted=untrusted)
          File "/usr/lib/python3/dist-packages/mercurial/", line 585, in _config
            msg %= (section, name)
        TypeError: %b requires a bytes-like object, or an object that implements __bytes__, not 'str'
      And, in addition, this traceback would be triggered when trying to split the
      'autoinc' string:
          File "/opt/mercurial/thg/tortoisehg/hgqt/", line 604, in mqPerformAction
            return self.commit()
          File "/opt/mercurial/thg/tortoisehg/hgqt/", line 1101, in commit
            for fname in self.opts.get('autoinc', '').split(b','):
        TypeError: must be str or None, not bytes
      Tested compatibility with:
        - python2.7, mercurial 5.1.2
        - python3.7, mercurial 5.2
    • muxator's avatar
      py3: the commit widget no longer crashes when showing the working copy status · cebe377df167
      muxator authored
      Before this change, on python3.7 and hg 5.2, the commit widget would crash when
      trying to show the status of the working copy. This was due to problems in
      populating a configuration structure.
      This change builds on the work done in f63ca64e4688 on RepoAgent, and redefines
      readopts() to use a cross-compatible way of loading configuration data.
      Also changed the other call site for readopts() in
      Please note that in this revision the "commit" functionality is still not
      working, because of the very same problem. This will be addressed in the next
      Tested compatibility with:
        - python2.7, mercurial 5.1.2
        - python3.7, mercurial 5.2
  15. 26 Sep, 2019 1 commit
  16. 01 Sep, 2019 2 commits
  17. 28 Aug, 2019 1 commit
    • kiilerix's avatar
      py3: fix "commit" types · 92874b0accad
      kiilerix authored
      We keep the commit command and thus the file list as unicode all the way.
  18. 25 Aug, 2019 3 commits
  19. 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)
          * gpg.key
          * hostfingerprints.*  (strange the default here is a list)
        - `tortoisehg.overlayicons` in nautilus-thg needs to be registered, as does
        - `` still takes a default because it is dynamicdefault
  20. 18 Aug, 2019 1 commit
  21. 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 because that
      module declares the dependency on mercurial.
  22. 02 May, 2019 1 commit
    • Matt Harbison's avatar
      commit: force the amend message to reload when refreshing the working state · 4ee0b26586b0
      Matt Harbison authored
      For several years on Linux, I noticed a problem when amending deep within the
      commit stack.  It was never a problem on Windows 7, but seems to be a consistent
      issue on Windows 10 too.
          o -- A -- B -- C
      If 'A' was amended in thg, then 'B' was evolved and then updated to, the amend
      widget would retain the amend message of 'A'.  The refresh buttons didn't help
      update it, nor did switching from amend -> commit -> amend.  The only way to
      correct this was to exit and relaunch thg.  (Actually, I think I managed to get
      it to correct itself recently, but don't remember how.  It might have involved
      rebasing something, or some similar repo change.)  If switching 'amend' back to
      'commit' in the comboxbox before evolving, the message would be correct when
      trying to amend 'B'.
      I don't really understand the code here, so I'm not sure if this is the best
      way to handle it.  But special casing 'amend' seems like the safest thing to do.
      I'm still baffled why Windows 7 never hits this.  I had assumed that it was a
      matter of a PyQt bug on Linux, or missing some UI event message, or similar.
      But that appears not to be the case.
      branch : stable
  23. 30 Apr, 2019 1 commit
  24. 12 Apr, 2019 1 commit
    • Matt Harbison's avatar
      py3: replace dict.iteritems() with .items() · 7b6638ab4daf
      Matt Harbison authored
      Converted with `2to3 -w -n -f dict .`, and then remove a bunch of list()
      wrapping.  The only place it seemed necessary was in, as the
      collection is traversed more than once.
  25. 13 Feb, 2020 1 commit
    • Matt Harbison's avatar
      amend: don't silently ignore reverted files · 0bc65a11f482
      Matt Harbison authored
      The problem was that switching to amend mode would display the status of '.^^'
      against wdir, so reverted files look clean, even though they are M against p1().
      That in turn hid the reverted files from view by default, and excluded them from
      the command line list of files.  If there were other changes, the amend would
      work, but exclude the reverted files.  If there were not other changes, the
      amend failed with "nothing changed".
      This forces the clean files from the status calculation to be visible in the
      file tree and in the checked state, like unresolved clean files.  It's a bit
      unfortunate that they aren't grouped together with the M and R files (I've got
      several untracked files in the test repo).  I'm also not sure why the `st.clean`
      list is being partially populated without requesting clean files.  (I forced
      `clean=True` here, and got *all* of the clean files.)
      These amend candidates are tracked separately because it seems too risky to try
      to ask for checked C files from the status widget when amending.
  26. 05 May, 2019 2 commits
  27. 24 Mar, 2019 1 commit
  28. 23 Mar, 2019 2 commits
  29. 21 Sep, 2018 1 commit
  30. 22 May, 2018 1 commit