Thread (1 message) 1 message, 1 author, 2021-06-11

Re: [PATCH] remote: initialize values that might not be set

From: Junio C Hamano <hidden>
Date: 2021-06-11 01:41:14

Johannes Schindelin [off-list ref] writes:
You will notice that there are two Trace2 calls in that conditional `abf
== AHEAD_BEHIND_FULL` block.
Yes, the calls use ours/theirs uninitialized.  Is it sensible to
show 0 there, or "(unset)" or its moral equivalent (e.g. "-1")?  Not
showing them indeed is an option, which is what you did below, and
that I find sensible, too.
quoted hunk
Now, what I failed to realize when reviewing this code (and I _bet_ Stolee
was in the same boat when they contributed the patch) is that this version
of `format_tracking_info()` is different from what is in v2.32.0. It is
the version we have in the `microsoft/git` fork, and it has not yet made
it upstream. To be precise, it is this commit:
https://github.com/microsoft/git/commit/91209e591b0398c8334a78001a245807f7eb348a

In light of this, it might make more sense for us to fixup! this commit
thusly:

-- snip --
diff --git a/remote.c b/remote.c
index caed9cbc31b1..cfb7b6bd8d30 100644
--- a/remote.c
+++ b/remote.c
@@ -2110,7 +2110,7 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb,
 	sti = stat_tracking_info(branch, &ours, &theirs, &full_base, 0, abf);
 	trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_flags", abf);
 	trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_result", sti);
-	if (abf == AHEAD_BEHIND_FULL) {
+	if (sti >= 0 && abf == AHEAD_BEHIND_FULL) {
 	    trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_ahead", ours);
 	    trace2_data_intmax("tracking", NULL, "stat_tracking_info/ab_behind", theirs);
 	}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help