mirror of
https://github.com/pre-commit/pre-commit-hooks.git
synced 2026-04-02 18:56:52 +00:00
Add a new hook to forbid new submodules
This commit is contained in:
parent
7539d8bd1a
commit
70e405ede2
7 changed files with 75 additions and 5 deletions
|
|
@ -6,7 +6,6 @@ from __future__ import unicode_literals
|
|||
import argparse
|
||||
import math
|
||||
import os
|
||||
import sys
|
||||
|
||||
from pre_commit_hooks.util import added_files
|
||||
from pre_commit_hooks.util import CalledProcessError
|
||||
|
|
@ -49,8 +48,6 @@ def find_large_added_files(filenames, maxkb):
|
|||
|
||||
|
||||
def main(argv=None):
|
||||
argv = argv if argv is not None else sys.argv[1:]
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument(
|
||||
'filenames', nargs='*',
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ from __future__ import print_function
|
|||
|
||||
import argparse
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
CONFLICT_PATTERNS = [
|
||||
b'<<<<<<< ',
|
||||
|
|
@ -41,5 +40,6 @@ def detect_merge_conflict(argv=None):
|
|||
|
||||
return retcode
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(detect_merge_conflict())
|
||||
exit(detect_merge_conflict())
|
||||
|
|
|
|||
|
|
@ -67,5 +67,6 @@ def main(argv=None):
|
|||
else:
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
exit(main())
|
||||
|
|
|
|||
|
|
@ -138,5 +138,6 @@ def main(argv=None):
|
|||
|
||||
return retv
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
exit(main())
|
||||
|
|
|
|||
31
pre_commit_hooks/forbid_new_submodules.py
Normal file
31
pre_commit_hooks/forbid_new_submodules.py
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
from __future__ import absolute_import
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from pre_commit_hooks.util import cmd_output
|
||||
|
||||
|
||||
def main(argv=None):
|
||||
# `argv` is ignored, pre-commit will send us a list of files that we
|
||||
# don't care about
|
||||
added_diff = cmd_output(
|
||||
'git', 'diff', '--staged', '--diff-filter=A', '--raw',
|
||||
)
|
||||
retv = 0
|
||||
for line in added_diff.splitlines():
|
||||
metadata, filename = line.split('\t', 1)
|
||||
new_mode = metadata.split(' ')[1]
|
||||
if new_mode == '160000':
|
||||
print('{}: new submodule introduced'.format(filename))
|
||||
retv = 1
|
||||
|
||||
if retv:
|
||||
print('This commit introduces new submodules.')
|
||||
print('Did you unintentionally `git add .`?')
|
||||
print('To fix: git rm {thesubmodule} # no trailing slash')
|
||||
print('Also check .gitmodules')
|
||||
|
||||
return retv
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
exit(main())
|
||||
Loading…
Add table
Add a link
Reference in a new issue