Commits

Anonymous committed 3103c00 Merge

Merge branch 'master' into jc/combine

* master:
stripspace: make sure not to leave an incomplete line.
git-commit: do not muck with commit message when no_edit is set.
When showing a commit message, do not lose an incomplete line.
Retire t5501-old-fetch-and-upload test.

Comments (0)

Files changed (4)

 
 	while (len--) {
 		char c = *msg++;
+		if (!c)
+			break;
 		ret++;
 		if (c == '\n')
 			break;
-		if (!c)
-			return 0;
 	}
 	return ret;
 }
 	;;
 esac
 
-if [ -f "$GIT_DIR/MERGE_HEAD" ]; then
+if test -f "$GIT_DIR/MERGE_HEAD" && test -z "$no_edit"; then
 	echo "#"
 	echo "# It looks like you may be committing a MERGE."
 	echo "# If this is not correct, please remove the file"
 	current=
 fi
 
-{
-	test -z "$only_include_assumed" || echo "$only_include_assumed"
-	run_status
-} >>"$GIT_DIR"/COMMIT_EDITMSG
+if test -z "$no_edit"
+then
+	{
+		test -z "$only_include_assumed" || echo "$only_include_assumed"
+		run_status
+	} >>"$GIT_DIR"/COMMIT_EDITMSG
+else
+	# we need to check if there is anything to commit
+	run_status >/dev/null 
+fi
 if [ "$?" != "0" -a ! -f "$GIT_DIR/MERGE_HEAD" -a -z "$amend" ]
 then
 	rm -f "$GIT_DIR/COMMIT_EDITMSG"
 	run_status
 	exit 1
 fi
+
 case "$no_edit" in
 '')
 	case "${VISUAL:-$EDITOR},$TERM" in
  * Remove empty lines from the beginning and end.
  *
  * Turn multiple consecutive empty lines into just one
- * empty line.
+ * empty line.  Return true if it is an incomplete line.
  */
-static void cleanup(char *line)
+static int cleanup(char *line)
 {
 	int len = strlen(line);
 
 			len--;
 			line[len] = 0;
 		} while (len > 1);
+		return 0;
 	}
+	return 1;
 }
 
 int main(int argc, char **argv)
 {
 	int empties = -1;
+	int incomplete = 0;
 	char line[1024];
 
 	while (fgets(line, sizeof(line), stdin)) {
-		cleanup(line);
+		incomplete = cleanup(line);
 
 		/* Not just an empty line? */
 		if (line[0] != '\n') {
 			continue;
 		empties++;
 	}
+	if (incomplete)
+		putchar('\n');
 	return 0;
 }

t/t5501-old-fetch-and-upload.sh

-#!/bin/sh
-#
-# Copyright (c) 2005 Johannes Schindelin
-#
-
-# Test that the current fetch-pack/upload-pack plays nicely with
-# an old counterpart
-
-cd $(dirname $0) || exit 1
-: ${SHELL_PATH=/bin/sh}
-
-tmp=`pwd`/.tmp$$
-
-retval=0
-
-if [ -z "$1" ]; then
-	list="fetch upload"
-else
-	list="$@"
-fi
-
-for i in $list; do
-	case "$i" in
-	fetch) pgm="old-git-fetch-pack"; replace="$pgm";;
-	upload) pgm="old-git-upload-pack"; replace="git-fetch-pack --exec=$pgm";;
-	both) pgm="old-git-upload-pack"; replace="old-git-fetch-pack --exec=$pgm";;
-	esac
-
-	if where=`LANG=C LC_ALL=C which "$pgm" 2>/dev/null` &&
-	   case "$where" in
-	   "no "*) (exit 1) ;;
-	   esac
-	then
-		echo "Testing with $pgm"
-		sed -e "s/git-fetch-pack/$replace/g" \
-			-e "s/# old fails/warn/" < t5500-fetch-pack.sh > $tmp
-
-		"$SHELL_PATH" "$tmp" || retval=$?
-		rm -f "$tmp"
-
-		test $retval != 0 && exit $retval
-	else
-		echo "Skipping test for $i, since I cannot find $pgm"
-	fi
-done
-
-exit 0
-
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.