On Jun 7, 2011, at 12:56 , Bert Huijben wrote: >>> >>> On Jun 7, 2011, at 2:02 , Bert Huijben wrote: >>> >>> [...] >>> >>>>>> Author: sbutler >>>>>> Date: Mon Jun 6 23:27:06 2011 >>>>>> New Revision: 1132834 >>>>>> >>>>>> URL: http://svn.apache.org/viewvc?rev=1132834&view=rev >>>>>> Log: >>>>>> Fix the move command for issue 3899 (auto resolve for wc-wc >>>>>> copies/moves).
[...] >>>>> >>>>> This breaks case only renames on case insensitive filesystems and > makes >> svn >>>>> move *much* *much* *much* slower, by making a copy of everything >> from >>>>> what used to be a simple administrative change. >>>> (and a rename) >>>> >>>>> >>>>> I think you need to find a better way to fix this very specific issue. >>>> >>>> Can you please revert this change until we have a better fix, to fix > the >> renaming issue? >>> >>> I reverted that revision except for the test changes (now XFAIL). >>> >>> I'll try again with a quick hack in the spirit of r106132. >> >> Hmmm, it's not so easy. The problem is in libsvn_client, but there's no >> libsvn_wc API to fix it, except for svn_wc_copy3(). > > I think I added the necessary plumbing in r1132919, r1132924 and r1132948. > >> If svn_wc_copy3() is such a dog in the local-copy case, then maybe we >> should rewrite it to take advantage of WC-NG. Any takers? > > It already uses wc-ng (but can certainly be optimized further) > > The problem with your version of the code was that it changed the value of > the metadata_only argument from TRUE to FALSE. > > So instead of just changing wc_db and performing a single > svn_io_file_rename() on the move target all the actual files were copied. > (And then the originals deleted) > > So instead of doing a single io-operation, we were reading and writing all > the on-disk data. I agree, your solution is much better. > >> Anyway, most of the issue has been resolved already. There's just the >> minor matter of useless conflict marker files sometimes being moved >> along with the intended items. > > I think I fixed that part in those patches. That just leaves the question: > Which file should we leave after the copy? > > I'm +0.5 on leaving the WORKING file, instead of replacing it with MINE. > > This should match the 'svn copy behavior', maybe follow how we did it in > <=1.6 and above all make sense. > > So I leave it to you to make a sensible decision here ;-) > > Bert The 1.6 behavior is inconsistent. - Most conflicts are copied as-is. I think consensus is that that's a bad idea. - Some are are copied, but leave behind the marker file explaining the conflict (e.g., copying a single prop-conflicted file). - Some are resolved, but have conflict-markers in text (e.g., copying a single text-conflicted file). - Some aren't copied at all (e.g., "local missing" merge conflicts). That's OK. For 1.7, I'd like to have a rule that we can explain in a single sentence: "Copying conflicted items implies 'svn resolve --depth infinite --accept mine-full' at the destination path." Steve -- Stephen Butler | Senior Consultant elego Software Solutions GmbH Gustav-Meyer-Allee 25 | 13355 Berlin | Germany tel: +49 30 2345 8696 | mobile: +49 163 25 45 015 fax: +49 30 2345 8695 | http://www.elegosoft.com Geschäftsführer: Olaf Wagner | Sitz der Gesellschaft: Berlin Amtsgericht Charlottenburg HRB 77719 | USt-IdNr: DE163214194