Fredrik Gustafsson <iv...@iveqy.com> writes:

> Bugg reported here:
> http://thread.gmane.org/gmane.comp.version-control.git/218922/focus=226791

The URL is nice supplemental info as footnote, but please write log
message in a way that a reader can understand without going there.
In this case, it wouldn't be so hard, I think, perhaps like:

        Many "git submodule" operations do not work on a submodule
        at a path whose name is not in ASCII.

        This is because "git ls-files" is used to find which paths
        are bound to submodules to the current working tree, and the
        output is C-quoted by default for non ASCII pathnames.

        Read from "git ls-files -z" instead, which is easier than
        unwrapping C-quote ourselves.

or something.

>  module_list()
>  {
>       (
> -             git ls-files --error-unmatch --stage -- "$@" ||
> +             git ls-files --error-unmatch --stage -z -- "$@" ||
>               echo "unmatched pathspec exists"
>       ) |
> +     sed -e 's/\x00/\n/g' |

It is strange to preprosess input to be read by a Perl script with
sed ;-)

How about doing it this way instead?  Does the result pass your
test?

 git-submodule.sh | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index 79bfaac..19faf58 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -113,7 +113,7 @@ resolve_relative_url ()
 module_list()
 {
        (
-               git ls-files --error-unmatch --stage -- "$@" ||
+               git ls-files --error-unmatch --stage -z -- "$@" ||
                echo "unmatched pathspec exists"
        ) |
        perl -e '
@@ -121,6 +121,7 @@ module_list()
        my ($null_sha1) = ("0" x 40);
        my @out = ();
        my $unmatched = 0;
+       $/ = "\0";
        while (<STDIN>) {
                if (/^unmatched pathspec/) {
                        $unmatched = 1;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to