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

Re: [PATCH v8 1/2] submodule refactor: use git_pathdup_submodule() in add_submodule_odb()

From
Max Kirillov <max@max630.net>
Date
Sep 13, 2015, 22:26 UTC
Message-ID
<20150913222619.GA8042@wheezy.local>
In-Reply-To
<20150911075340.GA18917@sigill.intra.peff.net>
On Fri, Sep 11, 2015 at 03:53:40AM -0400, Jeff King wrote:
Show 34 quoted lines
> 
> Now that we have strbuf_git_path_submodule(), is there any reason to
> switch this away from a strbuf?
> 
> That saves us a bunch of strlen calls, and it makes the diff way
> shorter. My ulterior motive is that the result also conflicts a lot less
> with some patches I'm about to post to harden the malloc and strcpy
> calls below.
> 
> That would make your patch look something like:
> 
> diff --git a/submodule.c b/submodule.c
> index 245ed4d..5e5a46f 100644
> --- a/submodule.c
> +++ b/submodule.c
> @@ -122,15 +122,8 @@ static int add_submodule_odb(const char *path)
>  	struct strbuf objects_directory = STRBUF_INIT;
>  	struct alternate_object_database *alt_odb;
>  	int ret = 0;
> -	const char *git_dir;
>  
> -	strbuf_addf(&objects_directory, "%s/.git", path);
> -	git_dir = read_gitfile(objects_directory.buf);
> -	if (git_dir) {
> -		strbuf_reset(&objects_directory);
> -		strbuf_addstr(&objects_directory, git_dir);
> -	}
> -	strbuf_addstr(&objects_directory, "/objects/");
> +	strbuf_git_path_submodule(&objects_directory, path, "objects/");
>  	if (!is_directory(objects_directory.buf)) {
>  		ret = -1;
>  		goto done;
> 
> -Peff
Thank you. This is how it looks now.
-- 
Max
Previous: Jeff KingNext: Max Kirillov
Message 19 of 23 in “path: implement common_dir handling in git_path_submodule()”
  1. 0/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Mar 18, 2015
  2. 1/2 submodule refactor: use git_path_submodule() in add_submodule_odb()Max Kirillov, Mar 18, 2015
  3. 2/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Mar 18, 2015
  4. 0/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 3, 2015
  5. 1/2 submodule refactor: use git_path_submodule() in add_submodule_odb()Max Kirillov, Aug 3, 2015
  6. Junio C HamanoAug 3, 2015
  7. 2/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 3, 2015
  8. 0/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 4, 2015
  9. 1/2 submodule refactor: use git_path_submodule() in add_submodule_odb()Max Kirillov, Aug 4, 2015
  10. 2/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 4, 2015
  11. 0/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 4, 2015
  12. 1/2 submodule refactor: use git_path_submodule() in add_submodule_odb()Max Kirillov, Aug 4, 2015
  13. Stefan BellerAug 18, 2015
  14. 2/2 path: implement common_dir handling in git_path_submodule()Max Kirillov, Aug 4, 2015
  15. Stefan BellerAug 17, 2015
  16. 0/2 Submodule object pathMax Kirillov, Sep 10, 2015
  17. 1/2 submodule refactor: use git_pathdup_submodule() in add_submodule_odb()Max Kirillov, Sep 10, 2015
  18. Jeff KingSep 11, 2015
  19. Max KirillovSep 13, 2015
  20. 2/2 path: implement common_dir handling in git_pathdup_submodule()Max Kirillov, Sep 10, 2015
  21. Junio C HamanoSep 11, 2015
  22. Max KirillovSep 13, 2015
  23. Junio C HamanoSep 14, 2015

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.