git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <junio@pobox.com>
To: Ping Yin <pkufranky@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH/RFC 1/7] git-submodule: Extract functions module_info and module_url
Date: Fri, 11 Apr 2008 15:30:14 -0700	[thread overview]
Message-ID: <7v4pa8qb2h.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1207842625-9210-2-git-send-email-pkufranky@gmail.com> (Ping Yin's message of "Thu, 10 Apr 2008 23:50:16 +0800")

Ping Yin <pkufranky@gmail.com> writes:

> @@ -232,12 +251,11 @@ cmd_init()
>  		shift
>  	done
>  
> -	git ls-files --stage -- "$@" | grep '^160000 ' |
> -	while read mode sha1 stage path
> +	module_info "$@" |
> +	while read sha1 path name url
>  	do
> +		test -n "$name" || exit
>  		# Skip already registered paths
> -		name=$(module_name "$path") || exit
> -		url=$(git config submodule."$name".url)
>  		test -z "$url" || continue

This is not a new bug in this round of patch (i.e. the original code
already did the same), but I have to wonder if exiting the loop silently
when $name is not set (i.e. .gitmodules does not have an entry to describe
the submodule yet) is a good idea.

If an entry with mode 160000 in the index is an error if it does not have
a corresponding entry in .gitmodules, then this code should say so when
exiting the loop prematurely.  If it is not, I think it should silently
continue just like missing URL case.

The user may be right in the process of manually adding a new submodule,
has done "git add" of the submodule path already but hasn't yet decided
what the name of the submodule or where the final published URL would be.
In such a case, you would have 160000 entry in the index that does not
have a corresponding entry in .gitmodules and that is perfectly valid.

So I tend to think that you should treat "missing name" and "missing url"
as an non-error case.

cmd_init would obviously need to _notice_ "missing url" and refrain from
adding the missing remote URL to the config, but I do not think it should
error out.  Warning might be appropriate in cases, but I dunno.

Same comment applies to cmd_update() and cmd_status().  I would strongly
suspect that status may want to ignore missing name/url and show the usual
diff, as it does not even have to require the submodule to interact with
any remote repository at all.  The user may be privately using the
submodule and does not even need to push it out nor pull it from
elsewhere, and in such a case, .gitmodules may not even be populated with
an entry for that submodule, ever, not just as a "right in the middle of
adding" status.

When the command should be usable without .gitmodules entry, it should not
require one.

  parent reply	other threads:[~2008-04-11 22:31 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-10 15:50 [PATCH/RFC] submodule: fallback to .gitmodules and multiple level module definition Ping Yin
2008-04-10 15:50 ` [PATCH/RFC 1/7] git-submodule: Extract functions module_info and module_url Ping Yin
2008-04-10 15:50   ` [PATCH v2 1/3] git-submodule summary: --for-status option Ping Yin
2008-04-10 15:50     ` [PATCH v2 2/3] builtin-status: submodule summary support Ping Yin
2008-04-10 15:50       ` [PATCH/RFC 2/7] git-submodule: Extract absolute_url & move absolute url logic to module_clone Ping Yin
2008-04-10 15:50         ` [PATCH v2 3/3] buitin-status: Add tests for submodule summary Ping Yin
2008-04-10 15:50           ` [PATCH/RFC 3/7] git-submodule: Fall back on .gitmodules if info not found in $GIT_DIR/config Ping Yin
2008-04-10 15:50             ` [PATCH/RFC 4/7] git-submodule: Extract module_add from cmd_add Ping Yin
2008-04-10 15:50               ` [PATCH/RFC 5/7] git-submodule: multi-level module definition Ping Yin
2008-04-10 15:50                 ` [PATCH/RFC 6/7] git-submodule: Don't die when command fails for one submodule Ping Yin
2008-04-10 15:50                   ` [PATCH/RFC 7/7] git-submodule: "update --force" to enforce cloning non-submodule Ping Yin
2008-04-11 23:24             ` [PATCH/RFC 3/7] git-submodule: Fall back on .gitmodules if info not found in $GIT_DIR/config Junio C Hamano
2008-04-11 23:24             ` Junio C Hamano
2008-04-12  4:26               ` Ping Yin
2008-04-11 21:56         ` [PATCH/RFC 2/7] git-submodule: Extract absolute_url & move absolute url logic to module_clone Junio C Hamano
2008-04-12  2:56           ` Ping Yin
2008-04-10 15:57     ` [PATCH v2 1/3] git-submodule summary: --for-status option Ping Yin
2008-04-11 22:30   ` Junio C Hamano [this message]
2008-04-12  3:05     ` [PATCH/RFC 1/7] git-submodule: Extract functions module_info and module_url Ping Yin
2008-04-12  4:50       ` Junio C Hamano

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=7v4pa8qb2h.fsf@gitster.siamese.dyndns.org \
    --to=junio@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pkufranky@gmail.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.
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).