[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Tree conflicts display and revert (was Re: Spurious conflicted overlay)

From: Konstantin Kolinko <knst.kolinko_at_gmail.com>
Date: Fri, 20 Mar 2009 00:46:04 +0300

2009/3/20 Simon Large <simon.tortoisesvn_at_googlemail.com>:
> 2009/3/19 Konstantin Kolinko <knst.kolinko_at_gmail.com>:
>> 2009/3/19 Stefan Küng <tortoisesvn_at_gmail.com>:
>>> Simon Large wrote:
>>>> Hi folks,
>>>>
>>>> I made a mistake when trying to merge earlier this evening. I merged
>>>> trunk/doc into branches/1.6.x/doc/source and got a tree conflict on
>>>> source. Oops, revert that!
>>>>
>>>> Now I have a conflicted overlay on source, but CfM shows no conflicts,
>>>> and I am allowed to commit from the top level doc folder. Since then I
>>>> upgraded to the latest nightly, and also tried cleanup, but nothing
>>>> will clear the conflicted overlay. Killing TSVNcache.exe clears it for
>>>> a short time, but after a while it goes back to conflicted. svn status
>>>> shows no conflicts either.
>>>
>>> Can't reproduce this.
>>> * show log for 'doc'
>>> * select r15754, right-click, "merge revision to...", select
>>> 1.6.x\doc\source as the target
>>> * tree conflict on 1.6.x\doc\source
>>> * revert
>>>
>>> the overlay changes back to 'normal' as it should.
>>> And it stays as 'normal' even after waiting 10 minutes and two
>>> 'cleanup's on 1.6.x.
>>>
>>> I used r15754, assuming that's the merge you attempted?
>>> Maybe you merged a different way or another revision?
>>>
>>>
>>> Stefan
>>>
>>> --
>>>       ___
>>>  oo  // \\      "De Chelonian Mobile"
>>>  (_,\/ \_/ \     TortoiseSVN
>>>   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
>>>   /_/   \_\     http://tortoisesvn.net
>>>
>>> ------------------------------------------------------
>>> http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=1356709
>>>
>>
>> Hi, colleagues!
>>
>> CCing users (@) subversion.tigris.org
>>
>> I tried to reproduce the above mentioned merge and revert with svn.exe of
>> TortoiseSVN 1.6 nightly build, and I am not satisfied with the following:
>>
>> 1). svn merge reports that there were tree conflicts,
>> but svn status does not display them.
>>
>> Why so? Were they automatically resolved by svn merge? (Is there such
>> a feature?)
>>
>> Is so, the merge status summary is misleading. If not, the svn status is faulty.
>>
>> 2). svn revert did not restore .svn/entries in one of the folders.
>>
>> The files slightly differ in size. Is that to be expected?
>>
>>
>> I hope that someone having a RC can reproduce this or answer the questions.
>>
>>
>>
>> 1. Version of svn.exe
>>
>> I do not know what svn version TortoiseSVN nightly build uses,
>> but it used to be some recent one. The svn --version reports:
>>
>> svn, version 1.6.0 (dev build)
>>   compiled Mar 19 2009, 00:12:28
>>
>> You can get TortoiseSVN nightly here:
>> http://nightlybuilds.tortoisesvn.net/latest/win32/
>>
>> Caveat: The svn.exe there cannot be run without libapr_tsvn.dll etc. dlls. I
>> used 7-zip archiver to extract them from the *.msi file.
>>
>>
>> 2. My steps:
>>
>>> svn checkout http://tortoisesvn.tigris.org/svn/tortoisesvn/branches/1.6.x/doc branch_doc --username guest
>>
>> When asked for guest's password, press Enter, - the password is empty.
>>
>> Note: the size of the working copy is 72 Mb
>> Actually, you can checkout only /doc/source, as only that will be used.
>>
>>> I created a backup copy of that wc
>>
>>> svn merge http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/doc branch_doc/source
>>
>> That is, erroneous merge: merging trunk's \doc into branch's \doc\source
>>
>> The merge completes with the following prompt:
>>
>> Conflict for property 'svn:ignore' discovered on 'branch_doc/source'.
>> Select: (p) postpone,
>>        (mf) mine-full, (tf) theirs-full,
>>        (s) show all options: p
>>
>> I pressed "p" to postpone
>>
>> Then, the following is printed:
>>
>>   C branch_doc\source\Subversionbook.bat
>>   C branch_doc\source\tools
>>   C branch_doc\source\TortoiseHelp.bat
>>   C branch_doc\source\english
>>  C   branch_doc\source
>> Summary of conflicts:
>>  Property conflicts: 1
>>  Tree conflicts: 5
>>
>> I understand, that the 5th tree conflict is somewhere in the lines before
>> the property conflict prompt?
>>
>>> svn status branch_doc
>>
>> Actual result:
>>  C      branch_doc\source
>> A  +    branch_doc\source\test
>> A  +    branch_doc\source\test\subwcrev1.txt
>> and 300 more lines with 'A +' files
>>
>> Expected:
>> I was expecting to see indications of the tree conflicts.
>>
>> Could it be that they were resolved automatically during the merge,
>> that is that the merge summary information is misleading?
>>
>> I tried
>>> svn status -v branch_doc
>> but that also does not display tree conflicts.
>>
>>> svn revert -R branch_doc
>>
>> Reverted 'branch_doc\source'
>> Reverted 'branch_doc\source\test'
>> Reverted 'branch_doc\source\Aspell'
>> Reverted 'branch_doc\source\doc.build.include'
>> Reverted 'branch_doc\source\xml2po-modes'
>> Reverted 'branch_doc\source\doc.build.user.tmpl'
>> Reverted 'branch_doc\source\backup-TortoiseSVN.net.bat'
>> Reverted 'branch_doc\source\MailingListAnswers.txt'
>> Reverted 'branch_doc\source\templates'
>> Reverted 'branch_doc\source\logo'
>> Reverted 'branch_doc\source\source'
>> Reverted 'branch_doc\source\UploadDocs.bat'
>> Reverted 'branch_doc\source\doc.build'
>> Reverted 'branch_doc\source\issuetrackers.txt'
>> Reverted 'branch_doc\source\xsl'
>> Reverted 'branch_doc\source\xml2po.py'
>> Reverted 'branch_doc\source\AutolistDoc.txt'
>> Reverted 'branch_doc\source\API'
>> Reverted 'branch_doc\source\readme.txt'
>> Reverted 'branch_doc\source\build-zh_CN.txt'
>> Reverted 'branch_doc\source\po'
>> Reverted 'branch_doc\source\Screenshots.txt'
>> Reverted 'branch_doc\source\Subversionbook.bat'
>> Reverted 'branch_doc\source\tools'
>> Reverted 'branch_doc\source\TortoiseHelp.bat'
>> Reverted 'branch_doc\source\english'
>> Reverted 'branch_doc\source\images'
>>
>>> svn status branch_doc
>> Produces empty output. That is OK.
>>
>> The question:
>> The files
>> \doc\source\.svn\entries
>> in the wc and in its backup copy do differ in size (1253 bytes in wc,
>> 1242 bytes in its backup copy).
>> Is this difference expected?
>>
>> The rest of the files in subdirectories are the same.
>> (Not counting those files and subdirectories that do not belong to the wc
>> and that were left there after reverting their addition)
>
> What happens if you do svn st --no-ignore?
>

Oh, with 'svn st --no-ignore' I see the conflicts (in the merged wc).

I also found that 'svn st -u' shows them.

Also, I found that if I run
> svn propdel svn:ignore .
svn status starts working!

The reverted wc is OK: no conflicts there.

> I think what happens is this:
> doc/source has the property svn:ignore=*
> The incorrect merge then tries to merge a load of stuff from doc/
> which of course does not exist, so is marked as missing with tree
> conflict. However, since everything in source is ignored, these
> conflicts are hidden. I would expect a conflict status to override an
> ignore and show up anyway.
>

I agree with this explanation.

So, it is bug in svn status, triggered by svn:ignore=*

It does not seem to be fatal, as no data are lost.

Best regards,
Konstantin Kolinko

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=1358151

To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-03-19 22:46:14 CET

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.