Skip to content
Snippets Groups Projects
  1. Nov 12, 2019
    • Denis Laxalde's avatar
      py3: avoid iterating over a literal bytes in highlight · 856cce0c
      Denis Laxalde authored
      In Python 3, iterating over a bytes literal yields integers. Since we
      use the value in `text.replace()`, this fails on Python 3 with the
      following trackback:
      
          Traceback (most recent call last):
            File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgwebdir_mod.py", line 378, in run_wsgi
              for r in self._runwsgi(req, res):
            File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 326, in run_wsgi
              for r in self._runwsgi(req, res, repo):
            File "/usr/lib/python3/dist-packages/mercurial/hgweb/hgweb_mod.py", line 449, in _runwsgi
              return getattr(webcommands, cmd)(rctx)
            File "/usr/lib/python3/dist-packages/mercurial/hgweb/webcommands.py", line 211, in file
              return _filerevision(web, webutil.filectx(web.repo, web.req))
            File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 72, in filerevision_highlight
              pygmentize(web, b'fileline', fctx, web.tmpl)
            File "/usr/lib/python3/dist-packages/hgext/highlight/__init__.py", line 58, in pygmentize
              field, fctx, style, tmpl, guessfilenameonly=filenameonly
            File "/usr/lib/python3/dist-packages/hgext/highlight/highlight.py", line 62, in pygmentize
              text = text.replace(c, b'')
          TypeError: a bytes-like object is required, not 'int'
      856cce0c
  2. Nov 05, 2019
  3. Nov 08, 2019
  4. Nov 09, 2019
  5. Nov 06, 2019
    • Denis Laxalde's avatar
      py3: fix handling of ctrl keys in crecord (issue6213) · be0f77fd
      Denis Laxalde authored
      The "keypressed" value in handlekeypressed() is a key name obtained by
      curses's getkey(); this can be a multibyte string for special keys
      like CTRL keys. Calling curses.unctrl() with such a value fails on
      Python 3 with a TypeError as described in issue6213. (On Python 2, this
      does not crash, but I'm not sure the result is correct, though it does
      no matter here.)
      
      So instead of calling unctrl(), we compare "keypressed" with the
      expected "^L" obtained by curses.ascii.ctrl("L").
      be0f77fd
    • Denis Laxalde's avatar
      py3: keep "keypressed" a native str in crecord · 7cc91339
      Denis Laxalde authored
      This will help in the next changeset by avoiding a decode step. Also,
      the actual bytes conversion seems superfluous since values coming from
      curses's getkey() will be a native string. As a consequence, we open the
      "testcommands" file (used in test-interactive-curses.t) in text mode.
      7cc91339
    • Denis Laxalde's avatar
      py3: compare response of crecord's confirmationwindow with str · 117b41b1
      Denis Laxalde authored
      confirmationwindow() returns a native string, as a result of calling
      chr() on getch(). On Python 3, response.lower().startswith(b"y") leads
      to a TypeError.
      
      This fixes a crash when typing "r" in the curses interface of
      interactive commit.
      117b41b1
  6. Nov 07, 2019
    • Denis Laxalde's avatar
      py3: compare http server's command with a native string · 92e24a13
      Denis Laxalde authored
      The "command" attribute is an str, so comparing with a bytes would not
      work on Python 3. This might solve issues in test-lfs-serve-access.t
      that happens sometimes (especially in CI):
      
          --- /hgwork/src/tests/test-lfs-serve-access.t
          +++ /hgwork/src/tests/test-lfs-serve-access.t.err
          @@ -163,11 +163,13 @@
      
             $ cat $TESTTMP/access.log $TESTTMP/errors.log
             $LOCALIP - - [$LOGDATE$] "POST /missing/objects/batch HTTP/1.1" 404 - (glob)
          +  $LOCALIP - - [05/Nov/2019 16:32:34] "{"objects": [{"oid": "f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e", "size": 20}], "operation": "download"}" HTTPStatus.BAD_REQUEST -
             $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=capabilities HTTP/1.1" 200 - (glob)
             $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
             $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&bundlecaps=HG20%2Cbundle2%3DHG20%250Abookmarks%250Achangegroup%253D01%252C02%252C03%250Adigests%253Dmd5%252Csha1%252Csha512%250Aerror%253Dabort%252Cunsupportedcontent%252Cpushraced%252Cpushkey%250Ahgtagsfnodes%250Alistkeys%250Aphases%253Dheads%250Apushkey%250Aremote-changegroup%253Dhttp%252Chttps%250Arev-branch-cache%250Astream%253Dv2&cg=1&common=0000000000000000000000000000000000000000&heads=525251863cad618e55d483555f3d00a2ca99597e&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
             $LOCALIP - - [$LOGDATE$] "POST /subdir/mount/point/.git/info/lfs/objects/batch HTTP/1.1" 200 - (glob)
             $LOCALIP - - [$LOGDATE$] "GET /subdir/mount/point/.hg/lfs/objects/f03217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e HTTP/1.1" 200 - (glob)
          +  $LOCALIP - - [05/Nov/2019 16:32:34] code 400, message Bad request version ('"download"}')
      
           Blobs that already exist in the usercache are linked into the repo store, even
           though the client doesn't send the blob.
          @@ -195,6 +197,7 @@
             server2/.hg/store/lfs/objects/f0/3217a32529a28a42d03b1244fe09b6e0f9fd06d7b966d4d50567be2abe6c0e
             $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS
             $ cat $TESTTMP/errors.log
          +  $LOCALIP - - [05/Nov/2019 16:32:34] code 400, message Bad request version ('"download"}')
      
             $ cat >> $TESTTMP/lfsstoreerror.py <<EOF
             > import errno
      
      (from https://ci.hg.gregoryszorc.com/job-info/hg-committed-ca3dca416f8d5863ca6f5a4a6a6bb835dcd5feeb-debian10-cpython-3.7-0)
      92e24a13
  7. Nov 05, 2019
  8. Oct 17, 2019
    • Matt Harbison's avatar
      automation: avoid '~' in the temp directory on Windows · a77338d2
      Matt Harbison authored
      If a long-ish username is used, the environment variable ends up with a '~' to
      be 8.3 path compatible.  That in turn causes a handful of tests (mostly ssh
      related) to add quotes around $TESTMP.
      
      I have no AWS experience, so I have no idea if this is the proper way to do it.
      But I've hit this problem locally, and redirecting the directory is a
      workaround.  I don't recall if the directory is created on demand by the test
      harness, but presumably if this is configured before the machine boots, Windows
      will do it for us.
      
      Differential Revision: https://phab.mercurial-scm.org/D7130
      a77338d2
  9. Nov 05, 2019
  10. Nov 04, 2019
  11. Nov 01, 2019
  12. Nov 02, 2019
Loading