Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

23.7.5.4 Dired under VC

The VC Dired Mode described here works with all the version control systems that VC supports. Another more powerful facility, designed specifically for CVS, is called PCL-CVS. See About PCL-CVS.

When you are working on a large program, it is often useful to find out which files have changed within an entire directory tree, or to view the status of all files under version control at once, and to perform version control operations on collections of files. You can use the command C-x v d (vc-directory) to make a directory listing that includes only files relevant for version control.

C-x v d creates a buffer which uses VC Dired Mode. This looks much like an ordinary Dired buffer (see Dired); however, normally it shows only the noteworthy files (those locked or not up-to-date). This is called terse display. If you set the variable vc-dired-terse-display to nil, then VC Dired shows all relevant files—those managed under version control, plus all subdirectories (full display). The command v t in a VC Dired buffer toggles between terse display and full display (see VC Dired Commands).

By default, VC Dired produces a recursive listing of noteworthy or relevant files at or below the given directory. You can change this by setting the variable vc-dired-recurse to nil; then VC Dired shows only the files in the given directory.

The line for an individual file shows the version control state in the place of the hard link count, owner, group, and size of the file. If the file is unmodified, in sync with the master file, the version control state shown is blank. Otherwise it consists of text in parentheses. Under RCS and SCCS, the name of the user locking the file is shown; under CVS, an abbreviated version of the ‘cvs status’ output is used. Here is an example using RCS:

       /home/jim/project:
     
       -rw-r--r-- (jim)      Apr  2 23:39 file1
       -r--r--r--            Apr  5 20:21 file2

The files ‘file1’ and ‘file2’ are under version control, ‘file1’ is locked by user jim, and ‘file2’ is unlocked.

Here is an example using CVS:

       /home/joe/develop:
     
       -rw-r--r-- (modified) Aug  2  1997 file1.c
       -rw-r--r--            Apr  4 20:09 file2.c
       -rw-r--r-- (merge)    Sep 13  1996 file3.c

Here ‘file1.c’ is modified with respect to the repository, and ‘file2.c’ is not. ‘file3.c’ is modified, but other changes have also been checked in to the repository—you need to merge them with the work file before you can check it in.

When VC Dired displays subdirectories (in the “full” display mode), it omits some that should never contain any files under version control. By default, this includes Version Control subdirectories such as ‘RCS’ and ‘CVS’; you can customize this by setting the variable vc-directory-exclusion-list.

You can fine-tune VC Dired's format by typing C-u C-x v d—as in ordinary Dired, that allows you to specify additional switches for the ‘ls’ command.


 
 
  Published under the terms of the GNU General Public License Design by Interspire