[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: File externals & feature requests

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Mon, 27 Jul 2009 20:39:44 +0200

On 27.07.2009 20:22, steve wrote:
>> Are you aware of "svn propget svn:externals -R" in the command line
>> client?
>
> To be honest no, I was not aware of this, but given that I had to use
> putty to SSH to one of the secure machine within our network (where
> my repo is at), and had to know the full repo path I can assure you
> that nobody here would go through all the trouble.
>
> Obviously this makes it a bit easier for me, (given Im one of the few
> here that can do shell scripting) but most people here are afraid of
> the command prompt (to say nothing of linux). And i was hoping for
> more of a gui / laymans approach. As om sure im not the only one with
> concerns on how to properly do a tag with a project containing
> externals.
>
> Now given, this is the first step just identifying the externals, I
> suppose I could write a script that parses the 3 pages or so of the
> output from the the "svn propget svn:externals -R" command and
> modifies the properties on each path so that its locked to the most
> current revision, so i can do tags and retain the state of an
> external at that point in time.

three pages of externals?
I think here's your problem: you should seriously consider changing your
layout and think of a better solution. Subversion is not VSS where you
could do such dangerous things.
Really, externals should be *really* external. If you have that many
file externals, then you have not done a good job with capsuling your
objects.
Try creating a library for your many many files that are used in other
projects and then include that library folder with an external.

> But then again i still need to write and test the script which would
> essentially need to parse the info, change the properties to a
> specified (fixed) revision, do commit, then do a tag, then revert all
> the info back retaining only the tag with the locked externals. On
> top of this - I'd need to distribute it to others here, and tell
> others how to use it all on top of my other work. I guess I was
> hoping for more of a gui fix rather than this type of hack, as it
> doesn't really help anyone else in a similar situation, and just
> seems a bit much for something I think should be included in the tsvn
> tool, but who knows perhaps we could have an intern do this. But than
> again it wouldn't do anything to strengthen the tool, or provide this
> functionality to the rest of the tsvn community.

You forgot in your script the first important steps:
* update all externals
* run the build script again
* run the test script again
* tag the externals
* ...

because if you don't update, run and test everything before tagging the
externals to the HEAD revision, the user might not have not have built
and tested with the latest HEAD revision of those external files.
Oh, and make sure that while your script runs, nobody else does a commit
to those files - because you'd be screwed if that happens.

Seriously: if you use externals, either point them to a tag or use the
'-r XXX' param in the external property.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=2376098
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-07-27 20:40:08 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.