Re: [PATCH v2 02/23] contrib/subtree: Add command from-submodule
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 11, 2013, 03:19 UTC
- Message-ID
- <7vwqtebp3m.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <1362958891-26941-3-git-send-email-pcampbell@kemitix.net>
Paul Campbell <pcampbell@kemitix.net> writes:
Show 6 quoted lines
> @@ -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?
Show 7 quoted lines
> + # 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?
Show 12 quoted lines
> + > + # 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" "$@"