Re: Can't checkout svn:externals URL using Peg revision
Tim, thanks - yes, I was thinking I needed the Peg to prevent against
renames.
But you don't think pegs are supported for externals? That's
surprising. I did try specifying both the peg and operative revision in
my property value ("-r20 svn://server/repos/Common@20") and SVN is
still saying it doesn't exist.
Thanks,
Stephen
Tim Hill wrote:
Actually, I think he needs *both* -r and peg-rev, and I can see a
valid reason why you need peg-revs in externals (and, btw, so far as
I can see these are not currently supported).
While you are correct that he needs a -r20 switch in the external to
make sure he always gets the same rev of the file, he also needs a
peg-rev. Otherwise, a rename operation could break the external. For
example, renaming "Common" to "Common2" would break the external,
since "Common" no longer exists in HEAD.
--Tim
On Jan 11, 2007, at 1:00 PM, Ryan Schmidt wrote:
On Jan 11, 2007, at 14:39, Stephen wrote:
I've searched the list archives as best I can and I'm pretty sure
I understand the differences between and how to use Peg and
Operative revisions.
I have a repository at svn://server/repos. That repository has
projects at svn://server/repos/TaggedProject and svn://server/
repos/Common (simplified example). I set svn:externals on
TaggedProject pointing to "-r20 svn://server/repos/Common". Later
I realized that it's probably better to use a Peg revision to
protect against upcoming changes to Common. So I changed the
svn:externals to point to "svn://server/repos/Common@20". Now both
checkout and update on TaggedProject throw an error on the
external, "URL svn://server/repos/Common@20 doesn't exist".
I've tried via Tortoise and the command line. I've also tried svn
list and svn cat on the Peg URL, and both work as expected (they
can find the resource).
I have a feeling I'm not understanding something about SVN... can
anyone enlighten me?
I.... think you were better off with -r20 rather than @20.
I don't think externals support peg revision notation, nor do I see
a reason why they should.
"svn://server/repos/Common@20" means "find the object that was
called svn://server/repos/Common in revision 20 of the repository,
and get its contents from -rHEAD". This is not what you want if
you're trying to protect against upcoming changes to Common.
"-r20 svn://server/repos/Common" means "find the object called
svn://server/repos/Common in the HEAD revision of the repository,
and get its contents from -r20". This is what you want.
--
To reply to the mailing list, please use your mailer's Reply To All
function
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Jan 12 15:45:01 2007
|
|