diff --git a/send-pack.c b/send-pack.c
index fecbda981b7c6c2504abdd7afb94e35e73e18cce..f74e66a8babd427ecd715c901d3d1680f1c5f13a 100644 (file)
--- a/send-pack.c
+++ b/send-pack.c
@@ -305,22 +305,16 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha
if (remote) {
struct refspec rs;
rs.src = ref->name;
if (remote) {
struct refspec rs;
rs.src = ref->name;
- remote_find_tracking(remote, &rs);
- if (rs.dst) {
- struct ref_lock *lock;
+ rs.dst = NULL;
+ if (!remote_find_tracking(remote, &rs)) {
fprintf(stderr, " Also local %s\n", rs.dst);
if (will_delete_ref) {
if (delete_ref(rs.dst, NULL)) {
error("Failed to delete");
}
fprintf(stderr, " Also local %s\n", rs.dst);
if (will_delete_ref) {
if (delete_ref(rs.dst, NULL)) {
error("Failed to delete");
}
- } else {
- lock = lock_any_ref_for_update(rs.dst, NULL, 0);
- if (!lock)
- error("Failed to lock");
- else
- write_ref_sha1(lock, ref->new_sha1,
- "update by push");
- }
+ } else
+ update_ref("update by push", rs.dst,
+ ref->new_sha1, NULL, 0, 0);
free(rs.dst);
}
}
free(rs.dst);
}
}