We worked and added/upgraded these tarballs(JRE 1.5.04)
as kv to a Branch and then we merge them once
to the integration Branch. Now I have changed some of
the permissions and and checked back in and committed
my changes in to Integration_Branch.
Another engineer tried to merge revision we are
getting this error
cvs update -d -P -j Integ_Branch jre1.5.0_04.tar.gz
cvs update: file jre1.5.0_04.tar.gz exists, but has
been added in revision Int_Branch
Any idea what is happening here?
we asked this question in another mailing list and this
what we got!!!!
> we're running into a problem when
merging two branches.
> Here's the scenario:
> - two branches: main and foo
> - changes made to file bar.cpp in
> - merge branch foo into main (
cvs update -j foo bar.cpp) -> no
> - change bar.cpp in foo
> - merge foo into main ( cvs
update -j foo bar.cpp) -> PROBLEM!
> The problem is that the changes
made to bar.cpp in foo is not merged
> into main. Also, cvs gives this
> cvs server: file bar.cpp exists,
but has been added in revision foo
> If we use the tkcvs graphical
client, the merge works when using
> the button "Merge Changes to
Head", but not when using
> "Merge Branch to Head".
> So, we know CVS can do the
command line merge, but what option do we
> use (update -j doesn't work).
[Cameron, Steve] The problem is I
think that you are trying
(nearly) the same merge twice. The
second merge tries to merge in the
changes already merged by the first
merge (plus some more). These changes
include the addition (creation) of the
file. The 2nd time around, CVS sees
the file foo.cpp added to branch foo,
and also foo.cpp added to the trunk.
It counts this as a conflict. (CVS has
no memory that you already merged
once. It only knows the a foo.cpp was
added to the trunk and to the branch.
It doesn't presume that they are
necessarily the SAME file conceptually.
even. (though they are stored in the
same RCS file.) Since it can't
presume they are conceptually the same
file, it's a conflict. (That's my
What you could (and probably should)
have done is tag the branch
after the first merge, then, for the
2nd merge merged only the changes from
that tag onward.
cvs update -j foo bar.cpp
cvs tag -r foo
[.. time passes, more editing of
bar.cpp occurs on foo branch ... ]
cvs update -j
bar_cpp_merged_to_trunk_1 -j foo bar.cpp
cvs tag -r foo
I'm don't know what the tcl tool is
doing differently that makes it
Hope this is some help
Sr Software Engineer
Phone: (781) 398-3217