From: Stefan Beller <sbel...@google.com>

Instead, compute the value when it is needed.

Signed-off-by: Stefan Beller <sbel...@google.com>
Edited-by: Michael Haggerty <mhag...@alum.mit.edu>
Signed-off-by: Michael Haggerty <mhag...@alum.mit.edu>
---
 refs.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/refs.c b/refs.c
index 3ed9ea6..f2e9883 100644
--- a/refs.c
+++ b/refs.c
@@ -12,7 +12,6 @@ struct ref_lock {
        struct lock_file *lk;
        unsigned char old_sha1[20];
        int lock_fd;
-       int force_write;
 };
 
 /*
@@ -2318,8 +2317,6 @@ static struct ref_lock *lock_ref_sha1_basic(const char 
*refname,
        lock->ref_name = xstrdup(refname);
        lock->orig_ref_name = xstrdup(orig_refname);
        ref_file = git_path("%s", refname);
-       if ((flags & REF_NODEREF) && (type & REF_ISSYMREF))
-               lock->force_write = 1;
 
  retry:
        switch (safe_create_leading_directories(ref_file)) {
@@ -3787,8 +3784,13 @@ int ref_transaction_commit(struct ref_transaction 
*transaction,
                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)) 
{
+                       if (!((update->type & REF_ISSYMREF)
+                             && (update->flags & REF_NODEREF))
+                           && !hashcmp(update->lock->old_sha1, 
update->new_sha1)) {
+                               /*
+                                * The reference already has the desired
+                                * value, so we don't need to write it.
+                                */
                                unlock_ref(update->lock);
                                update->lock = NULL;
                        } else if (write_ref_sha1(update->lock, 
update->new_sha1,
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to