Subject: bug#12001: 24.1.50; vc-diff always talks to CVS repository

From: Eli Zaretskii <[email-masked]>
Date: Tue, 21 Aug 2012 05:52:09 +0300

> Date: Mon, 20 Aug 2012 22:20:26 -0400
> From: Richard Stallman <[email-masked]>
> Cc: [email-masked]
> 
>     make-version-backups-p only returns non-nil for VCS that don't have the
>     original version locally.
> 
>     > Indeed, vc-bzr-make-version-backups-p is not defined.
>     > Should it be?
> 
>     No VCS other than CVS should need it.
> 
> I am using bzr, and apparently bzr needs this,
> because vc-diff DOES NOT find the unmodified version
> except by connecting to the server.
> 
> So either there is some other bug,
> or vc-bzr-make-version-backups-p ought to be defined.

Since bzr has all the history of the versions locally, in the shape of
branch meta-data, you can easily recover any previous version of any
file without resorting to backup files.  For example, this puts the
last version of xdisp.c on a separate file:

   bzr cat -r -1 src/xdisp.c > src/xdisp.c.previous

Or, you want to overwrite the modified file with its last unmodified
version:

   bzr revert src/xdisp.c

(You can also use revision numbers older than -1, the last one, and
use the -r argument to "bzr revert", to recover versions older than
the last one.)

For this reason, no backup files are created in a bzr repository,
since doing so just wastes disk space.

CVS is different, because it does not store history locally, it must
go to the server for the equivalents of the above operations, which
requires you and the server to be on-line.  So with CVS, storing local
backups does have its merit.