SF.net SVN: geany:[2986] trunk/scripts

ntrel at users.sourceforge.net ntrel at xxxxx
Tue Sep 23 14:46:42 UTC 2008


Revision: 2986
          http://geany.svn.sourceforge.net/geany/?rev=2986&view=rev
Author:   ntrel
Date:     2008-09-23 14:46:42 +0000 (Tue, 23 Sep 2008)

Log Message:
-----------
Add svn-changes.sh script to print SVN working copy changes in ChangeLog format, and warn about unknown files.

Modified Paths:
--------------
    trunk/scripts/changelist.pl

Added Paths:
-----------
    trunk/scripts/svn-changes.sh

Modified: trunk/scripts/changelist.pl
===================================================================
--- trunk/scripts/changelist.pl	2008-09-23 11:37:20 UTC (rev 2985)
+++ trunk/scripts/changelist.pl	2008-09-23 14:46:42 UTC (rev 2986)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 # Author:	Nick Treleaven
-# License:	GPL V2 or later
+# License:	GNU GPL V2 or later
 
 # Searches a ChangeLog file for a line matching 'matchstring', then matches
 # all lines until two consecutive empty lines are found. The process then

Added: trunk/scripts/svn-changes.sh
===================================================================
--- trunk/scripts/svn-changes.sh	                        (rev 0)
+++ trunk/scripts/svn-changes.sh	2008-09-23 14:46:42 UTC (rev 2986)
@@ -0,0 +1,48 @@
+#!/bin/bash
+# Author:	Nick Treleaven
+# License:	GNU GPL V2 or later
+
+# Displays a summary of Subversion working copy changes in ChangeLog
+# format, plus warnings about any unknown files.
+
+# -s for spaces instead of comma separation
+if [[ $1 == -s ]]; then
+	SPACES="set"
+	shift
+fi
+
+status=`svn st $*`
+
+# get list of files changed.
+# remove extraneous text, e.g. ? entries
+files=`echo "$status" |egrep '^[A-Z]'`
+# get filenames on one line
+files=`echo "$files" |egrep -o '[^A-Z].[ ]+(.+)' |xargs`
+# add commas if -s argument is not given
+if [[ -z $SPACES ]]; then
+	files=`echo "$files" |sed "s/ /, /g"`
+fi
+
+# show modifications
+if [[ -n $files ]]; then
+	echo 'Changes:'
+	if [[ -z $SPACES ]]; then
+		files+=':'
+	fi
+	# indent and wrap
+	OUTFILE=/tmp/fmt
+	echo -n '   '$files | fmt -w 72 >$OUTFILE
+	# put ' * ' for first line
+	cat $OUTFILE | sed '1s/   / * /'
+else
+	echo 'No changes.'
+fi
+
+# warn about anything that isn't a modification or addition
+warn=`echo "$status" |egrep '^[^MA]'`
+if [[ -n $warn ]]; then
+	echo 'Warnings:'
+	echo $warn
+else
+	echo 'No warnings.'
+fi


Property changes on: trunk/scripts/svn-changes.sh
___________________________________________________________________
Added: svn:executable
   + *
Added: svn:keywords
   + Author Date Id Revision
Added: svn:eol-style
   + native


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list