On Wed, 18 Feb 2004, Lemke, Michael IZ/HZA-IOP wrote: > Date: Wed, 18 Feb 2004 17:57:26 +0100 > From: "Lemke, Michael IZ/HZA-IOP" <[EMAIL PROTECTED]> > To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> > Subject: Commit to trunk from branch > > Suppose I am on a branch. I add a file. How do I commit it to the trunk? > Instead of the branch.
In CVS, you don't commit branches. Committing means publishing local changes to the repository. To propagate changes from a branch to the trunk, you check out a working copy of the trunk, and then apply the branch changes to the working copy. The changes then become local edits, exactly as if someone had done them by hand. These changes can then be committed to the trunk. Applying the branch changes to the working copy is called merging. It's a mostly automatic process, but it can produce conflicts that have to be resolved. You have to hunt down the conflict markers in the files and perform an edit to correct the situation. Even when there are no flagged conflicts, the result of a merge has to be carefully verified. Merging in CVS is done by using ``cvs up'' with one or two -j options. With one -j option, you typically specify the branch. CVS figures out the common ancestral version between your working copy and the branch and does a three way merge. With two -j options, you specify arbitrary versions. The left version is treated as the ancestor, and the right version as the descendant. A three way merge is done using that ancestor, descendant and your working copy. CVS doesn't track what has been merged from where; it gives you this patching operation and the rest is up to you. Tracking merges is done using various conventions involving tags. Read the CVS manual. :) _______________________________________________ Info-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/info-cvs
