Re: [PATCH 2/4] submodule: fix recursive execution from non root directory
- From
Stefan Beller <sbeller@google.com>
- Date
- Mar 25, 2016, 17:27 UTC
- Message-ID
- <CAGZ79kYGbdAonKwTcQACFRKKZ-6GJRVsXHu7nO9fXaUNoToP-w@mail.gmail.com>
- In-Reply-To
- <xmqqtwju4iaj.fsf@gitster.mtv.corp.google.com>
On Fri, Mar 25, 2016 at 9:46 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 10 quoted lines
> Stefan Beller <sbeller@google.com> writes: > >> Most times that directory doesn't exist and we error out. Fix this bug >> by clearing wt_prefix, such that any recursive instances of will assume >> to operate from the respective root of the respective submodule. > > As long as the recursive instances do not take any filenames and > pathspecs that needs adjustment with respect to the prefix, this > would be an OK change; I am not sure if that precondition holds, > though.
If we give filenames and pathspecs relative to the prefix in a submodule, the filename is not recognized by the superproject which would produce an error at the superproject. Monkey-testing locally here supports my suspicion and it is not possible to do things like
git submodule status path/inside/submodule
so if that is already not working, we should not expect to have
git -C subdir submodule status ../path/inside/submodule
working.
Show 37 quoted lines
> > Thanks. > >> >> Signed-off-by: Stefan Beller <sbeller@google.com> >> --- >> git-submodule.sh | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/git-submodule.sh b/git-submodule.sh >> index 536ba68..6b18a03 100755 >> --- a/git-submodule.sh >> +++ b/git-submodule.sh >> @@ -827,6 +827,7 @@ Maybe you want to use 'update --init'?")" >> ( >> prefix="$(relative_path $prefix$sm_path)/" >> clear_local_git_env >> + wt_prefix= >> cd "$sm_path" && >> eval cmd_update >> ) >> @@ -1159,6 +1160,7 @@ cmd_status() >> ( >> prefix="$displaypath/" >> clear_local_git_env >> + wt_prefix= >> cd "$sm_path" && >> eval cmd_status >> ) || >> @@ -1240,6 +1242,7 @@ cmd_sync() >> >> if test -n "$recursive" >> then >> + wt_prefix= >> eval cmd_sync >> fi >> )