svs - Stupid/Silly/Simple Versioning System OSSP svs .0.5 (07-Oct-2005) 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. svs solves the following primary issues: It is often the case that one enters the editor for editing a file, just to have to recognized that it is not writable ("chmod u+w file) or the original content was not (or not correctly) preserved before ("cp file file.orig"). Simply running "svs vi" instead of "vi" and not having to remember those subtle problems is both convenient and leads to consistent results. 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 *.orig files, etc) and that the changes can be correctly backed out again. 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 Index header and that the change is represented with the concise unified diff format with at least 3 lines of context. While patch files for changed vendor files are harmless, added or removed vendor files are special cases both for the patch application and removal. svs diff and svs backout correctly handle those special cases.

COMMANDS
The following commands are provided: This potentially edits file by preserving the original contents in file.orig (if still not existing) and running the $EDITOR (or "vi") on file. On leaving the editor, the original and current contents is compared. If there is no difference the file.orig is removed again, else it is kept. This generates a "patch file" summarizing all changes made to files where an file.orig exists. This backouts all changes made to files where an file.orig exists. The file.orig files are removed, too. This shows a short status of files file where an file.orig or file.rej file exists. A prefix of "M" indicates a modification (a file.orig exists). A prefix of "C" indicates a conflict (a file.rej exists). The svs tool was implemented in 2003 by Ralf S. Engelschall <rse@engelschall.com>. It was prompted by the need for a frontend to diff(1) and patch(1) to generate patches in the OpenPKG <http://www.openpkg.org/> project.