Check-in Number:
|
4897 | |
Date: |
2004-Dec-14 20:18:37 (local)
2004-Dec-14 19:18:37 (UTC) |
User: | rse |
Branch: | |
Comment: |
initial cut for OSSP svs |
Tickets: |
|
Inspections: |
|
Files: |
|
ossp-pkg/svs/.cvsignore -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,5 ----
+ configure
+ shtool
+ Makefile
+ svs
+ svs.1
|
|
ossp-pkg/svs/AUTHORS -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,15 ----
+ _ ___ ____ ____ ____
+ |_|_ _ / _ \/ ___/ ___|| _ \ _____ _____
+ _|_||_| | | | \___ \___ \| |_) | / __\ \ / / __|
+ |_||_|_| | |_| |___) |__) | __/ \__ \\ V /\__ \
+ |_|_|_| \___/|____/____/|_| |___/ \_/ |___/
+
+ OSSP svs - Stupid/Silly/Simple Versioning System
+
+ This is a list of authors who have written
+ or edited parts of the OSSP svs sources.
+
+ o OSSP svs (as a whole)
+ Written by: Ralf S. Engelschall
+ Edited by: Ralf S. Engelschall
+
|
|
ossp-pkg/svs/ChangeLog -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,15 ----
+ _ ___ ____ ____ ____
+ |_|_ _ / _ \/ ___/ ___|| _ \ _____ _____
+ _|_||_| | | | \___ \___ \| |_) | / __\ \ / / __|
+ |_||_|_| | |_| |___) |__) | __/ \__ \\ V /\__ \
+ |_|_|_| \___/|____/____/|_| |___/ \_/ |___/
+
+ OSSP svs - Stupid/Silly/Simple Versioning System
+
+ ChangeLog
+
+ Changes between *GENESIS* and 1.0.0 (xx-Jun-2003 to 14-Dec-2004):
+
+ *) Created the initial version of OSSP svs.
+ [Ralf S. Engelschall]
+
|
|
ossp-pkg/svs/Makefile.in -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,87 ----
+ ##
+ ## OSSP svs -- Stupid/Silly/Simple Versioning System
+ ## Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+ ## Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>
+ ##
+ ## This file is part of OSSP svs, a stupid/silly/simple versioning
+ ## system which can found at http://www.ossp.org/pkg/tool/svs/
+ ##
+ ## Permission to use, copy, modify, and distribute this software for
+ ## any purpose with or without fee is hereby granted, provided that
+ ## the above copyright notice and this permission notice appear in all
+ ## copies.
+ ##
+ ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ ## SUCH DAMAGE.
+ ##
+ ## Makefile.in: make(1) build procedure
+ ##
+
+ @SET_MAKE@
+
+ # installation paths
+ DESTDIR =
+ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+ bindir = @bindir@
+ libdir = @libdir@
+ includedir = @includedir@
+ mandir = @mandir@
+
+ # build tools
+ RM = rm -f
+ RMDIR = rmdir
+ SHTOOL = ./shtool
+ TRUE = true
+ POD2MAN = pod2man
+
+ # default target
+ all: svs.1
+
+ svs.1: svs.pod
+ V1=`$(SHTOOL) version -l txt -d short VERSION`; \
+ V2=`$(SHTOOL) version -l txt -d long VERSION`; \
+ D=`$(SHTOOL) version -l txt -d long VERSION | sed -e 's;.*(;;' -e 's;).*;;'`; \
+ $(POD2MAN) --quotes=none \
+ --section=1 --center="Stupid/Silly/Simple Versioning System" \
+ --release="$$D" --date="OSSP svs $$V1" svs.pod | \
+ sed -e "s;SVS_VERSION_STR;$$V2;" >svs.1
+
+ # perform installation procedure
+ install:
+ $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(prefix)
+ $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(bindir)
+ $(SHTOOL) mkdir -f -p -m 755 $(DESTDIR)$(mandir)/man1
+ $(SHTOOL) install -c -m 755 svs.sh $(DESTDIR)$(bindir)/svs
+ $(SHTOOL) install -c -m 644 svs.1 $(DESTDIR)$(mandir)/man1/svs.1
+
+ # perform uninstallation procedure
+ uninstall:
+ -$(RM) $(DESTDIR)$(mandir)/bin/svs
+ -$(RM) $(DESTDIR)$(mandir)/man1/svs.1
+ -$(RMDIR) $(DESTDIR)$(mandir)/man1 >/dev/null 2>&1 || $(TRUE)
+ -$(RMDIR) $(DESTDIR)$(bindir) >/dev/null 2>&1 || $(TRUE)
+ -$(RMDIR) $(DESTDIR)$(prefix) >/dev/null 2>&1 || $(TRUE)
+
+ # perform build clean up procedure
+ clean:
+
+ # perform distribution clean up procedure
+ distclean: clean
+ -$(RM) config.log config.status config.cache
+ -$(RM) Makefile
+
+ # perform developer clean up procedure
+ realclean: distclean
+ -$(RM) svs.1
+
|
|
ossp-pkg/svs/README -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,50 ----
+ _ ___ ____ ____ ____
+ |_|_ _ / _ \/ ___/ ___|| _ \ _____ _____
+ _|_||_| | | | \___ \___ \| |_) | / __\ \ / / __|
+ |_||_|_| | |_| |___) |__) | __/ \__ \\ V /\__ \
+ |_|_|_| \___/|____/____/|_| |___/ \_/ |___/
+
+ OSSP svs - Stupid/Silly/Simple Versioning System
+ Version 1.0.0
+
+ ABSTRACT
+
+ OSSP svs is a simple frontend to diff(1) and patch(1). It provides a
+ convenient way for working with changes on textual files if no history
+ tracking and version control is necessary. This is especially the
+ case when having to patch pristine vendor sources for portability or
+ bugfixing reasons.
+
+ COPYRIGHT AND LICENSE
+
+ Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+ Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>
+
+ This file is part of OSSP svs, a stupid/silly/simple versioning
+ system which can found at http://www.ossp.org/pkg/tool/svs/
+
+ Permission to use, copy, modify, and distribute this software for
+ any purpose with or without fee is hereby granted, provided that
+ the above copyright notice and this permission notice appear in all
+ copies.
+
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ SUCH DAMAGE.
+
+ HOME AND DOCUMENTATION
+
+ The documentation and latest release can be found on
+
+ o http://www.ossp.org/pkg/tool/svs/
+ o ftp://ftp.ossp.org/pkg/tool/svs/
+
|
|
ossp-pkg/svs/THANKS -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,17 ----
+ _ ___ ____ ____ ____
+ |_|_ _ / _ \/ ___/ ___|| _ \ _____ _____
+ _|_||_| | | | \___ \___ \| |_) | / __\ \ / / __|
+ |_||_|_| | |_| |___) |__) | __/ \__ \\ V /\__ \
+ |_|_|_| \___/|____/____/|_| |___/ \_/ |___/
+
+ OSSP svs - Stupid/Silly/Simple Versioning System
+
+ THANKS
+
+ Credit has to be given to the following people who contributed ideas,
+ stuff, bugfixes, hints etc. (in alphabetical order):
+
+ o Thomas Lotterer <thomas@lotterer.net>
+
+ ...and all other OSSP svs users who gave me feedback but I've forgot.
+
|
|
ossp-pkg/svs/VERSION -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,6 ----
+
+ VERSION -- Version Information for OSSP svs (syntax: Text)
+ [automatically generated and maintained by GNU shtool]
+
+ This is OSSP svs, Version 1.0.0 (14-Dec-2004)
+
|
|
ossp-pkg/svs/configure.ac -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,46 ----
+ dnl ##
+ dnl ## OSSP svs -- Stupid/Silly/Simple Versioning System
+ dnl ## Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+ dnl ## Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>
+ dnl ##
+ dnl ## This file is part of OSSP svs, a stupid/silly/simple versioning
+ dnl ## system which can found at http://www.ossp.org/pkg/tool/svs/
+ dnl ##
+ dnl ## Permission to use, copy, modify, and distribute this software for
+ dnl ## any purpose with or without fee is hereby granted, provided that
+ dnl ## the above copyright notice and this permission notice appear in all
+ dnl ## copies.
+ dnl ##
+ dnl ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ dnl ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ dnl ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ dnl ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ dnl ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ dnl ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ dnl ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ dnl ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ dnl ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ dnl ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ dnl ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ dnl ## SUCH DAMAGE.
+ dnl ##
+ dnl ##
+ dnl ## configure.ac: GNU autoconf specification
+ dnl ##
+
+ AC_PREREQ(2.53)
+ AC_REVISION($1.0$)
+ AC_INIT(README)
+
+ SVS_VERSION_STR="`./shtool version -l txt -d long VERSION`"
+ ./shtool echo -e "Configuring %BOSSP svs%b (Stupid/Silly/Simple Versioning System), version %B${SVS_VERSION_STR}%b"
+ echo "Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>"
+ echo "Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>"
+ AC_SUBST(SVS_VERSION_STR)
+
+ AC_PREFIX_DEFAULT(/usr/local)
+ AC_SET_MAKE
+
+ AC_CONFIG_FILES(Makefile)
+ AC_OUTPUT
+
|
|
ossp-pkg/svs/devtool -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,47 ----
+ #!/bin/sh
+ ##
+ ## devtool -- Development Tool
+ ## Copyright (c) 2001 Ralf S. Engelschall <rse@engelschall.com>
+ ##
+
+ if [ $# -eq 0 ]; then
+ echo "devtool:USAGE: devtool <command> [<arg> ...]" 1>&2
+ exit 1
+ fi
+
+ cmd="$1"
+ shift
+
+ devtoolfunc="./devtool.func"
+
+ if [ ! -f devtool.conf ]; then
+ echo "devtool:ERROR: no devtool.conf in current directory" 1>&2
+ exit 1
+ fi
+
+ cmdline=`grep "^%$cmd" devtool.conf`
+ if [ ".$cmdline" = . ]; then
+ echo "devtool:ERROR: command $cmd not found in devtool.conf" 1>&2
+ exit 1
+ fi
+
+ if [ ".$TMPDIR" != . ]; then
+ tmpdir="$TMPDIR"
+ elif [ ".$TEMPDIR" != . ]; then
+ tmpdir="$TEMPDIR"
+ else
+ tmpdir="/tmp"
+ fi
+ tmpfile="$tmpdir/rc.$$.tmp"
+
+ rm -f $tmpfile
+ touch $tmpfile
+ echo ". $devtoolfunc" >>$tmpfile
+ ( sed <devtool.conf -e "1,/^%common/d" -e '/^%.*/,$d'
+ sed <devtool.conf -e "1,/^%$cmd/d" -e '/^%.*/,$d' ) |\
+ sed -e 's;\([ ]\)@\([a-zA-Z_][a-zA-Z0-9_]*\);\1devtool_\2;' >>$tmpfile
+
+ sh $tmpfile "$@"
+
+ rm -f $tmpfile >/dev/null 2>&1 || true
+
|
|
ossp-pkg/svs/devtool.conf -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,41 ----
+ ##
+ ## devtool.conf -- Development Tool Configuration
+ ##
+
+ %autogen
+ @autogen autoconf 2.59 "2.5*"
+ @autogen shtool 2.0.1 "2.0.*" all
+
+ %autoclean
+ @autoclean autoconf
+ @autoclean shtool
+
+ %configure
+ ./configure --prefix=/tmp/svs "$@"
+
+ %version
+ ./shtool version -l txt -n "OSSP svs" -e VERSION
+ V=`./shtool version -l txt -d long VERSION`
+ sed -e "s/Version .*(.*)/Version $V/g" <README >README.n
+ mv README.n README
+
+ %dist
+ echo "+++ generating"
+ ./devtool autoclean
+ ./devtool autogen
+ echo "+++ configuring"
+ ./configure
+ echo "+++ building"
+ make clean all
+ echo "+++ cleaning"
+ make distclean
+ echo "+++ fixing"
+ ./shtool fixperm -v .
+ echo "+++ rolling"
+ V=`./shtool version -l txt -d short VERSION`
+ ./shtool tarball -o svs-${V}.tar.gz -d svs-${V} -u ossp -g svs \
+ -e 'CVS,\.cvsignore,\.[ao]$,^\.,devtool*,*.tar.gz' -c 'gzip --best' .
+ ls -l svs-${V}.tar.gz
+ echo "+++ testing"
+ gunzip <svs-${V}.tar.gz | tar tvf -
+
|
|
ossp-pkg/svs/devtool.func -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,73 ----
+ ##
+ ## devtool.func -- Development Tool Functions
+ ## Copyright (c) 2001-2004 Ralf S. Engelschall <rse@engelschall.com>
+ ##
+
+ devtool_require () {
+ t="$1"; o="$2"; p="$3"; e="$4"; a="$5"
+ v=`($t $o | head -1 | awk "{ print \\\$$p; }") 2>/dev/null`
+ if [ ".$v" = . ]; then
+ echo "devtool:ERROR: unable to determine version of $t" 1>&2
+ exit 1
+ fi
+ case "$v" in
+ $e )
+ ;;
+ $a )
+ echo "devtool:WARNING: $t version $v still accepted, although expected $e." 1>&2
+ ;;
+ * )
+ echo "devtool:ERROR: $t version $e expected, but found $v." 1>&2
+ exit 1
+ ;;
+ esac
+ echo "$v"
+ }
+
+ devtool_autogen () {
+ tool=$1
+ shift
+ case $tool in
+ autoconf )
+ autoconf_version=`devtool_require autoconf --version 4 "$1" "$2"`
+ echo "generating (GNU Autoconf $autoconf_version): configure config.h.in"
+ autoconf
+ #autoheader 2>&1 | grep -v "is unchanged"
+ rm -rf autom4te.cache >/dev/null 2>&1
+ ;;
+ libtool )
+ libtoolize_version=`devtool_require libtoolize --version 4 "$1" "$2"`
+ echo "generating (GNU Libtool $libtoolize_version): ltmain.sh, libtool.m4, config.guess, config.sub"
+ libtoolize --force --copy >/dev/null 2>&1
+ cp `libtoolize --force --copy --dry-run | grep "add the contents of" |\
+ sed -e 's;^[^\`]*\`;;' -e "s;'.*;;"` libtool.m4
+ ;;
+ shtool )
+ shtoolize_version=`devtool_require shtoolize -v 3 "$1" "$2"`
+ echo "generating (GNU Shtool $shtoolize_version): shtool"
+ shift
+ shift
+ shtoolize -q "$@"
+ ;;
+ esac
+ }
+
+ devtool_autoclean () {
+ tool=$1
+ shift
+ case $tool in
+ autoconf )
+ echo "removing: configure config.h.in"
+ rm -f configure config.h.in
+ ;;
+ libtool )
+ echo "removing: ltmain.sh libtool.m4 config.guess config.sub"
+ rm -f ltmain.sh libtool.m4 config.guess config.sub
+ ;;
+ shtool )
+ echo "removing: shtool"
+ rm -f shtool
+ ;;
+ esac
+ }
+
|
|
ossp-pkg/svs/svs.pod -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,131 ----
+ ##
+ ## OSSP svs -- Stupid/Silly/Simple Versioning System
+ ## Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+ ## Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>
+ ##
+ ## This file is part of OSSP svs, a stupid/silly/simple versioning
+ ## system which can found at http://www.ossp.org/pkg/tool/svs/
+ ##
+ ## Permission to use, copy, modify, and distribute this software for
+ ## any purpose with or without fee is hereby granted, provided that
+ ## the above copyright notice and this permission notice appear in all
+ ## copies.
+ ##
+ ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ ## SUCH DAMAGE.
+ ##
+ ## svs.pod: manual page (language: POD)
+ ##
+
+ =pod
+
+ =head1 NAME
+
+ B<svs> - B<Stupid/Silly/Simple Versioning System>
+
+ =head1 VERSION
+
+ B<OSSP svs> SVS_VERSION_STR
+
+ =head1 SYNOPSIS
+
+ =over 0
+
+ =item B<svs> vi I<file> [...]
+
+ =item B<svs> diff I<file>|I<dir> [...]
+
+ =item B<svs> backout I<file>|I<dir> [...]
+
+ =back
+
+ =head1 DESCRIPTION
+
+ B<OSSP svs> is a simple frontend to diff(1) and patch(1). It provides a
+ convenient way for working with changes on textual files if no history
+ tracking and version control is necessary. This is especially the
+ case when having to patch pristine vendor sources for portability or
+ bugfixing reasons.
+
+ B<svs> solves the following primary issues:
+
+ =over 4
+
+ =item Writable and preserved files
+
+ It is often the case that one enters the editor for editing a file, just
+ to have to recognized that it is not writable ("C<chmod u+w >I<file>)
+ or the original content was not (or not correctly) preserved before
+ ("C<cp> I<file> I<file>C<.orig>"). Simply running "C<svs vi>" instead
+ of "C<vi>" and not having to remember those subtle problems is both
+ convenient and leads to consistent results.
+
+ =item Re-editing of files
+
+ Usually the patching of vendor sources is an iterative process where one
+ has to both re-edit files and even perform the whole edit/diff/patch
+ cycle multiple times. Here it is important that no already applied
+ changes are lost (overwritten C<*.orig> files, etc) and that the changes
+ can be correctly backed out again.
+
+ =item Index style
+
+ For portability and consistency reasons it is good if all patches use
+ the same style. This means that all hunks should be preceeded by an
+ C<Index> header and that the change is represented with the concise
+ I<unified diff> format with at least 3 lines of context.
+
+ =item New or removed files
+
+ While patch files for changed vendor files are harmless, added or
+ removed vendor files are special cases both for the patch application
+ and removal. B<svs diff> and C<svs backout> correctly handle those
+ special cases.
+
+ =back
+
+ =head2 COMMANDS
+
+ The following commands are provided:
+
+ =over 4
+
+ =item B<svs> vi I<file> [...]
+
+ This potentially edits I<file> by preserving the original contents in
+ I<file>C<.orig> (if still not existing) and running the C<$EDITOR> (or
+ "C<vi>") on I<file>. On leaving the editor, the original and current
+ contents is compared. If there is no difference the I<file>C<.orig> is
+ removed again, else it is kept.
+
+ =item B<svs> diff [I<file>|I<dir> [...]]
+
+ This generates a "patch file" summarizing all changes made to files
+ where an I<file>C<.orig> exists.
+
+ =item B<svs> backout [I<file>|I<dir> [...]]
+
+ This backouts all changes made to files where an I<file>C<.orig> exists.
+ The I<file>C<.orig> files are removed, too.
+
+ =back
+
+ =head1 HISTORY
+
+ The B<svs> tool was implemented in 2003 by Ralf S. Engelschall
+ E<lt>rse@engelschall.comE<gt>. It was prompted by the need for a
+ frontend to diff(1) and patch(1) to generate patches in the B<OpenPKG>
+ E<lt>http://www.openpkg.org/E<gt> project.
+
+ =cut
+
|
|
ossp-pkg/svs/svs.sh -> 1.1
*** /dev/null Sat Nov 23 01:22:12 2024
--- - Sat Nov 23 01:22:46 2024
***************
*** 0 ****
--- 1,181 ----
+ #!/bin/sh
+ ##
+ ## OSSP svs -- Stupid/Silly/Simple Versioning System
+ ## Copyright (c) 2003-2004 Ralf S. Engelschall <rse@engelschall.com>
+ ## Copyright (c) 2003-2004 The OSSP Project <http://www.ossp.org/>
+ ##
+ ## This file is part of OSSP svs, a stupid/silly/simple versioning
+ ## system which can found at http://www.ossp.org/pkg/tool/svs/
+ ##
+ ## Permission to use, copy, modify, and distribute this software for
+ ## any purpose with or without fee is hereby granted, provided that
+ ## the above copyright notice and this permission notice appear in all
+ ## copies.
+ ##
+ ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
+ ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ ## SUCH DAMAGE.
+ ##
+ ## svs.sh: program (language: Bourne Shell)
+ ##
+
+ # check command line
+ if [ $# -eq 0 ]; then
+ echo "Usage: svs vi <file> [...]"
+ echo "Usage: svs diff [<file>|<dir> [...]]"
+ echo "Usage: svs backout [<file>|<dir> [...]]"
+ exit 1
+ fi
+
+ # dispatch into commands
+ cmd="$1"
+ shift
+ case "$cmd" in
+ v|vi|vim | e|em|ema|emac|emacs )
+ ##
+ ## EDIT ONE OR MORE FILES
+ ##
+
+ # iterate over all files
+ for file in "$@"; do
+ # preserve original file
+ if [ ! -f $file.orig ]; then
+ cp -p $file $file.orig
+ orig=new
+ else
+ orig=old
+ fi
+
+ # edit file
+ chmod u+w $file
+ ${EDITOR-vi} $file
+
+ # check for editing results
+ if cmp $file.orig $file >/dev/null 2>&1; then
+ if [ ".$orig" = .new ]; then
+ echo "svs: no changes made (keeping original)"
+ else
+ echo "svs: changes reversed (restoring original)"
+ fi
+ cp -p $file.orig $file
+ rm -f $file.orig
+ else
+ echo "svs: changes made (preserving original)"
+ fi
+ done
+ ;;
+
+ d|di|dif|diff )
+ ##
+ ## GENERATE PATCHING DIFFERENCE
+ ##
+
+ # determine file list
+ if [ $# -eq 0 ]; then
+ set -- .
+ fi
+ files=""
+ for file in "$@"; do
+ if [ -d $file ]; then
+ for f in `find $file -type f -name "*.orig" -print`; do
+ files="$files $f"
+ done
+ elif [ -f $file ]; then
+ files="$files $file"
+ else
+ echo "svs:ERROR: \"$file\" neither regular file nor directory" 1>&2
+ exit 1
+ fi
+ done
+
+ # generate patch
+ for file in $files; do
+ file=`echo "$file" | sed -e 's;^\./;;' -e 's;/\./;/;g' -e 's;\([^/][^/]*\)/\.\.;;g' -e 's;//*;/;g'`
+ orig=`echo "$file" | sed -e 's;\.orig$;;' -e 's;$;.orig;'`
+ edit=`echo "$file" | sed -e 's;\.orig$;;'`
+ if [ ! -f $orig ]; then
+ echo "svs:WARNING: original file \"$orig\" not found" 1>&2
+ continue
+ fi
+ if [ ! -f $edit ]; then
+ # special case: removed file
+ echo "Index: $edit"
+ diff -u3 $orig /dev/null | sed -e "1s/^--- $orig/--- $edit/"
+ elif [ ! -r $orig ] && [ ! -s $orig ]; then
+ # special case: new file
+ echo "Index: $edit"
+ diff -u3 /dev/null $edit
+ else
+ # regular case: edited file
+ if ! cmp $orig $edit >/dev/null 2>&1; then
+ echo "Index: $edit"
+ diff -u3 $orig $edit
+ fi
+ fi
+ done
+ ;;
+
+ b|ba|bac|back|backo|backou|backout )
+ ##
+ ## BACKOUT EDITING CHANGES
+ ##
+
+ # determine file list
+ if [ $# -eq 0 ]; then
+ set -- .
+ fi
+ files=""
+ for file in "$@"; do
+ if [ -d $file ]; then
+ for f in `find $file -type f -name "*.orig" -print`; do
+ files="$files $f"
+ done
+ elif [ -f $file ]; then
+ files="$files $file"
+ else
+ echo "svs:ERROR: \"$file\" neither regular file nor directory" 1>&2
+ exit 1
+ fi
+ done
+
+ # backout changes
+ for file in $files; do
+ file=`echo "$file" | sed -e 's;^\./;;' -e 's;/\./;/;g' -e 's;\([^/][^/]*\)/\.\.;;g' -e 's;//*;/;g'`
+ orig=`echo "$file" | sed -e 's;\.orig$;;' -e 's;$;.orig;'`
+ edit=`echo "$file" | sed -e 's;\.orig$;;'`
+ if [ ! -f $orig ]; then
+ echo "svs:WARNING: original file \"$orig\" not found" 1>&2
+ continue
+ fi
+ echo "svs: backing out changes to \"$edit\""
+ if [ ! -f $edit ]; then
+ # special case: removed file
+ cp -p $orig $edit
+ rm -f $orig
+ elif [ ! -r $orig ] && [ ! -s $orig ]; then
+ # special case: new file
+ chmod u+w $orig
+ rm -f $orig
+ rm -f $edit
+ else
+ # regular case: edited file
+ cp -p $orig $edit
+ rm -f $orig
+ fi
+ done
+ ;;
+ * )
+ echo "svs:ERROR: invalid command \"$cmd\"" 1>&2
+ exit 1
+ ;;
+ esac
+
|
|