RE: svn commit: r1095130 - in /subversion/trunk/subversion: libsvn_client/client.h libsvn_client/externals.c libsvn_client/switch.c libsvn_client/update.c libsvn_wc/adm_crawler.c tests/cmdline/externals_tests.py
From: Bert Huijben <bert_at_qqmail.nl>
Date: Wed, 20 Apr 2011 21:24:42 +0200
> -----Original Message-----
For the crawling and the update process we look at the op_depth 0 (also known as BASE) tree. This extension (since 1.7.0) explicitly adds support for externals on nodes that are not yet committed to the repository. These newly added nodes are never touched by the update processor (unless they cause a tree conflict).
Another topic we discussed is that the update processor explicitly handles *the changes* in svn:externals properties.
The update processing of svn:externals doesn't just take the last set of properties. Instead it takes the old and the new definitions of the svn:externals and then performs a diff on them.
* Externals that are removed are then removed from the working copy. (After verifying that they were from the right location)
One problem with externals on added nodes is that we can only look at the last definition of the externals.
For non-file externals its usually easy to fix these problems yourself (Something wrong: just delete it and it will get fixed on the next update). But for file externals you will have to hack the database or call libsvn_wc yourself.
So applying these uncommitted svn:externals by default opens new options to shoot yourself in the foot and break your wc. (When used with precaution and without file externals it is certainly useful. But we can't tell the user that when they are just prop-editing their property. )
I was busy writing another mail on possible solutions:
But when we go that far, we should also look at more viewspec options.
Bert
|
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.