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

FW: Possible bug moving file and then deleting directory

From: Patrick Quirk <P.Quirk_at_smt.com>
Date: Thu, 23 Jun 2011 14:49:42 +0000

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:bert_at_qqmail.nl]
Sent: Thursday, June 23, 2011 10:32 AM
To: Patrick Quirk; 'Johan Corveleyn'; 'Mark Phippard'
Cc: users_at_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.Quirk_at_smt.com]
Sent: donderdag 23 juni 2011 15:08
To: Johan Corveleyn; Mark Phippard
Cc: users_at_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:jcorvel_at_gmail.com]
Sent: Wednesday, June 22, 2011 7:03 PM
To: Mark Phippard
Cc: Patrick Quirk; users_at_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 <markphip_at_gmail.com> wrote:
See http://subversion.apache.org/faq.html#self-tree-conflict
On Wed, Jun 22, 2011 at 4:04 PM, Patrick Quirk <P.Quirk_at_smt.com> wrote:
I've run into this issue the past few days and I don't feel like this is expected behavior.  I'm using client version 1.6.17 (Collabnet binaries).
 
Simply put, I move a single file, commit that, then try to delete the directory the file was in (it's empty now) and commit that.  This fails, saying the directory I'm attempting to commit/delete is out of date.  If I update it, I get a tree conflict.  
 
Am I wrong in expecting this to work without an update in the middle?  I've provided a batch file to reproduce the behavior on a Windows machine (unzip and then change the file's extension to .bat).
 
Thanks
Patrick
 
 
 
Patrick Quirk
GEM Software Engineer
3511 University Drive
Durham NC 27707
919-354-4762
p.quirk_at_smt.com
www.sportsmedia.com 
 
-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
Received on 2011-06-23 16:49:49 CEST

This is an archived mail posted to the Subversion Users mailing list.