mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-02-19 17:14:43 +04:00
Update hook_impl.py
Attempt to fix https://github.com/pre-commit/pre-commit/issues/2424, which has incorrectly been marked as a duplicate of https://github.com/pre-commit/pre-commit/issues/860
This commit is contained in:
parent
7b88c63ae6
commit
e7959ecc5d
1 changed files with 5 additions and 1 deletions
|
|
@ -113,6 +113,10 @@ def _rev_exists(rev: str) -> bool:
|
||||||
return not subprocess.call(('git', 'rev-list', '--quiet', rev))
|
return not subprocess.call(('git', 'rev-list', '--quiet', rev))
|
||||||
|
|
||||||
|
|
||||||
|
def _is_ancestor(ancestor: str, rev: str):
|
||||||
|
return not subprocess.call(('git', 'merge-base', '--is-ancestor', ancestor, rev))
|
||||||
|
|
||||||
|
|
||||||
def _pre_push_ns(
|
def _pre_push_ns(
|
||||||
color: bool,
|
color: bool,
|
||||||
args: Sequence[str],
|
args: Sequence[str],
|
||||||
|
|
@ -126,7 +130,7 @@ def _pre_push_ns(
|
||||||
local_branch, local_sha, remote_branch, remote_sha = parts
|
local_branch, local_sha, remote_branch, remote_sha = parts
|
||||||
if local_sha == Z40:
|
if local_sha == Z40:
|
||||||
continue
|
continue
|
||||||
elif remote_sha != Z40 and _rev_exists(remote_sha):
|
elif remote_sha != Z40 and _rev_exists(remote_sha) and _is_ancestor(remote_sha, local_sha):
|
||||||
return _ns(
|
return _ns(
|
||||||
'pre-push', color,
|
'pre-push', color,
|
||||||
from_ref=remote_sha, to_ref=local_sha,
|
from_ref=remote_sha, to_ref=local_sha,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue