3 #cp /dev/null ../quilt-import.log
7 echo "$@" | tee -a ../quilt-import.log
13 "$@" 2>&1 | tee -a ../quilt-import.log
14 [ ${PIPESTATUS[0]} -eq 0 ] || sh -i || {
15 [ -f "$sfile.orig" ] &&
16 mv -f "$sfile.orig" "$sfile"
21 quilters=$(grep -v '^#' ../real_control | awk -F ' ' '$2=="quilt" { print $3; }')
23 for name in $quilters; do
25 sfile="../quilt/$name/series"
26 base=$(sed -n 's/^#[ ]*NEXT[-_]BASE[ ]*\([^ ]*\)[ ]*$/\1/p' "$sfile")
27 if [ -n "$base" ]; then
28 nbase=$(grep -v '^#' ../real_control | awk -F ' ' '$3=="'"$base"'" { if ($2=="quilt") printf("quilt/%s", "'"$base"'"); else printf("%s/%s", "'"$base"'", $5); }')
29 [ -n "$nbase" ] && base="$nbase"
31 base=$(sed -n 's/^#[ ]*BASE[ ]*\(.*\)[ ]*$/\1/p' "$sfile")
34 base=$(sed '1{s/^#.*GIT commit \(.*\)$/\1/;q}' "$sfile")
41 *-git[0-9]*) rbase=$($(dirname $0)/get_gitid "${base}")
43 commit*) rbase=$(expr "$base" : "commit[ ]*\(.*\)")
45 [0-9]*.*) rbase="v$base"
48 log "Importing $name based on $base"
49 rbase_sha1=$(git rev-parse --verify "$rbase^{commit}") || {
54 # don't bother importing things that haven't changed
55 mb=$(git merge-base "$rbase_sha1" "quilt/$name")
56 change_size=$(cd ../quilt;git diff last_merge.. -- "$name/" | wc -c)
57 [ "$mb" = "$rbase_sha1" ] && [ $change_size -eq 0 ] && {
58 log "Unchanged quilt series $name"
62 mv -f "$sfile" "$sfile.orig"
64 grep -q NEXT_PATCHES "$sfile.orig" && do_echo=:
67 *NEXT_PATCHES_START*) do_echo=echo
69 *NEXT_PATCHES_END*) do_echo=:
74 sed -e 's/[ ]*#.*$//' -e '/^[ ]*$/d' >"$sfile"
76 git show-ref --quiet --verify "refs/heads/quilt/$name" ||
77 execute git branch "quilt/$name" "$rbase_sha1"
80 log " quilt series is empty"
81 mv -f "$sfile.orig" "$sfile"
82 execute git update-ref "refs/heads/quilt/$name" "$rbase_sha1"
86 [ -d "../quilt-tmp" ] ||
87 execute git clone -s -l -n -q . ../quilt-tmp
89 log '$' cd ../quilt-tmp
91 execute git reset --hard "$rbase_sha1"
94 old_head=$(git rev-parse --verify HEAD)
95 execute git am "../quilt/$name/$f"
96 new_head=$(git rev-parse --verify HEAD)
97 [ "$new_head" = "$old_head" ] && {
98 echo "Tree unchanged, please check ..."
101 done 5<"../quilt/$name/series"
106 execute git fetch -f ../quilt-tmp master:"quilt/$name"
108 mv -f "$sfile.orig" "$sfile"
111 [ -d "../quilt-tmp" ] &&
114 ( cd ../quilt; git update-ref refs/heads/last_merge HEAD )