git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Shoemaker <c.shoemaker@cox.net>
To: Andy Parkins <andyparkins@gmail.com>
Cc: git@vger.kernel.org, "Shawn O. Pearce" <spearce@spearce.org>
Subject: Re: svn:externals using git submodules
Date: Tue, 1 May 2007 15:17:03 -0400	[thread overview]
Message-ID: <20070501191703.GA25287@pe.Belkin> (raw)
In-Reply-To: <200705011936.14345.andyparkins@gmail.com>

On Tue, May 01, 2007 at 07:36:11PM +0100, Andy Parkins wrote:
> On Tuesday 2007, May 01, Chris Shoemaker wrote:
> 
> > > Actually that is an interesting point that Chris makes.  Isn't the
> > > svn:externals property revision controlled on the parent directory?
> > > So each change to it is actually recorded in the revision history
> > > of the parent project.
> >
> > Yes and yes.
> 
> Yes and no.  Think of svn:externals as a file in the parent repository; 
> it contains
> 
>  directory-name URL
> 
> Now, changes to that file _are_ tracked, in that if I changed the URL 
> that change would be recorded in the parent repository.  However, 
> nowhere is the revision of the external recorded.  Subversion always 
> fetches the latest revision at that URL.

That's only true when the revision is not specified in the external.
The repo you track may not do that, but it's not uncommon to do so.
And, as I think you're pointing out, it's the only way to get any sort
of reliable information about the relationship between the parent and
the external.

I think it would probably be undesirable for git-svn to attempt to
convert "floating" externals into well-versioned submodules, since
they're not even well-versioned in the svn repo.  However, handling
the "locked-down" externals is quite another thing.

> 
> > > And if every svn:externals URL included the
> > > exact version of the other project to include, aren't svn:externals
> > > then more-or-less like the subproject link support, except they
> > > also include the URL?
> >
> > Just to clarify, my point was just that Andy's setup seems to assume
> > that the externals don't specify a revision.  If they do, maybe
> 
> They don't.  If they did, they'd be just as useful as git's submodules.
>
> > git-svn can map the externals into subprojects.  Is this what
> > you're thinking?
> 
> Well, I'm thinking that that information /can/ be reconstructed from the 
> revision date information - kind of - the problem is that there is no 
> way to know when the parent updated the module.   svn:externals really 
> is just a quick way of doing
>  $ cd submodule
>  $ svn update
> That's it.  That's all you get.  We could guess that when the parent 
> module was at date YYYY-MM-DD, that the submodule would be at that same 
> date - but who knows?

svn users who want the externals to meaningfully define the version
relationship between the parent and the project already have to use
externals that specify a revision.

-chris

  parent reply	other threads:[~2007-05-01 19:17 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-01 10:21 svn:externals using git submodules Andy Parkins
2007-05-01 15:07 ` Chris Shoemaker
2007-05-01 15:22   ` Shawn O. Pearce
2007-05-01 15:36     ` Chris Shoemaker
2007-05-01 15:40       ` Shawn O. Pearce
2007-05-01 18:36       ` Andy Parkins
2007-05-01 18:39         ` Andy Parkins
2007-05-01 19:17         ` Chris Shoemaker [this message]
2007-05-01 19:48           ` Andy Parkins
2007-05-01 20:23             ` Chris Shoemaker
2007-05-01 22:19               ` Linus Torvalds
2007-05-01 22:37                 ` Junio C Hamano
2007-05-01 23:16                   ` Shawn O. Pearce
2010-01-20 13:58 ` Michel Jouvin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070501191703.GA25287@pe.Belkin \
    --to=c.shoemaker@cox.net \
    --cc=andyparkins@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=spearce@spearce.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).