2 # TopGit - A different patch queue manager
3 # (c) Petr Baudis <pasky@suse.cz> 2008
4 # (c) Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> 2008
21 branch_prefix
="$1"; shift;;
25 echo "Usage: ${tgname:-tg} [...] import [-d <base-branch>] ([-p <prefix>] <range>... | -s <name> <commit>)" >&2
28 ranges
="$ranges $arg";;
41 ! header
="$(git config topgit.to)" || headers
="$headers%nTo: $header"
42 ! header
="$(git config topgit.cc)" || headers
="$headers%nCc: $header"
43 ! header
="$(git config topgit.bcc)" || headers
="$headers%nBcc: $header"
44 git log
-1 --pretty=format
:"From: %an <%ae>$headers%nSubject: %s%n%n%b" "$commit"
49 # nice sed script from git-format-patch.sh
60 git log
-1 --pretty=format
:"%s" "$commit" |
sed -e "$titleScript"
67 info
"---- Importing $commit to $branch_name"
68 $tg create
"$branch_name" $basedep
70 get_commit_msg
"$commit" > .topmsg
71 git add
-f .topmsg .topdeps
72 if ! git cherry-pick
--no-commit "$commit"; then
73 info
"The commit will also finish the import of this patch."
76 git commit
-C "$commit"
77 info
"++++ Importing $commit finished"
80 if [ -n "$single" ]; then
81 process_commit
$ranges "$single"
85 # nice arg verification stolen from git-format-patch.sh
86 for revpair
in $ranges
90 rev1
=`expr "z$revpair" : 'z\(.*\)\.\.'`
91 rev2
=`expr "z$revpair" : 'z.*\.\.\(.*\)'`
94 die
"Unknown range spec $revpair"
97 git rev-parse
--verify "$rev1^0" >/dev
/null
2>&1 ||
98 die
"Not a valid rev $rev1 ($revpair)"
99 git rev-parse
--verify "$rev2^0" >/dev
/null
2>&1 ||
100 die
"Not a valid rev $rev2 ($revpair)"
101 git cherry
-v "$rev1" "$rev2" |
102 while read sign
rev comment
106 info
"Merged already: $comment"
109 process_commit
"$rev" "$branch_prefix$(get_branch_name "$rev")"