2009/7/31 Greg Beaver <g...@chiaraquartet.net>:
> KSChan wrote:
>>
>>     >>>
>>     >> No, and what is worse svn does not fail, it simply ignores any
>>     changes
>>     >> in svn:externals.
>>     >>
>>     >> Unless you only ever plan to change docs in a single translation, I
>>     >> don't recommend using the svn:externals modules.  However, for
>>     those
>>     >> people who are exclusively documenting in 1 language, and never
>>     touch
>>     >> the source code they're documenting it is a great system.
>>     >>
>>     >> For everyone else, use a sparse checkout.  I put in a small
>>     amount of
>>     >> effort last week to make phd work, and as long as you aren't
>>     adding in
>>     >> images, it works fine (phd needs a small change to allow it to find
>>     >> images in a sparse checkout, which I have not and will not
>>     investigate
>>     >> since I don't care about images :).
>>     >>
>>     >> Greg
>>     >>
>>     >>
>>     >
>>     > My experience is different. I'm using TortoiseSVN on Windows XP SP3.
>>     >
>>     > I recently made a change to doc-en involving both doc-base and en -
>>     > see http://svn.php.net/viewvc?view=revision&revision=286553
>>     <http://svn.php.net/viewvc?view=revision&revision=286553>
>>     >
>>
>>     Hi,
>>
>>     Great - so that means users of TortoiseSVN don't have this issue.  The
>>     command-line subversion client is the only deficiency if you're using
>>     svn:externals.  Good to know.
>>
>>
>> Hi,
>>
>> I just made a simple test with my repository and native svn-client
>>
>> Subversion 1.4.4
>> native svn-client 1.6.3
>>
>> repository layout:
>>
>>     tmp/test1
>>     tmp/test2
>>     tmp/test3
>>
>>
>> under tmp/test1 , svn:externals
>>
>>     ext-t2 http://localhost/svn/tmp/test2
>>     ext-t3 http://localhost/svn/tmp/test3
>>
>>
>> So, when I make svn co http://localhost/svn/tmp/test1, the whole thing
>> becomes
>>
>>     /test1
>>     /test1/ext-t2
>>     /test1/ext-t3
>>
>>
>> Then I touched 3 files.
>>
>>     /test1/t1
>>     /test1/ext-t2/t2
>>     /test1/ext-t3/t3
>>
>>
>> svn st gives
>>
>>     X       ext-t2
>>     X       ext-t3
>>     ?       t1
>>
>>     Performing status on external item at 'ext-t2'
>>     ?       ext-t2/t2
>>
>>     Performing status on external item at 'ext-t3'
>>     ?       ext-t3/t3
>>
>>
>> after svn add and I perform svn ci -m "test" t1 ext-t2/t2 ext-t3/t3 gives:
>>
>>     Adding         t2
>>     Adding         ext-t2/t2
>>     Adding         ext-t3/t3
>>
>>
>> Commit with no problem and sharing the same commit log. Thus I think
>> svn:externals gives no problem at all (with native svn-client 1.6.x I
>> think)
>
> try:
>
> svn commit -m "doesn't work"
>
> in the top-level directory.  All internal svn:externals are ignored.  If
> you explicitly provide them, it will work.  Having done this for a few
> months, I can say with certainty that 10% or more of the time, one of
> the directories with changes will be forgotten in the commit.  We are,
> after all, human.
>
> Greg
>

Hmm. [1] and [2] (SVN 1.1 and 1.5) both say similar things, but [3]
(TortoiseSVN) specifically mentions the way this is handled.

[1] says "... if you want to commit changes that you've made in one or
more of those external working copies, you must run svn commit
explicitly on those working copies—committing on the primary working
copy will not recurse into any external ones."

[2] says "Perhaps most disappointingly, the working copies created via
the externals definition support are still disconnected from the
primary working copy (on whose versioned directories the svn:externals
property was actually set). And Subversion still truly operates only
on nondisjoint working copies. So, for example, if you want to commit
changes that you've made in one or more of those external working
copies, you must run svn commit explicitly on those working
copies—committing on the primary working copy will not recurse into
any external ones.".

[3] talks about a "main" project and then adding "externals" and goes
on to say "If the external project is in the same repository [as the
main project], any changes you make there there will be included in
the commit list when you commit your main project.".


So, your option (ha ha) is to use TortoiseSVN on Windows! I always
knew I'd get all you unix devs over to the daft side.


Regards,

Richard.

[1] http://svnbook.red-bean.com/en/1.1/svn-book.html#svn-ch-7-sect-3
[2] http://svnbook.red-bean.com/en/1.5/svn.advanced.externals.html
[3] http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-externals.html


-- 
-----
Richard Quadling
Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731
"Standing on the shoulders of some very clever giants!"
ZOPA : http://uk.zopa.com/member/RQuadling

Reply via email to