This enables the calculation of was_common and the invocation to mark_common() to be abstracted into a single call to the negotiator API (to be introduced in a subsequent patch). Signed-off-by: Jonathan Tan <jonathantanmy@xxxxxxxxxx> --- fetch-pack.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fetch-pack.c b/fetch-pack.c index ec92929bc..54dd3feb8 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -499,11 +499,14 @@ static int find_common(struct data *data, struct fetch_pack_args *args, case ACK_continue: { struct commit *commit = lookup_commit(result_oid); + int was_common; if (!commit) die(_("invalid commit %s"), oid_to_hex(result_oid)); + was_common = commit->object.flags & COMMON; + mark_common(data, commit, 0, 1); if (args->stateless_rpc && ack == ACK_common - && !(commit->object.flags & COMMON)) { + && !was_common) { /* We need to replay the have for this object * on the next RPC request so the peer knows * it is in common with us. @@ -520,7 +523,6 @@ static int find_common(struct data *data, struct fetch_pack_args *args, } else if (!args->stateless_rpc || ack != ACK_common) in_vain = 0; - mark_common(data, commit, 0, 1); retval = 0; got_continue = 1; if (ack == ACK_ready) -- 2.17.0.768.g1526ddbba1.dirty