====== vo ====== ''vo'' is an editor frontend which automatically does the RCS check in and check out. ===== man page ===== VO(SECTION) VO(SECTION) NAME vo - an editor frontend to RCS SYNOPSIS vo DESCRIPTION This manual page documents the vo command. vo is a program to easily handle files which are under control of RCS. vo uses ci and co to handle the check out and check in of RCS con‐ trolled files on the fly. The initial idea behind vo was to have more control over system config‐ uration files. With vo one knows who made which changes and when because RCS tracks the full history of modifications. This is extremly useful e.g. if working with co-admins on the same system. vo is somewhat aggressive concerning which files have to be RCS con‐ trolled. It takes what it gets. FEATURES · Automatical check in. Files not under RCS' control get checked in initially without hesitation. · If necessary a subdirectory named RCS is created automatically. · The environment variable $EDITOR is recognized. The default editor is vi. · Changes made circumventing RCS are a problem for RCS. Normally they get lost with the next check out. vo detects those illegal changes and updates them to the RCS repository before modifying the file's content further. Those updates are marked with the comment "recover‐ ing from RCS unaware modification". · If newer versions of sudo have set your $LOGIN and $USER environment variables to "root", vo uses $SUDO_USER to track the user who changed the file. You are strongly encouraged to use sudo instead of su or even rude login as root. · If vo is called as vom make is called automatically after closing the editor. This is handy when maintaining NIS maps, /etc/aliases or programming. · vo provides a simplified interface to RCS for scripting purpose. See OPTIONS for further intermation. · vo ignores symbolic links. This is because symbolic links will man‐ gle RCS files. · The environment variable $VO_ASK_RCS may be set to "Y" to make vo prompt the user before initially checking a file into RCS. OPTIONS -o Check out the given files(s). If a file it not unter RCS con‐ trol it gets initially checked in. If necessary a subdirectory named RCS is created also. -i Check in the given files(s) without asking for a comment. ENVIRONMENT EDITOR The editor program to use. The default editor is vi. USER The user which is logged as last maintainer of a file. LOGNAME The user which is logged as last maintainer of a file. SUDO_USER The user which is logged as last maintainer of a file. This will override settings of LOGNAME and USER. VO_ASK_RCS The environment variable $VO_ASK_RCS may be set to "Y" to make vo prompt the user before initially checking a file into RCS. FILES ./RCS SEE ALSO rcs(1), ci(1), co(1), rcsdiff(1). ===== resources ===== http://www.fischglas.de/software/vo/ ===== wish list ===== * after checking in, the file is left behind without write permissions. In general this reminds you to use ''vo'' instead of a plain editor. Nevertheless there are some rare cases where this behaviour causes problems and it should be allowed to leave a writeable file. * if a file has been already opened with ''vo'' a second invocation complains about the file already being open and terminates - BUT checks in the open file first, leaving the first ''vo'' with a readonly file. * try harder to determine who's performing the edit - w | awk -v t="$( tty < /dev/fd/2 )" '{sub("/dev/","",t);if ( $2 == t ) { print $1"@"$3 a}}' * on the very first check in, report these parameters to the rcs log: * mtime * ctime * owner, group * permissions * sha256 * attribs * acl * add a "-c" option to create a non-existing file * if the very first action is "vo -i " the RCS subdirectory is not created - but should be * integrate with etckeeper * integrate with other version control systems like svn, git * integrate some sort of blacklist to prevent files from being bothered by RCSat all. * when detecting an RCS unaware modification record file time stamps * add rcshist command to packet or better: its functionality to vo