Paul Campbell <pcampbell@xxxxxxxxxxx> writes: > @@ -721,4 +722,31 @@ cmd_push() > fi > } > > +cmd_from-submodule() > +{ I know contrib/subtree does not work with anything other than bash, and bash may accept this as a valid function name, but if you can avoid it easily I would prefer not to see a non-POSIX construct like this in my tree, even in contrib/ part: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_230 because people often reference random parts of the tree and mimick what existing code does. > + ensure_clean > + > + local submodule_sha=$(git submodule status $prefix | cut -d ' ' -f 2) Is $prefix guaranteed not to have any $IFS whitespaces? > + # Remove references to submodule. > + git config --remove-section submodule.$prefix > + git config --file .gitmodules --remove-section submodule.$prefix > + git add .gitmodules > + > + # Move submodule aside. > + local tmp_repo="$(mktemp -d /tmp/git-subtree.XXXXX)" Doesn't "git subtree" honor TMPDIR? Not complaining, but being curious. > + rm -r $tmp_repo > + mv $prefix $tmp_repo > + git rm $prefix Is $prefix guaranteed not to have any $IFS whitespaces? > + > + # Commit changes. > + git commit -m "Remove '$prefix/' submodule" > + > + # subtree add from submodule repo. > + cmd_add_repository $tmp_repo HEAD > + > + # Remove submodule repo. > + rm -rf $tmp_repo > +} > + > "cmd_$command" "$@" -- 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