1. 06 Jul, 2020 4 commits
  2. 03 Jul, 2020 1 commit
  3. 06 Jul, 2020 1 commit
  4. 07 Jul, 2020 1 commit
    • Antoine Cezar's avatar
      rhg: add a limited `rhg root` subcommand · 18f8d3b31baa
      Antoine Cezar authored
      Clap has been choosen for argument parsing for the following reasons:
      
      - it's a wildly used and maintained crate
      - it can deal with OS encoding making it suitable for any encoding
      - it supports nonambiguous prefix matching as already available in hg
      - it will soon allow for structopts-style declarative pattern instead of the
        currently used builder pattern
      
      Differential Revision: https://phab.mercurial-scm.org/D8613
      18f8d3b31baa
  5. 05 Jun, 2020 1 commit
  6. 07 Jul, 2020 1 commit
  7. 05 Jul, 2020 2 commits
  8. 04 Jul, 2020 4 commits
  9. 02 Jul, 2020 1 commit
  10. 04 Jul, 2020 1 commit
  11. 02 Jul, 2020 2 commits
  12. 03 Jul, 2020 1 commit
    • Pulkit Goyal's avatar
      chg: suppress OSError in _restoreio() and add some logging (issue6330) · 3862de62d5cf
      Pulkit Goyal authored
      According to issue6330, running chg on heavy loaded systems can lead to
      following error:
      
      ```
      Traceback (most recent call last):
        File "path-to-hg/mercurial/commandserver.py", line 650, in _acceptnewconnection
          self._runworker(conn)
        File "path-to-hg/mercurial/commandserver.py", line 701, in _runworker
          prereposetups=[self._reposetup],
        File "path-to-hg/mercurial/commandserver.py", line 470, in _serverequest
          sv.cleanup()
        File "path-to-hg/mercurial/chgserver.py", line 381, in cleanup
          self._restoreio()
        File "path-to-hg/mercurial/chgserver.py", line 444, in _restoreio
          os.dup2(fd, fp.fileno())
      OSError: [Errno 16] Device or resource busy
      ```
      
      [man dup2] indicates that, on Linux, EBUSY comes from a race condition
      between open() and dup2().
      
      However it's not clear why open() race occurred for newfd=stdin/out/err.
      
      We suppress the OSError in _restoreio() since the forked worker process will
      finish anyway and add some logging.
      
      Thanks to Mitchell Plamann for a detailed bug description and Yuya Nishihara for
      suggesting the fix.
      3862de62d5cf
  13. 02 Jul, 2020 1 commit
  14. 03 Jul, 2020 1 commit
    • Manuel Jacob's avatar
      py3: fix crash when server address is 0.0.0.0 (issue6362) · b1a1702262c9
      Manuel Jacob authored
      `socket.getfqdn()` assumes that the name is passed as `str` on Python 3 and
      always returns `str` in this case. Mercurial passed `bytes` (but still expected
      a `str` result), which worked by chance in many cases, except for e.g.
      b'0.0.0.0', which was returned unchanged, breaking later code.
      
      Instead of calling `socket.getfqdn()`, we can also use `self.server_name` from
      the base `HTTPServer` class, which already stores the FQDN of the locally-bound
      socket name (see `BaseHTTPServer.py` in the Python 2 stdlib and
      `http/server.py` in the Python 3 stdlib).
      b1a1702262c9
  15. 01 Jul, 2020 2 commits
  16. 29 Jun, 2020 1 commit
  17. 01 Jul, 2020 2 commits
  18. 30 Jun, 2020 1 commit
    • Manuel Jacob's avatar
      convert: handle percent-encoded bytes in file URLs like Subversion · 0ea9c86fac89
      Manuel Jacob authored
      75b59d221aa3 added most of the code that gets removed by this patch. It helped
      making progress on Python 3, but the reasoning was wrong in many ways. I tried
      to retract it while it was queued, but it was too late.
      
      Back then, I was asssuming that what happened on Python 2 (preserving bytes) is
      correct and my Python 3 change is a hack. However it turned out that Subversion
      interprets percent-encoded bytes as UTF-8. Accepting the same format as
      Subversion is a good idea.
      
      Consistency with urlreq.pathname2url() (as described in the removed comment)
      doesn’t matter because that function is only used for passing paths to urllib.
      
      This is not a backwards-incompatible change because before 5c0d5b48e58c,
      non-ASCII filenames didn’t work at all on Python 2.
      
      When the locale encoding is ISO-8859-15, `svn` accepts `file:///tmp/a%E2%82%AC`
      for `/tmp/a€`. Before this patch, this was the case for this extension on
      Python 3, but not on Python 2. This patch makes it work like with `svn` on both
      Python 2 and Python 3.
      0ea9c86fac89
  19. 18 Jun, 2020 1 commit
  20. 29 Jun, 2020 1 commit
  21. 28 Jun, 2020 2 commits
  22. 25 Jun, 2020 5 commits
  23. 28 Jun, 2020 1 commit
  24. 27 Jun, 2020 1 commit
  25. 30 Jun, 2020 1 commit