File: post-commit

package info (click to toggle)
insighttoolkit4 4.13.3withdata-dfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 489,260 kB
  • sloc: cpp: 557,342; ansic: 146,850; fortran: 34,788; python: 16,572; sh: 2,187; lisp: 2,070; tcl: 993; java: 362; perl: 200; makefile: 129; csh: 81; pascal: 69; xml: 19; ruby: 10
file content (83 lines) | stat: -rwxr-xr-x 2,578 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/env bash
#==========================================================================
#
#   Copyright Insight Software Consortium
#
#   Licensed under the Apache License, Version 2.0 (the "License");
#   you may not use this file except in compliance with the License.
#   You may obtain a copy of the License at
#
#          http://www.apache.org/licenses/LICENSE-2.0.txt
#
#   Unless required by applicable law or agreed to in writing, software
#   distributed under the License is distributed on an "AS IS" BASIS,
#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#   See the License for the specific language governing permissions and
#   limitations under the License.
#
#==========================================================================*/

# This is a list of third party libraries we maintain as Git subtree's
# and the URL with their contribution instructions.
#
# The third party name used should be same as the directory name in
# ITK/Modules/ThirdParty/
third_party_contrib_urls=( "KWSys:https://www.itk.org/Wiki/KWSys/Git/Develop"
  "MetaIO:https://github.com/Kitware/MetaIO/blob/master/CONTRIBUTING.rst"
  "GDCM:http://gdcm.sourceforge.net/wiki/index.php/Git"
  "VNL:https://github.com/vxl/vxl" )

upstream_subtree_regex='Modules/ThirdParty/[^/]+/src/[^/]+/'
changed_upstream_dirs=$(git diff --name-only HEAD~1.. |
  egrep -o $upstream_subtree_regex | uniq)
if test -z "$changed_upstream_dirs"; then
  exit
fi

echo "$changed_upstream_dirs" |
while read upstream_dir; do
  lib=$(echo "$upstream_dir" | sed  -e 's%Modules/ThirdParty/\([^/]\+\)/src/[^/]\+/%\1%')

  subject=$(git show -s --format=%f HEAD)
  patchfile=/tmp/${lib}-${subject}.patch
  sha=$(git rev-parse --short HEAD)
  contrib_url=""
  for third_party in "${third_party_contrib_urls[@]}"; do
    name=${third_party%%:*}
    url=${third_party#*:}
    if test "$name" = "$lib"; then
      contrib_url="$url"
      break
    fi
  done

top_level_dir=$(git rev-parse --show-toplevel)

cat << EOF
Changes were detected to the third party library $lib. If the change is
relevant to the upstream library, please submit it upstream.

To create a patch file that can be contributed upstream, run:

  git diff -p --relative="$upstream_dir" $sha~1..$sha -- "$top_level_dir/$upstream_dir" > "$patchfile"

EOF
if test -n "$contrib_url"; then
  cat << EOF

Submit the patch file to the upstream library as instructed at

  $contrib_url

EOF
fi
cat << EOF

The patch can be applied to a local $lib repository with

  cd /path/to/$lib
  patch -p1 < $patchfile


EOF
done