threads / patch / 28506

patchgit-submodule: a small fix

Subject: [PATCH] git-submodule: a small fix

## tl;dr

3 messages between Sep 26, 2011 and Sep 27, 2011. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Roy Liu· Sep 26, 2011, 22:00 UTC · lore

In git-submodule.sh, the "url" variable may contain a stale value from the previous loop iteration, so clear it.

--- git-submodule.sh.orig   2011-09-26 17:50:45.000000000 -0400 +++ git-submodule.sh    2011-09-26 17:51:18.000000000 -0400

Show changes to diff +2 −0
@@ -370,6 +370,8 @@
           esac
           git config submodule."$name".url "$url" ||
           die "Failed to register url for submodule path '$path'"
+        else
+            url=""
       fi

       # Copy "update" setting when it is not set yet
Andrew Ardill· Sep 27, 2011, 03:22 UTC · re: Roy Liu · lore

Re: [PATCH] git-submodule: a small fix

On 27 September 2011 08:00, Roy Liu <carsomyr@gmail.com> wrote:
Show 14 quoted lines
> In git-submodule.sh, the "url" variable may contain a stale value from
> the previous loop iteration, so clear it.
>
> --- git-submodule.sh.orig   2011-09-26 17:50:45.000000000 -0400
> +++ git-submodule.sh    2011-09-26 17:51:18.000000000 -0400
> @@ -370,6 +370,8 @@
>            esac
>            git config submodule."$name".url "$url" ||
>            die "Failed to register url for submodule path '$path'"
> +        else
> +            url=""
>        fi
>
>        # Copy "update" setting when it is not set yet
Perhaps a better commit description would be:
git-submodule: clear the url variable when not set to avoid using stale values
otherwise looks clean enough
Andrew
Jens Lehmann· Sep 27, 2011, 07:24 UTC · re: Andrew Ardill · lore

Re: [PATCH] git-submodule: a small fix

Am 27.09.2011 05:22, schrieb Andrew Ardill:
Show 19 quoted lines
> On 27 September 2011 08:00, Roy Liu <carsomyr@gmail.com> wrote:
>> In git-submodule.sh, the "url" variable may contain a stale value from
>> the previous loop iteration, so clear it.
>>
>> --- git-submodule.sh.orig   2011-09-26 17:50:45.000000000 -0400
>> +++ git-submodule.sh    2011-09-26 17:51:18.000000000 -0400
>> @@ -370,6 +370,8 @@
>>            esac
>>            git config submodule."$name".url "$url" ||
>>            die "Failed to register url for submodule path '$path'"
>> +        else
>> +            url=""
>>        fi
>>
>>        # Copy "update" setting when it is not set yet
> 
> Perhaps a better commit description would be:
> 
> git-submodule: clear the url variable when not set to avoid using stale values

Yes, the commit description needs to describe what was changed (and you can also drop the "git-", to start with "submodule:" is sufficient here). Also it would be nice if the message would describe under what circumstances this happens (how did you notice this problem?).

But I wonder if the patch does it the right way. While it fixes the basic issue that "url" might not be set, I doubt it does what the user expects. The place where the - sometimes uninitialized - variable "url" is used is a few lines down:

		say "$(eval_gettext "Submodule '\$name' (\$url) registered for path '\$path'")"

I doesn't make much sense to say "Submodule 'foo' () registered for path 'foo'" here. Shouldn't "url" be set to "$(git config "submodule.$name.url")"? And when looking at the if you added the else to it might make sense to set it unconditionally before the if and then test "$url" there instead of adding an extra else.

← back to recent threads