On 13.02.2010 10:29, Stefan Fuhrmann wrote:
> Hi Stefan,
>
> here my findings:
>
>> Functional Details
>> ------------------
>>
>> The branch/tag dialog will show an option to tag the
>> external properties. This requieres the working copy
>> to be scanned for svn:external properties. This scan
>> is done in a background thread like the status thread
>> which is used now to find the working copy revision.
>>
>> Once the thread is finished, the option controls get
>> enabled if there are svn:external properties found
>> in the working copy.
> The w/c crawl should also check for modifications, mixed
> revision w/cs, and sparse w/cs (not sure how to do the
> latter efficiently). It should warn the user in either case.
We already do that in the branch/tag dialog.
But since we now have to crawl the working copy to find the externals,
we can do this in the same crawl instead of doing it twice.
>> There are two possible work flows:
>>
>> (1) Modify the external properties in the working copy,
>> then create the branch/tag from the working copy.
>> (2) branch/tag from a revision or HEAD in the repository,
>> then change the svn:external properties in the
>> repository, causing a new revision for each changed
>> property.
> I would allow both workflows, depending on the path
> we operate on (w/c or URL).
Sure, both will be allowed. I didn't mean this to mean 'either/or' but
both with the user choosing which one to use.
> For case (2), it would be helpful to specify a depth
> (root, children, infinite). Otherwise, it may take a very
> long time to finish. In fact, it might be helpful to c/o
> into a temporary working copy.
You mean this should also be done in the repo browser? I don't think
that's a good idea:
* would take way too long
* would put a lot of stress on the server
I like to limit this to the branch/tag dialog which is always started
from a working copy.
> Also, the externals revision found in the w/c should
> be the revision that external gets fixed to.
Good idea!
>> Possible Development Stages
>> ---------------------------
>>
>> (1) Implement a svn:external parser which is able
>> to detect whether an external points to HEAD
>> or is already fixed. And allow modifying
>> the property to set a fixed revision.
> I used svn_wc_parse_externals_description3() to parse the
> externals definitions (see RepositoryLister.cpp).
I know :)
Not sure if I can use the same though, since we don't have to just parse
the externals but also have to modify them.
I'm still working out some details on how to handle the externals and
the modifications. As soon as I have everything worked out, I'll start
coding...
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=2447242
To unsubscribe from this discussion, e-mail: [dev-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-02-13 10:40:00 CET