[Tim]
I used tags for ZODB until I gave in to complaints about that, and switched to using revision numbers. The real complaint about using a tagged external is that when the tag changes, SVN isn't smart enough to do an incremental update. Instead, when you update after an external tag changes:
[Andreas]
What do you mean with "when the tag changes"?
Not what I said: I said "[when] an /external/ tag" changes". I mean when you change an external tag _in_ project A _referencing_ the external tagged project B. Here A=Zope and B=ZODB, and the external tags in question are the ones referencing ZODB from within the svn:externals properties of various Zope directories.
A tag IMO should *never* change.
The revision number associated with a tag within project B indeed shouldn't change. That's not what I'm talking about. I'm talking about how other projects reference project B: they have a choice of: 1. making their own copy of B 2. using svn:externals with a tag for B 3. using svn:externals with a revision number for B Read my msg again with that in mind, and it will make much more sense to you. I was describing the complaints about using choice #2. Zope Corp has tried all of those at various times. They all have different drawbacks, but the only one I found horribly unusable was #1 (because then N different projects have copies of B, and changes to copies of B's code get made from N different projects, and nobody bothers to merge those changes back into B itself -- people changing a copy of B from a different project often don't even _know_ they're changing "conceptually external" code; in effect, without absurd effort on the part of B's maintainer(s), the world ends up with B plus N forks of B).
...
--On 15. Juli 2006 15:55:42 -0400 Tim Peters <tim.peters@gmail.com> wrote:
[Tim]
I used tags for ZODB until I gave in to complaints about that, and switched to using revision numbers. The real complaint about using a tagged external is that when the tag changes, SVN isn't smart enough to do an incremental update. Instead, when you update after an external tag changes:
[Andreas]
What do you mean with "when the tag changes"?
Not what I said: I said "[when] an /external/ tag" changes". I mean when you change an external tag _in_ project A _referencing_ the external tagged project B. Here A=Zope and B=ZODB, and the external tags in question are the ones referencing ZODB from within the svn:externals properties of various Zope directories.
I am still not completely sure about the problem. Yesterday I created a tag for for ZODB 3.6.2 as ../ZODB/tags/3.6.2 and I updated the svn:externals for the ZODB on the Zope 2.9 branch to this new tag. When releasing 2.9.4 2.9.4 will be tagged as Zope/tags/2.9.4....so what will be the problem... both tags should never be touched...am I missing a particular usecase? Andreas
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andreas Jung wrote:
--On 15. Juli 2006 15:55:42 -0400 Tim Peters <tim.peters@gmail.com> wrote:
[Tim]
I used tags for ZODB until I gave in to complaints about that, and switched to using revision numbers. The real complaint about using a tagged external is that when the tag changes, SVN isn't smart enough to do an incremental update. Instead, when you update after an external tag changes:
[Andreas]
What do you mean with "when the tag changes"?
Not what I said: I said "[when] an /external/ tag" changes". I mean when you change an external tag _in_ project A _referencing_ the external tagged project B. Here A=Zope and B=ZODB, and the external tags in question are the ones referencing ZODB from within the svn:externals properties of various Zope directories.
I am still not completely sure about the problem. Yesterday I created a tag for for ZODB 3.6.2 as ../ZODB/tags/3.6.2 and I updated the svn:externals for the ZODB on the Zope 2.9 branch to this new tag. When releasing 2.9.4 2.9.4 will be tagged as Zope/tags/2.9.4....so what will be the problem... both tags should never be touched...am I missing a particular usecase?
Tim is talking about the effect on an existing sandbox when the developer (or somebody else) changes the 'svn:external'. He alleges (I have no reason to doubt him, but haven't observed it myself) that changing from one tag to another (e.g., from $ZSVN/ZODB/tags/3.6.3 to $ZSVN/ZODB/tags/3.6.4) is more disruptive to those sandboxes than shifting the revision number, but keeping the branch the same. I think for *development* purposes that we can afford to leave the externals pointing at branch+revision; however, for making releases, I think we need to manage the external dependencies such that we trigger at least the internal "checkpoint" release of externals. I *really* wish that there SVN supported something like 'svn ln -r 12345 $ZSVN/foobar/branches/3.5 $ZSVN/foobar/tags/3.5.6' (such that the "link" that got created was equivalent to "branch + revision". Tres. - -- =================================================================== Tres Seaver +1 202-558-7113 tseaver@palladion.com Palladion Software "Excellence by Design" http://palladion.com -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFEukSe+gerLs4ltQ4RAtrkAKC9DAN2QAi7kLaroVjv7rq+D/tqRACgszEK j6WOf3YGAeYo8F4/nNCQHbw= =lzTZ -----END PGP SIGNATURE-----
participants (3)
-
Andreas Jung -
Tim Peters -
Tres Seaver