I posted the following query on the Subversion newsgroup several weeks
back and didn't receive any responses. Since people in this group
obviously use Subversion I was wondering how people handle the
situation that I describe below. Thanks in advance for any input,
sorry about the length and being somewhat off topic for this
particular group.
KJ
==========
Unless I'm completly missing something, currently with Subversion if
project #1 references project #2 via svn_external with no specific
revision number request there is no way to get everything from a
specific revision of #1 without getting later changes from project #2
that weren't really in the build that occurred when project #1 was
built and the repository was at that level. This would seem to be
kind of a big hole in Subversion or a big hole in my understanding of
how to use it.
To explain further, typically I'll create several designs that are
re-
usable across several different end designs and put them in the
repository (I'll them them Widget_1, Widget_2, etc.). Now a new
design comes along and I'll want to use the various widgets that I
need for this particular project. So project 'New_Gizmo' will be
added to the repository and it will reference usage of 'Widget_1' and
'Widget_2' via svn_external. Now I understand that 'New_Gizmo' could
reference a specific repository revision so as to insure that I
always
get that particular revision of the code...but since I want to catch
enhancements and possible bug fixes during development of 'New_Gizmo'
that were not caught earlier in developing the widgets so I leave the
revision level blank so it will default to the head revision.
Now New_Gizmo gets released and I'm at some specific repo number,
let's just say the repo is at level 5. Life goes on and I start work
on yet another new design 'Another_Gizmo' that again requires use of
the widgets, and let's say requires some enhancements to 'Widget_1'.
All of that gets incorporated and 'Another_Gizmo' and 'Widget_1' gets
released and tagged and we're up to say level 10 in the repo.
Next a problem comes up with 'New_Gizmo' and I want to get the code
that was released for 'New_Gizmo'. I have yet to find a way to get
from the repository the 'Widget_1' stuff that existed at revision 5,
instead I always will get the newer updated level 10 stuff. This
appears to be because the svn_external link did not define the
specific revision requested, but my point is that when I specifically
requested 'New_Gizmo' at revision 5 that requested revision was not
returned which seems to make svn_external basically useless from the
perspective of
- Being able to correctly return the correct revision used at the
time
that the repo was at that specific level
- Being able to really re-use designs (i.e. not copy/paste/create a
new thing that starts out as a direct copy).
It doesn't matter if all of this is occurring in the same repository
or if the link is to another external repository. It would seem that
a more useful branch/tag mechanism would be for Subversion, when it
is
doing the branch/tag operation, to plop in the specific revisions
that
is the 'head' revision and replace change any svn_external references
that don't specify a specific revision to be the revision that exists
at that time. That way, tagged branches would then exactly reference
the specific revision of anything whether it is in the same
repository
or some other repository.
If there is some way of using Subversion differently to accomplish
the
goals that I've described above, feel free to let me know. As it is,
one needs to peruse the checkout log and manually determine which
things changed after the release...or simply Zip the sources up and
maintain that as another archive of what 'really' was there when the
repo was at the level used in the release.
Any other suggestions on how people archive re-usable designs and
still maintain the ability to get at the correct source while using
links of some sort to the re-usable portions would also be
appreciated.
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=1232819
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2009-02-26 16:48:05 CET