ErgoEmacsEmacsLispBlogEmacsLispBuy Tutorial
Web Hosting by 1&1
32.1.10.2 Revision Tag Caveats

For SCCS, VC implements tags itself; these tags are visible only through VC. Most later systems (including CVS, Subversion, bzr, git, and hg) have a native tag facility, and VC uses it where available; those tags will be visible even when you bypass VC.

There is no support for VC tags using GNU Arch yet.

Under older VCSes (SCCS, RCS, CVS, early versions of Subversion), renaming and deletion could create some difficulties with tags. This is not a VC-specific problem, but a general design issue in version control systems that was not solved effectively until the earliest third-generation systems.

In a file-oriented VCS, when you rename a registered file you need to rename its master along with it; the command vc-rename-file will do this automatically. If you are using SCCS, you must also update the records of the tag, to mention the file by its new name (vc-rename-file does this, too). An old tag that refers to a master file that no longer exists under the recorded name is invalid; VC can no longer retrieve it. It would be beyond the scope of this manual to explain enough about RCS and SCCS to explain how to update the tags by hand.

Using vc-rename-file makes the tag remain valid for retrieval, but it does not solve all problems. For example, some of the files in your program probably refer to others by name. At the very least, the makefile probably mentions the file that you renamed. If you retrieve an old tag, the renamed file is retrieved under its new name, which is not the name that the makefile expects. So the program won't really work as retrieved.

blog comments powered by Disqus