]> git.ipfire.org Git - thirdparty/git.git/commitdiff
sequencer: rewrite save_head() in terms of write_message()
authorOswald Buddenhagen <oswald.buddenhagen@gmx.de>
Thu, 23 Mar 2023 16:22:35 +0000 (17:22 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 24 Mar 2023 15:02:05 +0000 (08:02 -0700)
Saves some code duplication.

Signed-off-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c

index 1c96a75b1e9f8bbe9a7a2e40a3d4dd7bb80a9335..3ba28a19c1e38f6c741ee6563bdef7621fc12151 100644 (file)
@@ -3184,25 +3184,7 @@ static int create_seq_dir(struct repository *r)
 
 static int save_head(const char *head)
 {
-       struct lock_file head_lock = LOCK_INIT;
-       struct strbuf buf = STRBUF_INIT;
-       int fd;
-       ssize_t written;
-
-       fd = hold_lock_file_for_update(&head_lock, git_path_head_file(), 0);
-       if (fd < 0)
-               return error_errno(_("could not lock HEAD"));
-       strbuf_addf(&buf, "%s\n", head);
-       written = write_in_full(fd, buf.buf, buf.len);
-       strbuf_release(&buf);
-       if (written < 0) {
-               error_errno(_("could not write to '%s'"), git_path_head_file());
-               rollback_lock_file(&head_lock);
-               return -1;
-       }
-       if (commit_lock_file(&head_lock) < 0)
-               return error(_("failed to finalize '%s'"), git_path_head_file());
-       return 0;
+       return write_message(head, strlen(head), git_path_head_file(), 1);
 }
 
 static int rollback_is_safe(void)