[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Commit to trunk from branch

From: Kaz Kylheku
Subject: Re: Commit to trunk from branch
Date: Wed, 18 Feb 2004 10:01:54 -0800 (PST)

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" <address@hidden>
> To: "'address@hidden'" <address@hidden>
> 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. :)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]