info-cvs
[Top][All Lists]
Advanced

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

should I be able to create a conflict with this setup?


From: John Klassa
Subject: should I be able to create a conflict with this setup?
Date: Thu, 12 Oct 2000 20:07:19 -0400

[ Sorry if you see this twice...  I got confused as to which
  posting address to use. :-/ ]

I've got the following situation...

        trunk
                dev branch
                        test branch

That is, the dev branch was created as a branch off the trunk, and the
test branch was created as a branch off the dev branch.

Changes are never made in the trunk...  Everything happens in the dev
branch.  Occasionally, I merge everything from the dev branch down to
the trunk, using tags that mark the spots at which previous merges
occurred.  For example, I'll tag the dev branch with a label like
"MERGE-10", then I'll go into the trunk and do a "cvs update -dP -j
MERGE-9 -j MERGE-10" to merge in the changes that occurred between
MERGE-9 and MERGE-10.

Now, when we're about ready to release, we cut the test branch and do
testing there.  Work continues in the dev branch, on the features for
the next release.  Occasionally, we find a bug in the test branch, so we
fix it there, and then merge the changes down to the dev branch, just
as we do from the dev branch down to the trunk.  Then, as a matter of
course, we also merge the dev branch down to the trunk, just so every
branch, as well as the trunk, has the bug fix in it.

Now, what happened to me today is that I did the merge from the test
branch down to the dev branch, had a conflict, resolved it, and
committed the changes.  I tagged it as MERGE-20 (for the sake of
example), then went to the trunk and did an update with "-j MERGE-19 -j
MERGE-20".  Oddly, I had one file with several conflicts in it, some
large.  This made absolutely no sense to me.  The trunk and the dev
branch are identical right after a merge, and the dev branch only has so
much done to it before I go ahead and merge down to the trunk, so that
it and the trunk are in sync again.

If no changes occur on the trunk at all, how can I possibly get a
conflict when I merge from the dev branch down to the trunk?  Doesn't a
conflict *require* that the file has changed in both places, in a way
that conflicts?  If not, what are the semantics of a "-j TAG1 -j TAG2",
exactly?

I'm deeply confused.

Thanks,
John



reply via email to

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