bug-cvs
[Top][All Lists]
Advanced

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

Re: trunk to branch and branch to trunk merge problem


From: Derek Robert Price
Subject: Re: trunk to branch and branch to trunk merge problem
Date: Tue, 16 Sep 2003 12:21:37 -0400
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624 Netscape/7.1

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Paul Edwards wrote:

|"das deniz" <das_deniz@yahoo.com> wrote in message
56cd2468.0309131634.48c29242@posting.google.com">news:56cd2468.0309131634.48c29242@posting.google.com...
|
|>6) cvs -kk -j first_tag -j branch_name
|>   (diff trunk vs branch to get branch change-set
|>   for merging into trunk? ok. but this is not what
|>   all the cvs primers use for branch examples....)
|>
|>would it be possible to make mods to CVS itself to use the revision of
|>the file used at the time of the merge out to the branch as the base
|>for the later creation of the new-born branch version?
|
|
|FWIW, I do many joins, and have never been inspired to
|only specify a single "-j".  In my environment, it is not
|possible for CVS to know what the unspecified "-j" is.
|
|Maybe the primer should be changed to encourage the
|use of two "-j" except for "very simple situations"?
|
|I don't know enough about current cvs behaviour as to what
|"very simple situations" are.  I personally always create a
|tag (on the branch) before issuing the "-j".  I always do the
|"-j" between two non-branch tags, I never use a (dynamic)
|branch-tag.  That way there is no doubt about what is actually
|done.


The manual already does this.  It is possible that it doesn't delve
deeply enough into what "very simple situations" are.  A merge using a
single -j argument is viable when the Greatest Common Ancestor (GCA) of
the source and destination branches is the root revision of the source
branch, no merges have been previously performed between the two
branches, and, currently, when no files have been added on the source
branch since the divergence (but this is due to the bug which Das just
discovered and which someone will hopefully submit a patch for).
"Branches", in this sense can include the trunk.

As simpler rules of thumb, this could be phrased as, "the destination
branch must be the immediate parent of the source branch or visa versa
and this must be the first merge from the source to this destination
branch".  In other words, don't merge from branches of branches unless
merging to the direct parent or visa versa and don't merge from the same
branch twice if the destination includes a previous merge from that
source.  Again, "branches" in this sense can include the trunk, this
doesn't take account of the "add" bug Das discovered, and we're still
talking about single -j options here.  Specifying the two -j options
explicitly works around all of these problems.

Patches excitedly anticipated!

Derek

- --
~                *8^)

Email: derek@ximbiot.com

Get CVS support at <http://ximbiot.com>!
- --
Mud is not one of the 4 food groups.
Mud is not one of the 4 food groups.
Mud is not one of the 4 food groups...

~          - Bart Simpson on chalkboard, _The Simpsons_
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
Comment: Using GnuPG with Netscape - http://enigmail.mozdev.org

iD8DBQE/ZziQLD1OTBfyMaQRAiL3AKD7rkdrLTCKcIUlbH/rFalxaVoveQCfYD4H
U2sD9egMxszBbmaH1jkMpk0=
=SE9G
-----END PGP SIGNATURE-----






reply via email to

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