Learning Arch commands for CVS users

This text is supposed to guide you through the transition from CVS to Arch for simple cases and make you aware of possible problems that you may run into. The biggest value may be contained in the one-to-one comparisons of cvs to tla commands. You are however encouraged to read through the additional remarks as well to make sure you don't get hit too hard by tla's slightly different semantics.

Contents

Versions and Revisions

A note on terminology: In CVS and Subversion, people tend to use the words revision and version loosely and interchangeably. In Arch, they have defined and specific meanings. A version is like a branch driving towards a new public release of the project. So where you might have a SAMBA_2_2 branch in CVS, you would have a samba--main--2.2 version in Arch. Within this version, revisions are the atomic steps of the tree, starting at base-0 and going up. Revisions are the closest correspondent to CVS or Subversion file versions.

In CVS it is common to do most work on the trunk and make branches only when strictly necessary, partly because working with branches in CVS is pretty painful and error-prone.

Arch makes it pretty easy to make new versions, so the general practice is that when you go from working on fooix 1.1 to fooix 1.2, you will create a new version for it. If, as on most smaller projects, you maintain just a single stream, then you will do this when 1.1 goes out, and then stop committing to the 1.1 version. Doing this is just for human convenience and clarity -- it doesn't really have any technical or performance consequences.

If you don't want to do this, you can just put everything in a version labelled "0". That might be appropriate for projects that never do public releases. If you just want a simple trunk rolling along with no punctuation, as is the default in CVS and Subversion, do all your work on fooix--main--0.

Identify yourself

This is stashed in ~/.arch-params. You only need to do it once per machine/home directory. You don't have to use a real email address, but please be sure that what you choose is unique world-wide.

Creating an archive

Your default archive is also remembered in ~/.arch-params.

As with CVS, each Arch working directory remembers the archive/server and module/version that it's associated with. So in both systems, you don't need to worry about this when re-entering a working directory, only when getting or importing a new one.

Importing a version

Getting a revision

Making modifications

Showing local changes

Tagging and branching

Merging

See Merging with Arch for more info.

.cvsignore

You may also want to use the junk keyword instead of the precious keyword for files you really don't care about, and that can be overwritten at any time by tla.

See section Customizing the inventory Naming Conventions of the tutorial.

.cvsrc

.cvsrc files are used to supply particular commands with preferred default arguments.

However there is no such equivalent in the tla implementation of Arch. RobertCollins has indicated that tla won't create .rc files and that he believes that is the job of wrapper programs such as aba, raw, payba and xtla to take of this functionality instead.

Keywords in source

Unlike CVS, arch does not implement keywords substitution in source files. This is a deliberated choice (taken from this discussion) :

Miscellaneous

Some description of other CVS features might be sensible here - especially, tla configs versus CVS modules.

Learning Arch commands for CVS users (last edited 2007-11-08 11:43:04 by 82)