On 02/11/2015 12:12 AM, Stefan Beller wrote: > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > > Notes: > When this patch series is applied, you only have 3 occurences of force_write. > > 1. In the struct as an undocumented int. > 2. In lock_ref_sha1_basic: > if ((flags & REF_NODEREF) && (type & REF_ISSYMREF)) > lock->force_write = 1; > 3: In ref_transaction_commit: > /* Perform updates first so live commits remain referenced */ > for (i = 0; i < n; i++) { > struct ref_update *update = updates[i]; > > if (!is_null_sha1(update->new_sha1)) { > if (!update->lock->force_write && > !hashcmp(update->lock->old_sha1, update->new_sha1)) { > unlock_ref(update->lock); > update->lock = NULL; > } else if (write_ref_sha1(update->lock, update->new_sha1, > update->msg)) { > update->lock = NULL; /* freed by write_ref_sha1 */ > strbuf_addf(err, "Cannot update the ref '%s'.", > update->refname); > ret = TRANSACTION_GENERIC_ERROR; > goto cleanup; > } else { > /* freed by write_ref_sha1(): */ > update->lock = NULL; > } > } > } > > So maybe we can solve it even more elegant by omiting the first 2 occurences and > directly check the type and flags in ref_transaction_commit. > > Maybe this makes sense to go on top of that series? > [...] This is a good idea; I'll add it in the re-roll. Michael -- Michael Haggerty mhagger@xxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html