git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Ping Yin" <pkufranky@gmail.com>
To: "Junio C Hamano" <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 2/7] git-submodule: Extract absolute_url & move absolute url logic to module_clone
Date: Tue, 22 Apr 2008 15:00:21 +0800	[thread overview]
Message-ID: <46dff0320804220000l1872ebf1vde269953d89c755f@mail.gmail.com> (raw)
In-Reply-To: <7v3ape5sip.fsf@gitster.siamese.dyndns.org>

On Tue, Apr 22, 2008 at 2:10 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Ping Yin <pkufranky@gmail.com> writes:
>
>  > Extract function absolute_url to remove code redundance and inconsistence in
>  > cmd_init and cmd_add when resolving relative url/path to absolute one.
>  >
>  > Also move resolving absolute url logic from cmd_add to module_clone which
>  > results in a litte behaviour change: cmd_update originally doesn't
>  > resolve absolute url but now it will.
>
>  Hmmm.  Somehow I find this unreadable and hard to parse.
>
>
>  > This behaviour change breaks t7400 which uses relative url './.subrepo'.
>  > However, this test originally doesn't mean to test relative url with './',
>  > so fix the url as '.subrepo'.
>
>  Isn't ".subrepo" a relative URL that says "subdirectory of the current
>  one, whose name is .subrepo", exactly the same way as "./.subrepo" is?
>  Shouldn't they behave the same?
>
>  If the test found they do not behave the same, perhaps the new code is
>  broken in some way and isn't "fixing" the test simply hiding a bug?
>
>  I dunno...
>
>
>  > +# Resolve relative url/path to absolute one
>  > +absolute_url () {
>  > +     case "$1" in
>  > +     ./*|../*)
>  > +             # dereference source url relative to parent's url
>  > +             url="$(resolve_relative_url $1)" ;;
>  > +     *)
>  > +             # Turn the source into an absolute path if it is local
>  > +             url=$(get_repo_base "$1") ||
>  > +             url=$1
>  > +             ;;
>  > +     esac
>  > +     echo "$url"
>  > +}
>  > +
>  >  #
>  >  # Map submodule path to submodule name
>  >  #
>  > @@ -112,7 +127,7 @@ module_info() {
>  >  module_clone()
>  >  {
>  >       path=$1
>  > -     url=$2
>  > +     url=$(absolute_url "$2")
>  >
>  >       # If there already is a directory at the submodule path,
>  >       # expect it to be empty (since that is the default checkout
>
>  Why does this call-site matter?  The URL is given to "git-clone" which I
>  think does handle the relative URL just fine???
>

>  Hmmm.  Doesn't "foo" generally mean the same thing as "./foo" in the sense
>  both are relative to the current directory?

Following was my answer days ago

There is a little inconsistence in current logic

1. git submodule add ./foo will expand foo with remote.origin.url and
    init an entry in .gitmodules as "submodule.foo.url=$remoteoriginurl/foo"
2. git submodule update will not expand ./foo if  there is an entry
    "submodule.foo.url=./foo"  in $GIT_DIR/config

I tend to add the url as is when "git submodule add", and then expand
the url when running "git submodule update". So this will result that
the second case expands './foo' as "$remoteoriginurl/foo" instead of
"foo".

And this is the reason i expand './foo' in module_clone.

-- 
Ping Yin

      parent reply	other threads:[~2008-04-22  7:01 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-16 14:19 [PATCH 0/7] submodule: fallback to .gitmodules and multiple level module definition Ping Yin
2008-04-16 14:19 ` [PATCH 1/7] git-submodule: Extract functions module_info and module_url Ping Yin
2008-04-16 14:19   ` [PATCH 2/7] git-submodule: Extract absolute_url & move absolute url logic to module_clone Ping Yin
2008-04-16 14:19     ` [PATCH 3/7] git-submodule: Fall back on .gitmodules if info not found in $GIT_DIR/config Ping Yin
2008-04-16 14:19       ` [PATCH 4/7] git-submodule: Extract module_add from cmd_add Ping Yin
2008-04-16 14:19         ` [PATCH 5/7] git-submodule: multi-level module definition Ping Yin
2008-04-16 14:19           ` [PATCH 6/7] git-submodule: "update --force" to enforce cloning non-submodule Ping Yin
2008-04-16 14:19             ` [PATCH 7/7] git-submodule: Don't die when command fails for one submodule Ping Yin
2008-04-22  6:10     ` [PATCH 2/7] git-submodule: Extract absolute_url & move absolute url logic to module_clone Junio C Hamano
2008-04-22  6:50       ` Ping Yin
2008-04-22  7:57         ` Junio C Hamano
2008-04-22  9:09           ` Ping Yin
2008-04-22 14:38             ` Ping Yin
2008-04-22 14:41               ` Ping Yin
     [not found]                 ` <alpine.DEB.1.00.0804221609200.4460@eeepc-johanness>
2008-04-22 16:54                   ` Ping Yin
2008-04-22 17:13                     ` Jakub Narebski
2008-04-22 17:20                       ` Ping Yin
2008-04-22  7:00       ` Ping Yin [this message]

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=46dff0320804220000l1872ebf1vde269953d89c755f@mail.gmail.com \
    --to=pkufranky@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).