Re: update bug (was: adding on branch)

"Paul Edwards" <[email protected]>
Newsgroups gmane.comp.version-control.cvs.bugs
Organization BigPond Internet Services (http://www.bigpond.net.au)
Message-ID <[email protected]>
"Pierre Asselin" <[email protected]> wrote in message news:[email protected]...
> I changed the title to attract new readers.  Paul, your problem has
> nothing to do with the Attic or dead trunk revisions.

There are two different problems.

> It also happens
> if a file added on the trunk and a file with the same name is
> imported later.  To reproduce,

Ok.

>     import a test tree
>     check out the trunk
>     add a file "gatcha" on the trunk, commit, delete the sandbox
>     add a file "gatcha" to the initial import tree, do a second import

"gotcha" is SOP I believe.  :-)

>     cvs checkout -j first_import -j second_import
>
> You get a warning about "gatcha", but once the warning flies off the
> screen

Yep, flying off the screen is exactly the problem.  My bodgy
workaround is to redirect to a file and grep for "has been
added".  Bodgy bodgy bodgy.  I'll be getting a job working for
Microsoft if I keep this up.

> there is no indication of a conflict.  The merge logic seems to be:
>
>     1) file has the new import tag but not the old, so must add
>     2) file is already present, can't add;  warn
>     3) oh, well.

:-)

> I would much prefer if update (or checkout -j -j), finding the file
> already in the sandbox, attempted the three-way merge between sandbox
> and import, with /dev/null as the common ancestor.  That seems to often

Exactly what is required.

> yield a file with the two versions bracketed by conflict markers, even
> if the two versions are almost identical.  Not very good, but at least
> it's fail-safe.

Exactly correct.  Not very nice, I have to go and cut the file in
two and do my own diff, but I can live with that.  The failsafe
is all that is required.

> Currently, the conflict information is lost.

Yep.

> Yow.  I guess I'll have to do my merges like I do my imports and
> capture the screen output
>
>     cvs update -j blah -j blahblah 2> ../err | tee ../out

Yep, you sure do.

You've just completely described problem 2 out of my
ad-hoc list...

1. Import being handled differently when branch exists.
2. Merge not creating a conflict when branch exists.
3. diff and rdiff -s not coping with different branches having
different version numbers while still being identical.
(hopefully 50% fixed on cvs1-11-x-branch).
4. diff between two labels, first missing, second dead produces an
error instead of silence (hopefully fixed on cvs1-11-x-branch)
5. diff and rdiff are not mirrors (feature request, not bug).


Problem 1, although obstensibly minor, can be broken down
in two ways:

A. Imports are prematurely interfering with the head, they should all
go into the Attic until explicitly joined onto the head.

B. The automatic-import-to-head feature does not work when some
tinpot has created a tinpot branch.

BFN.  Paul.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.