====== 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