subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jörg Rebenstorf <joerg.rebenst...@gin.de>
Subject subversion issue 2516
Date Wed, 26 Aug 2015 11:09:27 GMT
I have a suggestion for a solution of issue 2516 of the subversion issue
tracker. Please comment on this and forward my suggestion to issue 2516
of the issue tracker database if feasible.

I suggest we shall have a new access method to solve this usability
problem, something that does not need existing svn repositories to be
changed and something that is not incompatible with existing svn
behavior.

The new access option should update the working copy of the primary
target "PATH..." and its externals to a certain inter-repository
consistent state, that is, to update the primary target and all of its
externals content to their appropriate version at a certain point in
time.
The new access method shall be an additional command-line option, for
example "--sync-externals", for the svn client tool's update command
like:

svn update -r212 --sync-externals [PATH...]
or
svn update -r{2015-08-26} --sync-externals [PATH...]

What this new option shall do is, that if an externals definition, that
is involved in the update procedure as-is, does not specify a revision
(or date) information then it shall use the corresponding revision
number (or date) for updating the external so that the external
repository matches the revision of the primary target in time, that is,
the user will update the working copy to that specific state of the
content what the involved repositories had stored at that point in time
(i.e. their former HEAD revision of the past). This should work for
linking via svn:externals inside the same repository as well as for
externals to other repositories.

I believe many users already have linked via svn:externals without a
given revision number for that link definition. So currently these
definitions can only be used to update to the *current* HEAD of these
externals (as defined). But I believe many also want to use this setup
to update via the externals to the HEAD of these linked repositories as
they were at that certain point in time in the past, when updating the
working copy of the repository, that includes the externals definitions,
to a specific revision.

So when an svn:externals definition states a specific revision number to
use, than this specified revision number shall still be used no matter
if --sync-externals is used or not, but else the new option should make
a difference.

I think my solution is better than the "-rPARENT" enhancement (suggested
by Karl Fogel) and similar solutions because needing to specify
something like "-rPARENT" in the externals definition implies to change
existing repositories backward in time to use that feature for existing
ones as these definitions are part of the repository in our situation.

Best regards,
Jörg Rebenstorf


Mime
View raw message