Make use of external editor work like CVS The lines starting with `CG:' should be a trailer and not at the top of the message presented in the editor. Also extend the number of `-' up to 74 characters so that people know when they should start a new line. If it's not a merge and no commit text is given via the command line add an extra empty line at the top. Signed-off-by: Marcel Holtmann --- commit ad5cabd7130fc180aed0c364d4014abb49f374b0 tree ca866565063dcd89204e747e8aa0fcb483d14841 parent 09f6584daa060eda641a8e727698f935e0960e9c author Marcel Holtmann Sun, 08 May 2005 03:03:53 +0200 committer Marcel Holtmann Sun, 08 May 2005 03:03:53 +0200 cg-commit | 55 +++++++++++++++++++++++++++++++------------------------ 1 files changed, 31 insertions(+), 24 deletions(-) Index: cg-commit =================================================================== --- 5d7e8450d626a4e99f8222378a6818d03a797864/cg-commit (mode:100755) +++ ca866565063dcd89204e747e8aa0fcb483d14841/cg-commit (mode:100755) @@ -61,24 +61,9 @@ LOGMSG=$(mktemp -t gitci.XXXXXX) LOGMSG2=$(mktemp -t gitci2.XXXXXX) -echo CG: ---------------------------------------------------------- >>$LOGMSG -echo CG: Lines beggining with CG: will be automatically removed >>$LOGMSG -echo CG: >>$LOGMSG -if [ ! "$ignorecache" ]; then - if [ ! "${commitfiles[*]}" ]; then - echo 'Nothing to commit.' >&2 - exit 2 - fi - for file in "${commitfiles[@]}"; do - # Prepend a letter describing whether it's addition, - # removal or update. Or call git status on those files. - echo CG: $file >>$LOGMSG - done - echo CG: >>$LOGMSG -fi if [ "$merging" ]; then - echo -n 'Merge with ' >>$LOGMSG + echo -n "Merge with " >>$LOGMSG [ -s .git/merging-sym ] || cp .git/merging .git/merging-sym for sym in $(cat .git/merging-sym); do uri=$(cat .git/branches/$sym) @@ -86,28 +71,50 @@ echo "$uri" >>$LOGMSG echo "$uri" done - echo >>$LOGMSG +else + first=1 fi -first=1 + for msg in "${msgs[@]}"; do if [ "$first" ]; then first= else echo >>$LOGMSG fi - echo $msg | fmt >>$LOGMSG + echo $msg | fmt -s -w 74 >>$LOGMSG done + +if [ "$first" ]; then + echo >>$LOGMSG +fi + +echo "CG: ----------------------------------------------------------------------" >>$LOGMSG +echo "CG: Enter Log. Lines beginning with \`CG:' are removed automatically" >>$LOGMSG +if [ ! "$ignorecache" ]; then + if [ ! "${commitfiles[*]}" ]; then + die 'Nothing to commit.' + fi + echo "CG: " >>$LOGMSG + echo "CG: Modified Files:" >>$LOGMSG + for file in "${commitfiles[@]}"; do + # Prepend a letter describing whether it's addition, + # removal or update. Or call git status on those files. + echo "CG: $file" >>$LOGMSG + done +fi +echo "CG: ----------------------------------------------------------------------" >>$LOGMSG + cp $LOGMSG $LOGMSG2 if tty -s; then if ! [ "$msgs" ]; then - ${EDITOR:-vi} $LOGMSG2 - [ $LOGMSG2 -nt $LOGMSG ] || die 'Commit message not modified, commit aborted' + ${EDITOR:-vi} $LOGMSG + [ $LOGMSG -nt $LOGMSG2 ] || die 'Commit message not modified, commit aborted.' fi else - cat >>$LOGMSG2 + cat >>$LOGMSG fi -grep -v ^CG: $LOGMSG2 >$LOGMSG -rm $LOGMSG2 +grep -v ^CG: $LOGMSG >$LOGMSG2 +mv $LOGMSG2 $LOGMSG if [ ! "$ignorecache" ]; then if [ "$customfiles" ]; then