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.