git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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" "$@"
Previous: Paul CampbellNext: Paul Campbell
Message 4 of 33 in “contrib/subtree: Collected updates”
  1. 00/23 contrib/subtree: Collected updatesPaul Campbell, Mar 10, 2013
  2. 01/23 contrib/subtree: Fix typo (s/incldued/included/)Paul Campbell, Mar 10, 2013
  3. 02/23 contrib/subtree: Add command from-submodulePaul Campbell, Mar 10, 2013
  4. Junio C HamanoMar 11, 2013
  5. contrib/subtree: Add command from-submodulePaul Campbell, Mar 24, 2013
  6. 03/23 contrib/subtree: Teach add to store repository & branch in .gittreesPaul Campbell, Mar 10, 2013
  7. Junio C HamanoMar 11, 2013
  8. Paul CampbellMar 24, 2013
  9. contrib/subtree: Teach add to store repository & branch in .gittreesPaul Campbell, Mar 24, 2013
  10. 04/23 contrib/subtree: Teach push and pull to use .gittrees for defaultsPaul Campbell, Mar 10, 2013
  11. Junio C HamanoMar 11, 2013
  12. Paul CampbellMar 24, 2013
  13. 05/23 contrib/subtree: Add commands pull_all and push_allPaul Campbell, Mar 10, 2013
  14. Junio C HamanoMar 11, 2013
  15. Paul CampbellMar 11, 2013
  16. 06/23 contrib/subtree: Rename commands push_all/pull_all to push-all/pull-allPaul Campbell, Mar 10, 2013
  17. 07/23 contrib/subtree: Teach push and pull to use .gittrees if neededPaul Campbell, Mar 10, 2013
  18. 08/23 contrib/subtree: Replace invisible carriage return with a visible \rPaul Campbell, Mar 10, 2013
  19. 09/23 contrib/subtree: Teach push to abort if split failsPaul Campbell, Mar 10, 2013
  20. 10/23 contrib/subtree: Add command diffPaul Campbell, Mar 10, 2013
  21. 11/23 contrib/subtree: Add command listPaul Campbell, Mar 10, 2013
  22. 12/23 contrib/subtree: Add command prunePaul Campbell, Mar 10, 2013
  23. 13/23 contrib/subtree: Add prune command to OPTS_SPECPaul Campbell, Mar 10, 2013
  24. 14/23 contrib/subtree: Remove trailing slash from prefix parameterPaul Campbell, Mar 10, 2013
  25. 15/23 contrib/subtree: Teach from-submodule to add new subtree to .gittreesPaul Campbell, Mar 10, 2013
  26. 16/23 contrib/subtree: Document pull-all and push-allPaul Campbell, Mar 10, 2013
  27. 17/23 contrib/subtree: Document from-submodule and prune commandsPaul Campbell, Mar 10, 2013
  28. 18/23 contrib/subtree: Add missing commands to SYNOPSISPaul Campbell, Mar 10, 2013
  29. 19/23 contrib/subtree: Document list commandPaul Campbell, Mar 10, 2013
  30. 20/23 contrib/subtree: Teach push to use --force optionPaul Campbell, Mar 10, 2013
  31. 21/23 contrib/subtree: Convert spaces to tabs and remove some trailing whitespacePaul Campbell, Mar 10, 2013
  32. 22/23 contrib/subtree: Parameters repository/branch for push/pull are optionalPaul Campbell, Mar 10, 2013
  33. 23/23 contrib/subtree: Fix order of case switches so default case is lastPaul Campbell, Mar 10, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.