tg import: Remove tg_ prefixes from functions
[topgit/fonseca.git] / tg-import.sh
blob63d7e1bb7a3ccaf2ecf0246302d59dc69708ac2a
1 #!/bin/sh
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
5 # GPLv2
7 ranges=
10 ## Parse options
12 while [ -n "$1" ]; do
13 arg="$1"; shift
14 case "$arg" in
15 -*)
16 echo "Usage: tg [...] import RANGE..." >&2
17 exit 1;;
19 ranges="$ranges $arg";;
20 esac
21 done
24 get_commit_msg()
26 commit="$1"
27 git log -1 --pretty=format:"From: %an <%ae>%n%n%s%n%n%b" "$commit"
30 get_branch_name()
32 # nice sed script from git-format-patch.sh
33 commit="$1"
34 titleScript='
35 s/[^-a-z.A-Z_0-9]/-/g
36 s/\.\.\.*/\./g
37 s/\.*$//
38 s/--*/-/g
39 s/^-//
40 s/-$//
43 git log -1 --pretty=format:"%s" "$commit" | sed -e "$titleScript"
46 process_commit()
48 commit="$1"
49 branch_name=$(get_branch_name "$commit")
50 echo "Importing $commit to $branch_name"
51 tg create tp/"$branch_name"
52 git read-tree "$commit"
53 get_commit_msg "$commit" > .topmsg
54 git add -f .topmsg .topdeps
55 git commit -C "$commit"
58 # nice arg verification stolen from git-format-patch.sh
59 for revpair in $ranges
61 case "$revpair" in
62 ?*..?*)
63 rev1=`expr "z$revpair" : 'z\(.*\)\.\.'`
64 rev2=`expr "z$revpair" : 'z.*\.\.\(.*\)'`
67 die "Unknow range spec $revpair"
69 esac
70 git rev-parse --verify "$rev1^0" >/dev/null 2>&1 ||
71 die "Not a valid rev $rev1 ($revpair)"
72 git rev-parse --verify "$rev2^0" >/dev/null 2>&1 ||
73 die "Not a valid rev $rev2 ($revpair)"
74 git cherry -v "$rev1" "$rev2" |
75 while read sign rev comment
77 case "$sign" in
78 '-')
79 info "Merged already: $comment"
82 process_commit "$rev"
84 esac
85 done
86 done