From: Linus Torvalds Date: Sun, 24 Jul 2005 01:46:27 +0000 (-0700) Subject: Rename the "tools" programs to also have the "git-" prefix X-Git-Tag: v0.99.2~11 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=fd1fcd9f57406cd5f278adb6b3ceeb1b7637062a;p=git.git Rename the "tools" programs to also have the "git-" prefix Hey, people are using them, and we have an install target for them, so make sure that we can actually install them sanely without disturbing the namespace. --- diff --git a/tools/Makefile b/tools/Makefile index 5c07cec0..a16b6679 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -10,8 +10,11 @@ prefix=$(HOME) bin=$(prefix)/bin # dest= -PROGRAMS=mailsplit mailinfo -SCRIPTS=applymbox applypatch +PROGRAMS=git-mailsplit git-mailinfo +SCRIPTS=git-applymbox git-applypatch + +git-%: %.c + $(CC) $(CFLAGS) -o $@ $(filter %.c,$^) all: $(PROGRAMS) diff --git a/tools/applymbox b/tools/applymbox deleted file mode 100755 index bc2dbf26..00000000 --- a/tools/applymbox +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh -## -## "dotest" is my stupid name for my patch-application script, which -## I never got around to renaming after I tested it. We're now on the -## second generation of scripts, still called "dotest". -## -## Update: Ryan Anderson finally shamed me into naming this "applymbox". -## -## You give it a mbox-format collection of emails, and it will try to -## apply them to the kernel using "applypatch" -## -## applymbox [ -c .dotest/msg-number ] [ -q ] mail_archive [Signoff_file]" -## -## The patch application may fail in the middle. In which case: -## (1) look at .dotest/patch and fix it up to apply -## (2) re-run applymbox with -c .dotest/msg-number for the current one. -## Pay a special attention to the commit log message if you do this and -## use a Signoff_file, because applypatch wants to append the sign-off -## message to msg-clean every time it is run. - -query_apply= continue= resume=t -while case "$#" in 0) break ;; esac -do - case "$1" in - -q) query_apply=t ;; - -c) continue="$2"; resume=f; shift ;; - -*) usage ;; - *) break ;; - esac - shift -done - -case "$continue" in -'') - rm -rf .dotest - mkdir .dotest - mailsplit "$1" .dotest || exit 1 -esac - -case "$query_apply" in -t) touch .dotest/.query_apply -esac - -for i in .dotest/0* -do - case "$resume,$continue" in - f,$i) resume=t;; - f,*) continue;; - *) - mailinfo .dotest/msg .dotest/patch <$i >.dotest/info || exit 1 - git-stripspace < .dotest/msg > .dotest/msg-clean - ;; - esac - applypatch .dotest/msg-clean .dotest/patch .dotest/info "$2" - ret=$? - if [ $ret -ne 0 ]; then - # 2 is a special exit code from applypatch to indicate that - # the patch wasn't applied, but continue anyway - [ $ret -ne 2 ] && exit $ret - fi -done -# return to pristine -rm -fr .dotest diff --git a/tools/applypatch b/tools/applypatch deleted file mode 100755 index 5a3a44b0..00000000 --- a/tools/applypatch +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/sh -## -## applypatch takes four file arguments, and uses those to -## apply the unpacked patch (surprise surprise) that they -## represent to the current tree. -## -## The arguments are: -## $1 - file with commit message -## $2 - file with the actual patch -## $3 - "info" file with Author, email and subject -## $4 - optional file containing signoff to add -## -signoff="$4" -final=.dotest/final-commit -## -## If this file exists, we ask before applying -## -query_apply=.dotest/.query_apply -MSGFILE=$1 -PATCHFILE=$2 -INFO=$3 -EDIT=${VISUAL:-$EDITOR} -EDIT=${EDIT:-vi} - -export GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)" -export GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)" -export GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)" -export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)" - -if [ -n "$signoff" -a -f "$signoff" ]; then - cat $signoff >> $MSGFILE -fi - -(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final - -f=0 -[ -f $query_apply ] || f=1 - -while [ $f -eq 0 ]; do - echo "Commit Body is:" - echo "--------------------------" - cat $final - echo "--------------------------" - echo -n "Apply? [y]es/[n]o/[e]dit/[a]ccept all " - read reply - case $reply in - y|Y) f=1;; - n|N) exit 2;; # special value to tell dotest to keep going - e|E) $EDIT $final;; - a|A) rm -f $query_apply - f=1;; - esac -done - -echo -echo Applying "'$SUBJECT'" -echo - -git-apply --index $PATCHFILE || exit 1 -tree=$(git-write-tree) || exit 1 -echo Wrote tree $tree -commit=$(git-commit-tree $tree -p $(cat .git/HEAD) < $final) || exit 1 -echo Committed: $commit -echo $commit > .git/HEAD diff --git a/tools/git-applymbox b/tools/git-applymbox new file mode 100755 index 00000000..bc2dbf26 --- /dev/null +++ b/tools/git-applymbox @@ -0,0 +1,63 @@ +#!/bin/sh +## +## "dotest" is my stupid name for my patch-application script, which +## I never got around to renaming after I tested it. We're now on the +## second generation of scripts, still called "dotest". +## +## Update: Ryan Anderson finally shamed me into naming this "applymbox". +## +## You give it a mbox-format collection of emails, and it will try to +## apply them to the kernel using "applypatch" +## +## applymbox [ -c .dotest/msg-number ] [ -q ] mail_archive [Signoff_file]" +## +## The patch application may fail in the middle. In which case: +## (1) look at .dotest/patch and fix it up to apply +## (2) re-run applymbox with -c .dotest/msg-number for the current one. +## Pay a special attention to the commit log message if you do this and +## use a Signoff_file, because applypatch wants to append the sign-off +## message to msg-clean every time it is run. + +query_apply= continue= resume=t +while case "$#" in 0) break ;; esac +do + case "$1" in + -q) query_apply=t ;; + -c) continue="$2"; resume=f; shift ;; + -*) usage ;; + *) break ;; + esac + shift +done + +case "$continue" in +'') + rm -rf .dotest + mkdir .dotest + mailsplit "$1" .dotest || exit 1 +esac + +case "$query_apply" in +t) touch .dotest/.query_apply +esac + +for i in .dotest/0* +do + case "$resume,$continue" in + f,$i) resume=t;; + f,*) continue;; + *) + mailinfo .dotest/msg .dotest/patch <$i >.dotest/info || exit 1 + git-stripspace < .dotest/msg > .dotest/msg-clean + ;; + esac + applypatch .dotest/msg-clean .dotest/patch .dotest/info "$2" + ret=$? + if [ $ret -ne 0 ]; then + # 2 is a special exit code from applypatch to indicate that + # the patch wasn't applied, but continue anyway + [ $ret -ne 2 ] && exit $ret + fi +done +# return to pristine +rm -fr .dotest diff --git a/tools/git-applypatch b/tools/git-applypatch new file mode 100755 index 00000000..5a3a44b0 --- /dev/null +++ b/tools/git-applypatch @@ -0,0 +1,64 @@ +#!/bin/sh +## +## applypatch takes four file arguments, and uses those to +## apply the unpacked patch (surprise surprise) that they +## represent to the current tree. +## +## The arguments are: +## $1 - file with commit message +## $2 - file with the actual patch +## $3 - "info" file with Author, email and subject +## $4 - optional file containing signoff to add +## +signoff="$4" +final=.dotest/final-commit +## +## If this file exists, we ask before applying +## +query_apply=.dotest/.query_apply +MSGFILE=$1 +PATCHFILE=$2 +INFO=$3 +EDIT=${VISUAL:-$EDITOR} +EDIT=${EDIT:-vi} + +export GIT_AUTHOR_NAME="$(sed -n '/^Author/ s/Author: //p' .dotest/info)" +export GIT_AUTHOR_EMAIL="$(sed -n '/^Email/ s/Email: //p' .dotest/info)" +export GIT_AUTHOR_DATE="$(sed -n '/^Date/ s/Date: //p' .dotest/info)" +export SUBJECT="$(sed -n '/^Subject/ s/Subject: //p' .dotest/info)" + +if [ -n "$signoff" -a -f "$signoff" ]; then + cat $signoff >> $MSGFILE +fi + +(echo "[PATCH] $SUBJECT" ; if [ -s $MSGFILE ]; then echo ; cat $MSGFILE; fi ) > $final + +f=0 +[ -f $query_apply ] || f=1 + +while [ $f -eq 0 ]; do + echo "Commit Body is:" + echo "--------------------------" + cat $final + echo "--------------------------" + echo -n "Apply? [y]es/[n]o/[e]dit/[a]ccept all " + read reply + case $reply in + y|Y) f=1;; + n|N) exit 2;; # special value to tell dotest to keep going + e|E) $EDIT $final;; + a|A) rm -f $query_apply + f=1;; + esac +done + +echo +echo Applying "'$SUBJECT'" +echo + +git-apply --index $PATCHFILE || exit 1 +tree=$(git-write-tree) || exit 1 +echo Wrote tree $tree +commit=$(git-commit-tree $tree -p $(cat .git/HEAD) < $final) || exit 1 +echo Committed: $commit +echo $commit > .git/HEAD