Rewrote a perl section in sh. The code may be a bit slower (doing grep on strings instead of using perl-lists). Signed-off-by: Fredrik Gustafsson <iveqy@xxxxxxxxx> --- git-submodule.sh | 35 ++++++++++++++++++----------------- 1 files changed, 18 insertions(+), 17 deletions(-) diff --git a/git-submodule.sh b/git-submodule.sh index f46862f..d3dfb24 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -73,24 +73,25 @@ resolve_relative_url () # module_list() { + unmerged= + null_sha1=0000000000000000000000000000000000000000 git ls-files --error-unmatch --stage -- "$@" | - perl -e ' - my %unmerged = (); - my ($null_sha1) = ("0" x 40); - while (<STDIN>) { - chomp; - my ($mode, $sha1, $stage, $path) = - /^([0-7]+) ([0-9a-f]{40}) ([0-3])\t(.*)$/; - next unless $mode eq "160000"; - if ($stage ne "0") { - if (!$unmerged{$path}++) { - print "$mode $null_sha1 U\t$path\n"; - } - next; - } - print "$_\n"; - } - ' + while read mode sha1 stage path + do + if test $mode -eq 160000 + then + if test $stage -ne 0 + then + if test -z "$(echo $unmerged | grep "|$path|")" + then + echo "$mode $null_sha1 U\t$path" + fi + unmerged="$unmerged|$path|" + else + echo "$mode $sha1 $stage\t$path" + fi + fi + done } # -- 1.7.5.1180.g4bfe7.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html