[GRASS-SVN] r70718 - grass/trunk/tools

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Mar 1 12:08:30 PST 2017


Author: hcho
Date: 2017-03-01 12:08:30 -0800 (Wed, 01 Mar 2017)
New Revision: 70718

Modified:
   grass/trunk/tools/svnlog.sh
Log:
tools/svnlog.sh: Print (revision ...) by default
Print a top separator for multiple lines
Add the help and prefix options


Modified: grass/trunk/tools/svnlog.sh
===================================================================
--- grass/trunk/tools/svnlog.sh	2017-03-01 15:28:05 UTC (rev 70717)
+++ grass/trunk/tools/svnlog.sh	2017-03-01 20:08:30 UTC (rev 70718)
@@ -15,10 +15,33 @@
 #
 #############################################################################
 
+prefix="revision"
+get_prefix=0
+
 # collect revision numbers from command line arguments, if any
 # e.g., r70666, r70637 => -r70666 -r70637
 revs=""
 for i; do
+	if [ "$i" = "-h" -o "$i" = "--help" ]; then
+		cat<<EOT
+Usage: svnlog.sh [OPTION]... [REVISION]...
+
+Options:
+  -h, --help           print this help
+  -p, --prefix PREFIX  print PREFIX followed by a space and the revision number;
+                       print no space if PREFIX is empty
+EOT
+		exit
+	fi
+	if [ "$i" = "-p" -o "$i" = "--prefix" ]; then
+		get_prefix=1
+		continue
+	fi
+	if [ $get_prefix -eq 1 ]; then
+		prefix=`echo $i`
+		get_prefix=0
+		continue
+	fi
 	# remove any non-numeric characters
 	r=`echo $i | sed 's/[^0-9]//g'`
 	if [ "$r" = "" ]; then
@@ -28,21 +51,30 @@
 	revs="$revs -r$r"
 done
 
+if [ "$prefix" != "" ]; then
+	prefix="$prefix "
+fi
+
 # retreive and combine log messages
-svn log $revs | awk '
+svn log $revs | awk --assign prefix="$prefix" '
 /^------------------------------------------------------------------------$/{
-	if(msg != ""){
-		gsub(/\n+$/, "", msg)
-		split(msg, lines, /\n/)
-		printf "%s", msg
-		if(length(lines) == 1)
-			printf " (backport %s)\n", rev
-		else
-			# add a separator for multiple lines
-			printf "\n(backport %s)\n%s\n", rev, $0
+	if(rev != ""){
+		gsub(/^[ \t\n]+|[ \t\n]+$/, "", msg)
+		nlines = split(msg, lines, /\n/)
+		if(nlines == 0)
+			printf "No log message (" prefix "%s)\n", rev
+		else if(nlines == 1)
+			printf "%s (" prefix "%s)\n", msg, rev
+		else{
+			# add separators for multiple lines
+			if(!prev_multi)
+				printf "%s\n", $0
+			printf "%s\n(" prefix "%s)\n%s\n", msg, rev, $0
+		}
+		prev_multi = nlines > 1
 	}
 	started = 1
-	msg = ""
+	rev = msg = ""
 	next
 }
 {



More information about the grass-commit mailing list