Stickiness
When some aspect of the persistent state of a file in a sandbox is different from that of the file in the repository, that aspect is said to be sticky. For example, when a file is retrieved based on a specific date, tag, or revision, those attributes are sticky. Similarly, when a file in a sandbox belongs to a branch, the branch is said to be sticky, and if the keyword expansion mode is set on a file, that mode is also sticky. Entire directories may be marked as sticky, not just individual files.
These attributes are termed “sticky” because the state of the
file becomes persistent. In particular, a cvs update does not
update such files to the latest revision in the repository.
Similarly, you cannot use cvs
commit to make such a file become the head of a branch or
the trunk in the repository. Finally, when a file is on a sticky
branch, it can only be committed on that branch. cvs status shows the stickiness of various
attributes.
This all makes sense: work on a branch should be done only on that branch. When work on the branch is finished, the branch’s changes should be merged into the files on the trunk, instead of checking the files into the head of the trunk directly.
Stickiness is created or changed using the
-D, -k or -r
options to cvs checkout and
cvs update. Use cvs update -A to remove stickiness. You
must use this command on a sticky directory directly; applying it
just to all the contained files in the directory is not
enough.
See Chapter 4 in Essential CVS for more ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access