OLD | NEW |
---|---|
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 submods=$(git diff-index --cached --ignore-submodules=dirty HEAD | grep -e '^:16 0000' -e '^:...... 160000' | xargs) | 3 submodule_diff() { |
4 if test -n "$2"; then | |
5 git diff-tree -r --ignore-submodules=dirty "$1" "$2" | grep -e '^:160000' -e '^:...... 160000' | xargs | |
6 else | |
7 git diff-index --cached --ignore-submodules=dirty "$1" | grep -e '^:160000' -e '^:...... 160000' | xargs | |
8 fi | |
9 } | |
10 | |
11 if git rev-parse --verify --quiet --no-revs MERGE_HEAD; then | |
12 merge_base=$(git merge-base HEAD MERGE_HEAD) | |
13 if test -z "$(submodule_diff $merge_base HEAD)"; then | |
14 # Most up-to-date submodules are in MERGE_HEAD. | |
15 head_ref=MERGE_HEAD | |
16 else | |
17 # Most up-to-date submodules are in HEAD. | |
18 head_ref=HEAD | |
19 fi | |
20 else | |
21 # No merge in progress. Submodules must match HEAD. | |
22 head_ref=HEAD | |
23 fi | |
24 | |
25 submods=$(submodule_diff $head_ref) | |
4 if test "$submods"; then | 26 if test "$submods"; then |
5 echo "You are trying to commit changes to the following submodules:" 1>&2 | 27 echo "You are trying to commit changes to the following submodules:" 1>&2 |
6 echo 1>&2 | 28 echo 1>&2 |
7 echo $submods | cut -d ' ' -f 6 | sed 's/^/ /g' 1>&2 | 29 echo $submods | cut -d ' ' -f 6 | sed 's/^/ /g' 1>&2 |
8 cat <<EOF 1>&2 | 30 cat <<EOF 1>&2 |
9 | 31 |
10 Submodule commits are not allowed. Please run: | 32 Submodule commits are not allowed. Please run: |
11 | 33 |
12 git status --ignore-submodules=dirty | 34 git status --ignore-submodules=dirty |
13 | 35 |
14 and/or: | 36 and/or: |
15 | 37 |
16 git diff-index --cached --ignore-submodules=dirty HEAD | 38 git diff-index --cached --ignore-submodules=dirty HEAD |
17 | 39 |
18 ... to see what's in your index. | 40 ... to see what's in your index. |
19 | 41 |
20 If you're really and truly trying to roll the version of a submodule, you should | 42 If you're really and truly trying to roll the version of a submodule, you should |
21 commit the new version to DEPS, instead. | 43 commit the new version to DEPS, instead. |
22 EOF | 44 EOF |
23 exit 1 | 45 exit 1 |
24 fi | 46 fi |
25 | 47 |
26 if [ -n "$(git ls-files .gitmodules)" ] && | 48 gitmodules_diff() { |
27 [ -n "$(git diff-index --cached HEAD .gitmodules)" ]; then | 49 git diff-index --cached "$1" .gitmodules |
50 } | |
51 | |
52 if test "$(git ls-files .gitmodules)" -a "$(gitmodules_diff $head_ref)"; then | |
Ami GONE FROM CHROMIUM
2014/04/04 18:07:13
This change undid the benefit of r257470 because
t
spang
2014/04/04 18:14:02
My bad.
| |
28 cat <<EOF 1>&2 | 53 cat <<EOF 1>&2 |
29 You are trying to commit a change to .gitmodules. That is not allowed. | 54 You are trying to commit a change to .gitmodules. That is not allowed. |
30 To make changes to submodule names/paths, edit DEPS. | 55 To make changes to submodule names/paths, edit DEPS. |
31 EOF | 56 EOF |
32 exit 1 | 57 exit 1 |
33 fi | 58 fi |
34 | 59 |
35 exit 0 | 60 exit 0 |
OLD | NEW |