mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Function for updating refs.
A function intended to be called from builtins updating refs by locking them before write, specially those that came from scripts using "git update-ref". [jc: with minor fixups] Signed-off-by: Carlos Rica <jasampler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
1e61b7640d
commit
3d9f037c60
12
send-pack.c
12
send-pack.c
@@ -307,20 +307,14 @@ static int send_pack(int in, int out, struct remote *remote, int nr_refspec, cha
|
||||
rs.src = ref->name;
|
||||
rs.dst = NULL;
|
||||
if (!remote_find_tracking(remote, &rs)) {
|
||||
struct ref_lock *lock;
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user