X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=topgit.git;a=blobdiff_plain;f=tg-import.sh;h=68477f0de31cf05fd66c7f48fcfee95fa7e31bce;hp=4f5c9810d7755ea434b2451a15e87f1ae7b03acc;hb=c263301596f83da5c521ea3d0c61e0953c9ae1de;hpb=3936c582952a48d2139c67883bba28e227ad017c diff --git a/tg-import.sh b/tg-import.sh index 4f5c981..68477f0 100644 --- a/tg-import.sh +++ b/tg-import.sh @@ -4,6 +4,7 @@ # (c) Aneesh Kumar K.V 2008 # GPLv2 +branch_prefix=t/ ranges= @@ -12,8 +13,10 @@ ranges= while [ -n "$1" ]; do arg="$1"; shift case "$arg" in + -p) + branch_prefix="$1"; shift;; -*) - echo "Usage: tg [...] import RANGE..." >&2 + echo "Usage: tg [...] import [-p PREFIX] RANGE..." >&2 exit 1;; *) ranges="$ranges $arg";; @@ -21,6 +24,15 @@ while [ -n "$1" ]; do done +## Make sure our tree is clean + +git update-index --ignore-submodules --refresh || exit +[ -z "$(git diff-index --cached --name-status -r --ignore-submodules HEAD --)" ] || + die "the index is not clean" + + +## Perform import + get_commit_msg() { commit="$1" @@ -47,12 +59,13 @@ process_commit() { commit="$1" branch_name=$(get_branch_name "$commit") - echo "Importing $commit to $branch_name" - tg create t/"$branch_name" - git read-tree "$commit" + info "---- Importing $commit to $branch_prefix$branch_name" + tg create "$branch_prefix""$branch_name" + git read-tree -u -m "$commit" get_commit_msg "$commit" > .topmsg git add -f .topmsg .topdeps git commit -C "$commit" + info "++++ Importing $commit finished" } # nice arg verification stolen from git-format-patch.sh