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

Re: [PATCH 28/29] blame: move scoreboard setup to libgit

From
Junio C Hamano <gitster@pobox.com>
Date
May 25, 2017, 05:53 UTC
Message-ID
<xmqqfufteb2i.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<20170524051537.29978-29-whydoubt@gmail.com>
Jeff Smith <whydoubt@gmail.com> writes:
Show 61 quoted lines
> Signed-off-by: Jeff Smith <whydoubt@gmail.com>
> ---
>  blame.c         | 279 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
>  blame.h         |  10 +-
>  builtin/blame.c | 276 -------------------------------------------------------
>  3 files changed, 281 insertions(+), 284 deletions(-)
>
> ...
> +static struct commit *find_single_initial(struct rev_info *revs,
> +					  const char **name_p)
> +{
> +	int i;
> +	struct commit *found = NULL;
> +	const char *name = NULL;
> +
> +	/*
> +	 * There must be one and only one negative commit, and it must be
> +	 * the boundary.
> +	 */
> +	for (i = 0; i < revs->pending.nr; i++) {
> +		struct object *obj = revs->pending.objects[i].item;
> +		if (!(obj->flags & UNINTERESTING))
> +			continue;
> +		obj = deref_tag(obj, NULL, 0);
> +		if (obj->type != OBJ_COMMIT)
> +			die("Non commit %s?", revs->pending.objects[i].name);
> +		if (found)
> +			die("More than one commit to dig up from, %s and %s?",
> +			    revs->pending.objects[i].name, name);
> +		found = (struct commit *) obj;
> +		name = revs->pending.objects[i].name;
> +	}
> +
> +	if (!name)
> +		found = dwim_reverse_initial(revs, &name);
> +	if (!name)
> +		die("No commit to dig up from?");
> +
> +	if (name_p)
> +		*name_p = name;
> +	return found;
> +}
> +...
> -static struct commit *find_single_initial(struct rev_info *revs,
> -					  const char **name_p)
> -{
> -	int i;
> -	const char *final_commit_name = NULL;
> -	struct commit *found = NULL;
> -
> -...
> -
> -	if (!final_commit_name)
> -		found = dwim_reverse_initial(revs, &final_commit_name);
> -	if (!final_commit_name)
> -		die("No commit to dig up from?");
> -
> -	if (name_p)
> -		*name_p = final_commit_name;
> -	return found;
> -}

In a patch whose primary purpose is to move code between files, making what used to be public to static and vice versa is an integral part of moving code. That is why we want to see a patch organized in such a way that comparing the lines that are lost from builtin/blame.c and the lines that are added to blame.[ch] is made easy.

And from that point of view, it was somewhat irritating to find this kind of meaningless change. If you didn't like the name of the variable "final-commit-name", that shold have been renamed while the code was still in builtin/blame.c

The end result looks OK anyway (I've checked 29/29 as well).
Thanks.
Previous: Jeff SmithNext: Jeffrey Smith
Message 28 of 39 in “Add blame to libgit”
  1. 00/29 Add blame to libgitJeff Smith, May 24, 2017
  2. 01/29 blame: remove unneeded dependency on blob.hJeff Smith, May 24, 2017
  3. 03/29 blame: remove unused parametersJeff Smith, May 24, 2017
  4. 02/29 blame: move textconv_object with related functionsJeff Smith, May 24, 2017
  5. 04/29 blame: rename origin structure to blame_originJeff Smith, May 24, 2017
  6. 05/29 blame: rename scoreboard structure to blame_scoreboardJeff Smith, May 24, 2017
  7. 06/29 blame: rename origin-related functionsJeff Smith, May 24, 2017
  8. 10/29 blame: move stat counters to scoreboardJeff Smith, May 24, 2017
  9. 11/29 blame: move copy/move thresholds to scoreboardJeff Smith, May 24, 2017
  10. 14/29 blame: move show_root flag to scoreboardJeff Smith, May 24, 2017
  11. 13/29 blame: move reverse flag to scoreboardJeff Smith, May 24, 2017
  12. 12/29 blame: move contents_from to scoreboardJeff Smith, May 24, 2017
  13. 09/29 blame: rename nth_line functionJeff Smith, May 24, 2017
  14. 19/29 blame: wrap blame_sort and compare_blame_finalJeff Smith, May 24, 2017
  15. 16/29 blame: move no_whole_file_rename flag to scoreboardJeff Smith, May 24, 2017
  16. 07/29 blame: rename coalesce functionJeff Smith, May 24, 2017
  17. 23/29 blame: create entry prepend functionJeff Smith, May 24, 2017
  18. Junio C HamanoMay 25, 2017
  19. 24/29 blame: move core structures to headerJeff Smith, May 24, 2017
  20. Junio C HamanoMay 25, 2017
  21. 21/29 blame: create scoreboard init functionJeff Smith, May 24, 2017
  22. 26/29 blame: move fake-commit-related methods to libgitJeff Smith, May 24, 2017
  23. 22/29 blame: create scoreboard setup functionJeff Smith, May 24, 2017
  24. Junio C HamanoMay 25, 2017
  25. 27/29 blame: move scoreboard-related methods to libgitJeff Smith, May 24, 2017
  26. 25/29 blame: move origin-related methods to libgitJeff Smith, May 24, 2017
  27. 28/29 blame: move scoreboard setup to libgitJeff Smith, May 24, 2017
  28. Junio C HamanoMay 25, 2017
  29. Jeffrey SmithMay 25, 2017
  30. 18/29 blame: move progess updates to a scoreboard callbackJeff Smith, May 24, 2017
  31. Junio C HamanoMay 25, 2017
  32. 17/29 blame: make sanity_check use a callback in scoreboardJeff Smith, May 24, 2017
  33. 29/29 blame: move entry prepend to libgitJeff Smith, May 24, 2017
  34. 20/29 blame: rework methods that determine 'final' commitJeff Smith, May 24, 2017
  35. Junio C HamanoMay 25, 2017
  36. 15/29 blame: move xdl_opts flags to scoreboardJeff Smith, May 24, 2017
  37. 08/29 blame: rename ent_score functionJeff Smith, May 24, 2017
  38. Junio C HamanoMay 24, 2017
  39. Junio C HamanoMay 25, 2017

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.