While trying git out on Solaris 8, I needed the following patch. The 'grep' command on Solaris doesn't understand the -e option, though egrep does. More mysterious is the printf patch. Without it, the sed command didn't match anything. --- git-1.5.4.rc0/git-submodule.sh Wed Dec 12 21:29:16 2007 +++ git-andy/git-submodule.sh Mon Dec 17 14:30:46 2007 @@ -74,7 +74,7 @@ module_name() { # Do we have "submodule.<something>.path = $1" defined in .gitmodules file? - re=$(printf '%s' "$1" | sed -e 's/[].[^$\\*]/\\&/g') + re=$(printf '%s\n' "$1" | sed -e 's/[].[^$\\*]/\\&/g') name=$( GIT_CONFIG=.gitmodules \ git config --get-regexp '^submodule\..*\.path$' | sed -n -e 's|^submodule\.\(.*\)\.path '"$re"'$|\1|p' ) @@ -176,7 +176,7 @@ # modules_init() { - git ls-files --stage -- "$@" | grep -e '^160000 ' | + git ls-files --stage -- "$@" | egrep -e '^160000 ' | while read mode sha1 stage path do # Skip already registered paths @@ -209,7 +209,7 @@ # modules_update() { - git ls-files --stage -- "$@" | grep -e '^160000 ' | + git ls-files --stage -- "$@" | egrep -e '^160000 ' | while read mode sha1 stage path do name=$(module_name "$path") || exit @@ -268,7 +268,7 @@ # modules_list() { - git ls-files --stage -- "$@" | grep -e '^160000 ' | + git ls-files --stage -- "$@" | egrep -e '^160000 ' | while read mode sha1 stage path do name=$(module_name "$path") || exit -- Andy Dougherty doughera@xxxxxxxxxxxxx - 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