Thread (63 messages) 63 messages, 2 authors, 2016-09-09

Re: [PATCH 10/15] sequencer: lib'ify save_head()

From: Johannes Schindelin <hidden>
Date: 2016-08-24 16:00:14

Hi Eric,

On Wed, 24 Aug 2016, Eric Sunshine wrote:
On Tue, Aug 23, 2016 at 12:07 PM, Johannes Schindelin
[off-list ref] wrote:
quoted
To be truly useful, the sequencer should never die() but always return
an error.

Signed-off-by: Johannes Schindelin <redacted>
---
diff --git a/sequencer.c b/sequencer.c
@@ -844,18 +844,22 @@ static int create_seq_dir(void)
-static void save_head(const char *head)
+static int save_head(const char *head)
 {
        static struct lock_file head_lock;
        struct strbuf buf = STRBUF_INIT;
        int fd;

-       fd = hold_lock_file_for_update(&head_lock, git_path_head_file(), LOCK_DIE_ON_ERROR);
+       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);
        if (write_in_full(fd, buf.buf, buf.len) < 0)
-               die_errno(_("Could not write to %s"), git_path_head_file());
+               return error_errno(_("Could not write to %s"),
+                                  git_path_head_file());
Does this need to rollback the lockfile before returning?
Again, this is handled by the atexit() handler, as before.

Thanks!
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help