Table of Contents


vo is an editor frontend which automatically does the RCS check in and check out.

man page

VO(SECTION)                                                        VO(SECTION)

       vo - an editor frontend to RCS


       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.

       · 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

       · 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

       · 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.

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

       EDITOR The editor program to use.  The default editor is vi.

       USER   The user which is logged as last maintainer of a file.

              The user which is logged as last maintainer of a file.

              The  user  which  is  logged as last maintainer of a file.  This
              will override settings of LOGNAME and USER.

              The environment variable $VO_ASK_RCS may be set to "Y"  to  make
              vo prompt the user before initially checking a file into RCS.


       rcs(1), ci(1), co(1), rcsdiff(1).


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 <filename>” 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
project/vo.txt · Last modified: 2017/12/11 18:41 by
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki