FW: Possible bug moving file and then deleting directory

2011-06-23 Thread Patrick Quirk
You're right, I apologize.  I tried again and the directory is still marked as 
out of date but a tree conflict does not occur after updating.  I must have ran 
the update in my head...

Thanks for taking the time to confirm this!


From: Bert Huijben [mailto:b...@qqmail.nl] 
Sent: Thursday, June 23, 2011 10:32 AM
To: Patrick Quirk; 'Johan Corveleyn'; 'Mark Phippard'
Cc: users@subversion.apache.org
Subject: RE: Possible bug moving file and then deleting directory

    Patrick,

I can't reproduce the tree conflict in either of those cases using the 
combination of a trunk client and repository. (I can reproduce it with 1.6)
Can you please verify if you really used the right binaries for your test?

I can reproduce it up to the out of date error:
svn.exe ci -m "" svn-test-work\working_copies\tree_conflict_tests-24
Deleting   svn-test-work\working_copies\tree_conflict_tests-24\A\B
svn: E155011: Commit failed (details follow):
svn: E155011: Directory 
'R:\Svn-2010\tests\subversion\tests\cmdline\svn-test-work\working_copies\tree_conflict_tests-24\A\B'
 is out of date
svn: E160028: Directory '/A/B' is out of date

But an update after that doesn't raise a tree conflict for me.

The test script I wrote is:
def update_dir_with_not_present(sbox):
  "lock status update shouldn't flag tree conflict"

  sbox.build()
  wc_dir = sbox.wc_dir

  newtxt = sbox.ospath('A/B/new.txt')

  main.file_write(newtxt, 'new.txt')
  sbox.simple_add('A/B/new.txt')
  sbox.simple_commit()

  sbox.simple_move('A/B/new.txt', 'A/C/newer.txt')
  sbox.simple_commit()
  sbox.simple_rm('A/B')

  # We can't commit this without updating (ra_svn produces its own error)
  run_and_verify_svn(None, None, "svn: E(155011|160028): Dir.*B.*out of date",
 'ci', '-m', '', wc_dir)

  # So we run update
  run_and_verify_svn(None, None, [],
 'up', wc_dir)

  # And now we can commit
  run_and_verify_svn(None, None, [],
         'ci', '-m', '', wc_dir)
(It is actually part of 
http://svn.apache.org/repos/asf/subversion/trunk/subversion/tests/cmdline/tree_conflict_tests.py
 now)

    Bert

From: Patrick Quirk [mailto:p.qu...@smt.com] 
Sent: donderdag 23 juni 2011 15:08
To: Johan Corveleyn; Mark Phippard
Cc: users@subversion.apache.org
Subject: RE: Possible bug moving file and then deleting directory

Using the Collabnet binaries rolled from r1136035 I see the same behavior using 
the script from my original email.

It does sound pretty similar to 3526, though my repro script is a bit 
different.  However I created a script to reproduce issue 3526 and that also 
fails for me.  To summarize, both of these sets of steps have the same outcome:

Issue 3526:
1.) Add a file in a directory, commit
2.) Delete that directory, commit fails saying the directory is not up to date
3.) Update -> tree conflict

My initial email:
1.) Add a file in a directory, commit
2.) Move that file to another directory, commit
3.) Delete the first directory, commit fails saying the directory is not up to 
date
4.) Update -> tree conflict

Regarding Mark's pointer to the FAQ, I realize the tree conflicts are expected 
behavior in a sense, but I feel like the steps before that should work 
regardless.  Especially since I'm committing at a level above the directory in 
question that does have operations done on it to advance the current revision 
number.  I doubt anyone would know that an update is required in the middle of 
these steps.

I've attached the script I used to reproduce 3526, maybe someone could review 
it and make sure I'm matching what the issue is describing, and confirm that it 
does/doesn't work for them either?  It's a windows batch file (zipped and 
renamed).


From: Johan Corveleyn [mailto:jcor...@gmail.com] 
Sent: Wednesday, June 22, 2011 7:03 PM
To: Mark Phippard
Cc: Patrick Quirk; users@subversion.apache.org
Subject: Re: Possible bug moving file and then deleting directory

It seems this behavior has changed in 1.7 (to be released soon). It will no 
longer flag this as a tree conflict. See 
http://subversion.tigris.org/issues/show_bug.cgi?id=3526.

AFAICS, the case described here is similar to the one described in issue #3526.

Patrick, if you have some time, maybe you can test this with one of the 
pre-releases of 1.7? See http://subversion.apache.org/packages.html#pre-release.

Cheers,
-- 
Johan
On Wed, Jun 22, 2011 at 10:44 PM, Mark Phippard  wrote:
See http://subversion.apache.org/faq.html#self-tree-conflict

On Wed, Jun 22, 2011 at 4:04 PM, Patrick Quirk  wrote:
I've run into this issue the past few days and I don't feel like this is 
expec

Assertion Failed: workqueue.c

2011-10-12 Thread Patrick Quirk
I upgraded to 1.7 yesterday when the new version of Tortoise came out, and used 
it with no issues last evening and today until I encountered this assertion:

In file
'D:\Development\SVN\Releases\TortoiseSVN-1.7.0\ext\subversion\subversion\libsvn_wc\workqueue.c'
line 672: assertion failed (checksum != NULL)

Now any time I attempt anything (cleanup, update, commit, etc) in that WC I 
always get this assertion (using Tortoise or the command line).  I got it first 
while running an update on my working copy after resolving a conflict (resolved 
using 'theirs').  This issues seems similar to this thread:

http://svn.haxx.se/dev/archive-2011-09/0079.shtml

...but there didn't seem to be a resolution there.  Here's the action log from 
Tortoise; hopefully that can provide some more details.  The first update was 
done on C:\Dev\GEM\Dom\Domains\Football and it finished after resolving the 
conflict.  The second update was done on C:\Dev, and it asserted, as you can 
see.


10/12/2011 - 2:25:49 PM
Command  : Commit
Modified : C:\Dev\GEM\Dom\Domains\Football\GEMDomainFootball.csproj
Error: Commit failed (details follow):
Error: File or directory 'GEMDomainFootball.csproj' is out of 
date; try updating
Error: resource out of date; try updating
Completed!   :

10/12/2011 - 2:26:02 PM
Command  : Update
Updating : C:\Dev\GEM\Dom\Domains\Football
Conflicted   : C:\Dev\GEM\Dom\Domains\Football\GEMDomainFootball.csproj
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Top\Classes\FootballUtil.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Top\Classes\FootballPktProc.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\GSIS\Boxes\gbGSISFootballFeedHandler.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\GSIS\Controls\ctlNFLView.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\GSIS\Classes\GSISPktProc.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\STATS\Boxes\gbSTATSFootballFeedHandler.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\STATS\Boxes\gbSTATSFootballHandler.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Football\Models\STATS\Classes\STATSPktProc.cs
Completed: At revision: 18993
Warning! : One or more files are in a conflicted state.

10/12/2011 - 2:28:49 PM
Command  : Update
Updating : C:\Dev
Updated  : 
C:\Dev\GEM\Dom\Domains\Hockey\Models\HockeyData\Boxes\gbHockeyUtopiaFeedHandler.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Hockey\Models\HockeyData\Classes\HockeyTeam.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Racing\Models\RacingUser\Boxes\gbPitClockPosition.cs
Updated  : 
C:\Dev\GEM\Dom\Domains\Racing\Models\RacingUser\Classes\fdRacingPitClocksMovable.cs
Updated  : C:\Dev\GEM\Blocks\GEMRenderGL\GEMRenderGL.csproj
Added: 
C:\Dev\GEM\Blocks\GEMRenderGL\Classes\gemGLRenderingContext.cs
Updated  : C:\Dev\GEM\Blocks\GEMRender\GEMRender.csproj
Added: 
C:\Dev\GEM\Blocks\GEMRender\Classes\gemRenderingContext.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Controls\ctlProjectExplorer.Designer.cs
Updated  : C:\Dev\GEM\Apps\GEMStudio\Controls\ctlProjectExplorer.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\CopyBehavior\CopyDirectoryBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\CopyBehavior\CopyImageSequenceBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\CopyBehavior\CopyBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\CopyBehavior\CopyFileBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\CopyBehavior\CopyNoneBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\ProjectExplorer.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\ProjectExplorerNode.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\ChildrenBehavior\LoadHotFilesBehavior.cs
Updated  : 
C:\Dev\GEM\Apps\GEMStudio\Classes\ProjectExplorerTool\Util\CutCopyPasteHandler.cs
Updated  : C:\Dev\Racing\VS.IRL\VS.IRL.csproj
Added: 
C:\Dev\Racing\VS.IRL\Classes\fdRacingPitClocksMovableIRL.cs
Updated  : C:\Dev\Studio\SMT.DMX\Controls\ctlBoxScore.resx
Updated  : C:\Dev\Studio\SMT.DMX\Controls\ctlBoxScore.Designer.cs
Updated  : C:\Dev\Studio\SMT.DMX\Controls\ctlBoxScore.cs
Added: C:\Dev\Studio\VS.ALL\Classes\fdStudioGameGridVS.cs
Updated  : C:\Dev\Studio\VS.ALL\Classes\iscStudioWallPilotVS.cs
Added: C:\Dev\X\MONSTER.FMX
Added: C:\Dev\X\MO

RE: Assertion Failed: workqueue.c

2011-10-13 Thread Patrick Quirk
> Is this a working copy that you checked-out with the old 1.6 Tortoise
> and upgraded to 1.7, or is it a working copy that you checked-out with
> 1.7?

This is a 1.6.17 working copy that was upgraded.

> A text-conflict or a tree-conflict?  Do you have any local modifications
> to the working copy?  Adds, deletes, copies etc.?

Text-conflict to a single file.  I had local modifications but resolved the
conflict by using the repository's version of the file (the update was a 
superset of my changes).

> Is the sqlite3 utility readily available on Windows?  If it is then run:
>  sqlite3 .svn/wc.db "select * from work_queue"

Yep, here's the output:
79|(file-install X/MONSTER.FMX/MONSTER.FMX.csproj 1 0 1 1)
80|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.resx 1 0 1 1)
81|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs 1 0 1 1)
82|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.cs 1 0 1 1)

These are files that were new from the repo and were the last to show up 
before the assertion appeared.


RE: Assertion Failed: workqueue.c

2011-10-13 Thread Patrick Quirk
>>> Is the sqlite3 utility readily available on Windows?  If it is then run:
>>>  sqlite3 .svn/wc.db "select * from work_queue"
>>
>> Yep, here's the output:
>> 79|(file-install X/MONSTER.FMX/MONSTER.FMX.csproj 1 0 1 1)
>> 80|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.resx 1 0 1 1)
>> 81|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs 1 0 1 1)
>> 82|(file-install X/MONSTER.FMX/Boxes/gbFMXDisplay.cs 1 0 1 1)
>>
>> These are files that were new from the repo and were the last to show up 
>> before the assertion appeared.
>
> So now we want to see the nodes row for each of those four paths:
>
> sqlite3 .svn/wc.db "select * from nodes where 
> local_relpath='X/MONSTER.FMX/MONSTER.FMX.csproj'"
> sqlite3 .svn/wc.db "select * from nodes where 
> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.resx'"
> sqlite3 .svn/wc.db "select * from nodes where 
> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs'"
> sqlite3 .svn/wc.db "select * from nodes where 
> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.cs'"

I've attached the output since it's a little unreadable in 80 column format.
ÿþ1|X/MONSTER.FMX/MONSTER.FMX.csproj|0|X/MONSTER.FMX|1|House/Dev/X/MONSTER.FMX/MONSTER.FMX.csproj|18993|normal|||file|()||$sha1$a6fb31cbea18a2f670e5d1387b2a1b118f831f09||18987|1318441440356532|btr|||(svn:wc:ra_dav:version-url
 66 
/svn-dev/!svn/ver/18987/House/Dev/X/MONSTER.FMX/MONSTER.FMX.csproj)|

1|X/MONSTER.FMX/MONSTER.FMX.csproj|1|X/MONSTER.FMX||||base-deleted|||file|||||||||||

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.resx|0|X/MONSTER.FMX/Boxes|1|House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.resx|18993|normal|||file|()||$sha1$9addd651cd4260ee52b26cf5eae2d2bfe798aba5||18987|1318441440356532|btr|||(svn:wc:ra_dav:version-url
 71 
/svn-dev/!svn/ver/18987/House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.resx)|

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.resx|1|X/MONSTER.FMX/Boxes||||base-deleted|||file|||||||||||

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs|0|X/MONSTER.FMX/Boxes|1|House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs|18993|normal|||file|()||$sha1$ea6871c7f57dd63e0a74ac0fd19435232322e5ff||18987|1318441440356532|btr|||(svn:wc:ra_dav:version-url
 78 
/svn-dev/!svn/ver/18987/House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs)|

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs|1|X/MONSTER.FMX/Boxes||||base-deleted|||file|||||||||||

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.cs|0|X/MONSTER.FMX/Boxes|1|House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.cs|18993|normal|||file|()||$sha1$041ffe70415ce290a4f14a770d869e2eb3b420e8||18987|1318441440356532|btr|||(svn:wc:ra_dav:version-url
 69 
/svn-dev/!svn/ver/18987/House/Dev/X/MONSTER.FMX/Boxes/gbFMXDisplay.cs)|

1|X/MONSTER.FMX/Boxes/gbFMXDisplay.cs|1|X/MONSTER.FMX/Boxes||||base-deleted|||file|||||||||||



RE: Assertion Failed: workqueue.c

2011-10-13 Thread Patrick Quirk
>>> So now we want to see the nodes row for each of those four paths:
>>>
>>> sqlite3 .svn/wc.db "select * from nodes where 
>>> local_relpath='X/MONSTER.FMX/MONSTER.FMX.csproj'"
>>> sqlite3 .svn/wc.db "select * from nodes where 
>>> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.resx'"
>>> sqlite3 .svn/wc.db "select * from nodes where 
>>> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.Designer.cs'"
>>> sqlite3 .svn/wc.db "select * from nodes where 
>>> local_relpath='X/MONSTER.FMX/Boxes/gbFMXDisplay.cs'"
>>
>> I've attached the output since it's a little unreadable in 80 column format.
>
> Thanks! So each file has an op-depth=0, presence=normal line that has a
> checksum.  Can you verify that each checksum exists in pristine:
>
> sqlite3 .svn/wc.db "select * from pristine where checksum 
> ='$sha1$a6fb31cbea18a2f670e5d1387b2a1b118f831f09'"
> sqlite3 .svn/wc.db "select * from pristine where checksum 
> ='$sha1$9addd651cd4260ee52b26cf5eae2d2bfe798aba5'"
> sqlite3 .svn/wc.db "select * from pristine where checksum 
> ='$sha1$041ffe70415ce290a4f14a770d869e2eb3b420e8'"
> sqlite3 .svn/wc.db "select * from pristine where checksum 
> ='$sha1$ea6871c7f57dd63e0a74ac0fd19435232322e5ff'"

These queries returned no results.

> What I don't yet understand is why each file also has an op-depth=1,
> presence=base-deleted row.  That seems to imply that 'X' is deleted in
> the working copy, so we should see two lines here:
>
> sqlite3 .svn/wc.db "select op_depth, presence from nodes where 
> local_relpath='X'"

This returned:

1|incomplete
0|incomplete

The 'X' folder was not and should not have been deleted or marked for 
deletion in the working copy or in the repository.  The MONSTER.FMX 
folder was added beneath it and was pulled down for the first time
during that update.