[PATCH 5/6] fetch-pack: move common check and marking together
- From
- Jonathan Tan <jonathantanmy@google.com>
- Date
- Jun 4, 2018, 17:29 UTC
- Message-ID
- <02577402adaf0d109f74e59486d8a23f6ae68663.1527894919.git.jonathantanmy@google.com>
- In-Reply-To
- <cover.1527894919.git.jonathantanmy@google.com>
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@google.com> --- 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