---
name: "vdiff"
section: "1"
platform: "linux"
package: "atfs"
version: "1.4pl6-15+b1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/vdiff"
---

# vdiff(1)

display line-by-line differences between versions of files

## NAME

vdiff - display line-by-line differences between versions of files

## SYNOPSIS

**vdiff** \[ *diff-options* \] \[ **-base** *path* \] \[ **-P** \] files ..

## DESCRIPTION

**vdiff** is a differential comparator for file versions that are stored in *shapeTools'* object base, *AtFS*. The functionality of **vdiff** is very similar to the **diff** command on your host. All options and switches that are recognized by **diff** can also be specified for **vdiff**.

The arguments to **vdiff** can either be a single filename, or a pair of *version identifiers*. If only a filename is specified, **vdiff** prints the differences between the specified file and the most recent version of this file that is stored in the AtFS object base. A file can be compared to any stored version by specifying the version as first, and the filename as second argument. If both arguments are version identifiers, the difference between these two versions is printed.

Differences between files and versions can be printed in any style that is supported by the local **diff** program.

Version identifiers consist of the filename, and a version number or alias name for a version, enclosed in brackets. Example:\
 `retrieve.c[4.22]`    or    `retrieve.c[Rel-4.1]`

**vdiff** creates temporary copies of the versions that shall be compared, invokes the **diff** command, and finally removes the temporary copies.

## OPTIONS

- **-base** *path*

  If **vdiff** is told to produce a *context diff*, the filenames of the compared objects are mangeled so that the specified *path* replaces the path of the current directory in the full pathnames appearing in the diff-header. This is useful to replace an absolute pathname by a relative pathname and makes the produced context-diff easier to digest for the **patch** program.

- **-P**

  With the **-P** switch turned on, **vdiff** won't give up if one of the two objects that shall be compared does not exist. In this case an empty object is substituted for the missing one, causing the diff to be the complete contents of the existing object. This is useful in situations when complex patches are produced that upgrade one release of a software system to a new release, and the system has structurally changed (i.e. new files have been added to the system).

## SEE ALSO

[diff(1)](/diff/1.md), [vcat(1)](/vcat/1.md)

## AUTHOR

Axel.Mahler@cs.tu-berlin.de
