On Sat, 2011-02-19, Noorul Islam K M wrote:
> I think it is this way
> 
> If specified target ('/tmp/iota' in the example above) is a ...
>   nothing -> fine
>   file    -> if 'force' then overwrite else error
>   symlink -> if 'force' then overwrite else error
>   special -> if 'force' then overwrite else error
>   dir     -> if sub-target ('/tmp/iota/iota') is a ...
>     nothing -> fine
>     file    -> if 'force' then overwrite else error
>     symlink -> if 'force' then overwrite else error
>     special -> if 'force' then overwrite else error
>     dir     -> error cannot force

(That's all when the source is a file; a dir is handled differently.)

OK, that looks good.  I agree that that would be a good behaviour to
implement.

I see that svn_client_export5() handles the URL case and the WC case in
completely different ways.  A URL source is handled with an "editor",
whereas a WC source is handled by calling copy_versioned_files() which
tries to do the everything including the source tree-walking by itself.

I studied the implementation of copy_one_versioned_file() and
copy_versioned_files(), and I added doc strings to them in r1074526.
copy_versioned_files() is a mess: there are lots of things wrong with
it, so I can't believe it works properly.

Does this "overwrite else error" behaviour work the same for exporting
from a URL as exporting from a local WC?  Please could you check whether
that's already being tested, and extend your test if not.

- Julian


Reply via email to