summaryrefslogtreecommitdiffstats
path: root/pre_commit/commands
diff options
context:
space:
mode:
Diffstat (limited to 'pre_commit/commands')
-rw-r--r--pre_commit/commands/hook_impl.py7
-rw-r--r--pre_commit/commands/install_uninstall.py14
-rw-r--r--pre_commit/commands/run.py6
3 files changed, 18 insertions, 9 deletions
diff --git a/pre_commit/commands/hook_impl.py b/pre_commit/commands/hook_impl.py
index a766ee9..c544167 100644
--- a/pre_commit/commands/hook_impl.py
+++ b/pre_commit/commands/hook_impl.py
@@ -70,6 +70,7 @@ def _ns(
*,
all_files: bool = False,
remote_branch: Optional[str] = None,
+ local_branch: Optional[str] = None,
from_ref: Optional[str] = None,
to_ref: Optional[str] = None,
remote_name: Optional[str] = None,
@@ -82,6 +83,7 @@ def _ns(
color=color,
hook_stage=hook_type.replace('pre-', ''),
remote_branch=remote_branch,
+ local_branch=local_branch,
from_ref=from_ref,
to_ref=to_ref,
remote_name=remote_name,
@@ -110,7 +112,7 @@ def _pre_push_ns(
remote_url = args[1]
for line in stdin.decode().splitlines():
- _, local_sha, remote_branch, remote_sha = line.split()
+ local_branch, local_sha, remote_branch, remote_sha = line.split()
if local_sha == Z40:
continue
elif remote_sha != Z40 and _rev_exists(remote_sha):
@@ -118,6 +120,7 @@ def _pre_push_ns(
'pre-push', color,
from_ref=remote_sha, to_ref=local_sha,
remote_branch=remote_branch,
+ local_branch=local_branch,
remote_name=remote_name, remote_url=remote_url,
)
else:
@@ -139,6 +142,7 @@ def _pre_push_ns(
all_files=True,
remote_name=remote_name, remote_url=remote_url,
remote_branch=remote_branch,
+ local_branch=local_branch,
)
else:
rev_cmd = ('git', 'rev-parse', f'{first_ancestor}^')
@@ -148,6 +152,7 @@ def _pre_push_ns(
from_ref=source, to_ref=local_sha,
remote_name=remote_name, remote_url=remote_url,
remote_branch=remote_branch,
+ local_branch=local_branch,
)
# nothing to push
diff --git a/pre_commit/commands/install_uninstall.py b/pre_commit/commands/install_uninstall.py
index 684b598..73c8d60 100644
--- a/pre_commit/commands/install_uninstall.py
+++ b/pre_commit/commands/install_uninstall.py
@@ -21,13 +21,13 @@ logger = logging.getLogger(__name__)
# This is used to identify the hook file we install
PRIOR_HASHES = (
- '4d9958c90bc262f47553e2c073f14cfe',
- 'd8ee923c46731b42cd95cc869add4062',
- '49fd668cb42069aa1b6048464be5d395',
- '79f09a650522a87b0da915d0d983b2de',
- 'e358c9dae00eac5d06b38dfdb1e33a8c',
+ b'4d9958c90bc262f47553e2c073f14cfe',
+ b'd8ee923c46731b42cd95cc869add4062',
+ b'49fd668cb42069aa1b6048464be5d395',
+ b'79f09a650522a87b0da915d0d983b2de',
+ b'e358c9dae00eac5d06b38dfdb1e33a8c',
)
-CURRENT_HASH = '138fd403232d2ddd5efb44317e38bf03'
+CURRENT_HASH = b'138fd403232d2ddd5efb44317e38bf03'
TEMPLATE_START = '# start templated\n'
TEMPLATE_END = '# end templated\n'
# Homebrew/homebrew-core#35825: be more timid about appropriate `PATH`
@@ -48,7 +48,7 @@ def _hook_paths(
def is_our_script(filename: str) -> bool:
if not os.path.exists(filename): # pragma: win32 no cover (symlink)
return False
- with open(filename) as f:
+ with open(filename, 'rb') as f:
contents = f.read()
return any(h in contents for h in (CURRENT_HASH,) + PRIOR_HASHES)
diff --git a/pre_commit/commands/run.py b/pre_commit/commands/run.py
index 0fef50d..d906d5b 100644
--- a/pre_commit/commands/run.py
+++ b/pre_commit/commands/run.py
@@ -371,7 +371,11 @@ def run(
environ['PRE_COMMIT_FROM_REF'] = args.from_ref
environ['PRE_COMMIT_TO_REF'] = args.to_ref
- if args.remote_name and args.remote_url and args.remote_branch:
+ if (
+ args.remote_name and args.remote_url and
+ args.remote_branch and args.local_branch
+ ):
+ environ['PRE_COMMIT_LOCAL_BRANCH'] = args.local_branch
environ['PRE_COMMIT_REMOTE_BRANCH'] = args.remote_branch
environ['PRE_COMMIT_REMOTE_NAME'] = args.remote_name
environ['PRE_COMMIT_REMOTE_URL'] = args.remote_url