## ## OSSP svs -- Stupid/Silly/Simple Versioning System ## Copyright (c) 2003-2005 Ralf S. Engelschall ## Copyright (c) 2003-2005 The OSSP Project ## ## 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 - B =head1 VERSION B SVS_VERSION_STR =head1 SYNOPSIS =over 0 =item B vi I [...] =item B diff [I|I [...]] =item B backout [I|I [...]] =item B status [I|I [...]] =back =head1 DESCRIPTION B 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 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 ("CI) or the original content was not (or not correctly) preserved before ("C I IC<.orig>"). Simply running "C" instead of "C" 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 preceded by an C header and that the change is represented with the concise I 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 and C correctly handle those special cases. =back =head2 COMMANDS The following commands are provided: =over 4 =item B vi I [...] This potentially edits I by preserving the original contents in IC<.orig> (if still not existing) and running the C<$EDITOR> (or "C") on I. On leaving the editor, the original and current contents is compared. If there is no difference the IC<.orig> is removed again, else it is kept. =item B diff [I|I [...]] This generates a "patch file" summarizing all changes made to files where an IC<.orig> exists. =item B backout [I|I [...]] This backouts all changes made to files where an IC<.orig> exists. The IC<.orig> files are removed, too. =item B status [I|I [...]] This shows a short status of files I where an IC<.orig> or IC<.rej> file exists. A prefix of "C" indicates a modification (a IC<.orig> exists). A prefix of "C" indicates a conflict (a IC<.rej> exists). =back =head1 HISTORY The B tool was implemented in 2003 by Ralf S. Engelschall Erse@engelschall.comE. It was prompted by the need for a frontend to diff(1) and patch(1) to generate patches in the B Ehttp://www.openpkg.org/E project. =cut