git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH Cogito] Make use of external editor work like CVS

From
MHMarcel Holtmann <marcel@holtmann.org>
Date
May 8, 2005, 15:02 UTC
Message-ID
<1115564550.9031.96.camel@pegasus>
Hi Petr,

this is a modified version of my patch that integrates the your latest modifications to cg-commit and also fixes the cleanup of the temporary files when we abort the operation.

Regards
Marcel
[PATCH] 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 as parameter then add an extra empty line at the top. And don't forget to take care of the temporary files when a commit is unneeded or canceled.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>

--- commit 895bcd02ecc96bed1d35275def6dca1ca6f20e5f tree be440e169fa3b5ec5450fa9574cd8789b0e3ab20 parent 64142a39e7a6701e69654a930de86a9fe296f8a0 author Marcel Holtmann <marcel@holtmann.org> Sun, 08 May 2005 16:58:50 +0200 committer Marcel Holtmann <marcel@holtmann.org> Sun, 08 May 2005 16:58:50 +0200

 cg-commit |   63 ++++++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 37 insertions(+), 26 deletions(-)
Index: cg-commit
===================================================================
--- 8bb38f8bfdc7411460c300c811da1987173f412f/cg-commit  (mode:100755)
+++ be440e169fa3b5ec5450fa9574cd8789b0e3ab20/cg-commit  (mode:100755)
@@ -61,26 +61,10 @@
 
 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
-		[ "$msgs" ] && echo $file
-	done
-	echo CG: >>$LOGMSG
-fi
 
 if [ "$merging" ]; then
-	echo -n 'Merge with ' >>$LOGMSG
-	[ "$msgs" ] && echo -n 'Merge with '
+	echo -n "Merge with " >>$LOGMSG
+	[ "$msgs" ] && echo -n "Merge with "
 	[ -s .git/merging-sym ] || cp .git/merging .git/merging-sym
 	for sym in $(cat .git/merging-sym); do
 		uri=$(cat .git/branches/$sym)
@@ -88,28 +72,55 @@
 		echo "$uri" >>$LOGMSG
 		[ "$msgs" ] && 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
+		rm $LOGMSG $LOGMSG2
+		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
+		[ "$msgs" ] && echo "$file"
+	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
+		if [ ! $LOGMSG -nt $LOGMSG2 ]; then
+			rm $LOGMSG $LOGMSG2
+			die 'Commit message not modified, commit aborted.'
+		fi
 	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
Next: Sean
Message 1 of 20 in “Make use of external editor work like CVS”
  1. Make use of external editor work like CVSMarcel Holtmann, May 8, 2005
  2. SeanMay 8, 2005
  3. Petr BaudisMay 8, 2005
  4. Marcel HoltmannMay 8, 2005
  5. Petr BaudisMay 8, 2005
  6. Marcel HoltmannMay 8, 2005
  7. Petr BaudisMay 8, 2005
  8. Marcel HoltmannMay 8, 2005
  9. Petr BaudisMay 8, 2005
  10. Marcel HoltmannMay 8, 2005
  11. Petr BaudisMay 8, 2005
  12. Marcel HoltmannMay 8, 2005
  13. Petr BaudisMay 8, 2005
  14. Marcel HoltmannMay 8, 2005
  15. Petr BaudisMay 8, 2005
  16. Marcel HoltmannMay 8, 2005
  17. Edgar ToernigMay 9, 2005
  18. Petr BaudisMay 9, 2005
  19. SeanMay 8, 2005
  20. Marcel HoltmannMay 8, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.