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

Re: [PATCH 1/1] commit-graph: add --[no-]progress to write and verify.

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 20, 2019, 21:11 UTC
Message-ID
<xmqqftlvtucw.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<da89f7dadb0be2d4ada22dd3e2d1f5524c73f70d.1566326275.git.gitgitgadget@gmail.com>
"Garima Singh via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 6 quoted lines
> From: Garima Singh <garima.singh@microsoft.com>
>
> Add --[no-]progress to git commit-graph write and verify.
> The progress feature was introduced in 7b0f229
> ("commit-graph write: add progress output", 2018-09-17) but
> the ability to opt-out was overlooked.
Nicely described.
Show 9 quoted lines
> diff --git a/builtin/commit-graph.c b/builtin/commit-graph.c
> index 38027b83d9..71796910fc 100644
> --- a/builtin/commit-graph.c
> +++ b/builtin/commit-graph.c
> @@ -6,17 +6,18 @@
>  #include "repository.h"
>  #include "commit-graph.h"
>  #include "object-store.h"
> +#include "unistd.h"
Please do not contaminate *.c files with #include of system headers.

Often, various platforms require system include files in specific order, and the project convention is to include them in git-compat-util.h in the right order (with #ifdef and friends as necessary). *.c files are required to include git-compat-util.h (or one of the well known headers that include git-compat-util.h as the first one) as the first file.

In fact, "builtin.h" includes "git-compat-util.h" as the first thing, and "git-compat-util.h" in turn includes unistd reasonably early. Do you really need to include it again here?

Show 6 quoted lines
> @@ -48,16 +50,20 @@ static int graph_verify(int argc, const char **argv)
>  	int fd;
>  	struct stat st;
>  	int flags = 0;
> -
> +	int defaultProgressState = isatty(2);

As you can see from the naming of other variables, we do not do camelCase variable names.

In fact you do not need this variable, do you?
Show 11 quoted lines
>  	static struct option builtin_commit_graph_verify_options[] = {
>  		OPT_STRING(0, "object-dir", &opts.obj_dir,
>  			   N_("dir"),
>  			   N_("The object directory to store the graph")),
>  		OPT_BOOL(0, "shallow", &opts.shallow,
>  			 N_("if the commit-graph is split, only verify the tip file")),
> +		OPT_BOOL(0, "progress", &opts.progress, N_("force progress reporting")),
>  		OPT_END(),
>  	};
>  
> +	opts.progress = defaultProgressState;
... as you can assign isatty(2) to opts.progress here directly.
Show 8 quoted lines
> @@ -154,8 +162,9 @@ static int graph_write(int argc, const char **argv)
>  	struct string_list *commit_hex = NULL;
>  	struct string_list lines;
>  	int result = 0;
> -	unsigned int flags = COMMIT_GRAPH_PROGRESS;
> -
> +	unsigned int flags = 0;
> +	int defaultProgressState = isatty(2);
Likewise.
Show 13 quoted lines
> diff --git a/commit-graph.c b/commit-graph.c
> index fe954ab5f8..b10d47f99a 100644
> --- a/commit-graph.c
> +++ b/commit-graph.c
> @@ -1986,14 +1986,17 @@ int verify_commit_graph(struct repository *r, struct commit_graph *g, int flags)
>  	if (verify_commit_graph_error & ~VERIFY_COMMIT_GRAPH_ERROR_HASH)
>  		return verify_commit_graph_error;
>  
> -	progress = start_progress(_("Verifying commits in commit graph"),
> -				  g->num_commits);
> +	if (flags & COMMIT_GRAPH_PROGRESS)
> +		progress = start_progress(_("Verifying commits in commit graph"),
> +					g->num_commits);
Makes sense.
Show 8 quoted lines
>  	for (i = 0; i < g->num_commits; i++) {
>  		struct commit *graph_commit, *odb_commit;
>  		struct commit_list *graph_parents, *odb_parents;
>  		uint32_t max_generation = 0;
>  
>  		display_progress(progress, i + 1);
> +
>  		hashcpy(cur_oid.hash, g->chunk_oid_lookup + g->hash_len * i);
Drop this change---I do not see a reason for the extra blank line here.
Previous: Garima Singh via GitGitGadgetNext: Eric Sunshine
Message 3 of 13 in “commit-graph: add --[no-]progress to write and verify”
  1. 0/1 commit-graph: add --[no-]progress to write and verifyGarima Singh via GitGitGadget, Aug 20, 2019
  2. 1/1 commit-graph: add --[no-]progress to write and verify.Garima Singh via GitGitGadget, Aug 20, 2019
  3. Junio C HamanoAug 20, 2019
  4. Eric SunshineAug 20, 2019
  5. Junio C HamanoAug 21, 2019
  6. Derrick StoleeAug 20, 2019
  7. 0/1 commit-graph: add --[no-]progress to write and verifyGarima Singh via GitGitGadget, Aug 26, 2019
  8. 1/1 commit-graph: add --[no-]progress to write and verify.Garima Singh via GitGitGadget, Aug 26, 2019
  9. Junio C HamanoSep 12, 2019
  10. SZEDER GáborSep 16, 2019
  11. Derrick StoleeSep 17, 2019
  12. SZEDER GáborSep 17, 2019
  13. Garima SinghSep 10, 2019

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.