Fix prepare-dev.py hook installation on Python 3
Review Request #10680 — Created Sept. 5, 2019 and submitted
There were two issues in the implementation of
install_git_hooks
that
prevented it from working on Python 3:
- an old-style (0777) octal literal was used instead of a new-style one
(0o777): old-style literals are not supported on Python 3; and
- bytes and unicode were being mixed inos.path.join
, which is not an
issue in Python 2 but is on Python 3.Since
prepare-dev.py
is intended to install dependencies, we can't
assume the presence ofsix
, so we determine the correct string type
manually.
Ran prepare-dev.py under Python 2 and Python 3 and it created git
hooks successfully.
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 2 (+11 -1) |
Checks run (2 succeeded)
Change Summary:
Rebase on top of latest master.
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 3 (+11 -1) |
Checks run (2 succeeded)
-
-
contrib/internal/prepare-dev.py (Diff revision 3) This whole thing could probably just be:
if isinstance(gitdir, bytes): gitdir = gitdir.decode('utf-8')
Change Summary:
Addressed david's issues.
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 4 (+1219 -1839) |
Checks run (2 succeeded)
Change Summary:
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 5 (+4 -1) |
Checks run (2 succeeded)
-
-
contrib/internal/prepare-dev.py (Diff revision 5) subprocess.check_output()
is going to returnbytes
on both Python 2.x and 3.x. So we can actually just include this in the above call, like:gitdir = ( subprocess.check_output(...) .decode('utf-8') .strip() )
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 6 (+8 -20) |
Checks run (2 succeeded)
Commit: |
|
||||
---|---|---|---|---|---|
Diff: |
Revision 7 (+6 -3) |