[crossfire] Use of svn:externals in client code on SVN

Mark Wedel mwedel at sonic.net
Tue Nov 5 00:00:07 CST 2013


On 11/ 4/13 04:41 PM, Kevin Zheng wrote:
> Hi there,
>
> Crossfire currently uses svn:externals to sync protocol definition
> headers between the server and GTKv2 client. While this has its merits,
> overall I believe it is confusing, cumbersome, and harmful.
>
>  From the SVN Book [1]: "An externals definition is a mapping of a local
> directory to the URL—and ideally a particular revision—of a versioned
> directory. In Subversion, you declare externals definitions in groups
> using the svn:externals property."
>
> My guess is that the original intention of using them was to ensure that
> the client protocol headers would always remain in sync with those in
> the server. However, here are some issues:
>
>   - The svn:externals property must still be modified manually
>   - Copy/paste/merge is faster, less confusing, and works outside of SVN
>   - Client sources locked to server, JXClient proves unnecessary
>
> Further, there are several disadvantages to using them as well:
>
>   - It only works with SVN - hinders future migration (if ever)
>   - Confusing for people not familiar with SVN
>   - Slow, try running `svn up` from the root and wait
>   - Breaks `git svn`, which pacifies the impatient Git users
>
> I propose that we go back to manually tracking the protocol headers
> between the client and server. They are not updated that often, anyways,
> and still need updating with the use of svn:externals. We can continue
> using svn:externals in /latest, etc.
>
> [1] http://svnbook.red-bean.com/en/1.7/svn.advanced.externals.html

  That is fine by me.  And before the externals was set up, my method of sync 
wast just a cp from one directory to the other.



More information about the crossfire mailing list