[PATCH] Fix revert --abort on Windows
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Nov 23, 2011, 08:49 UTC
- Message-ID
- <4ECCB3A2.5030102@viscovery.net>
- In-Reply-To
- <20111123012721.GA14217@elie.hsd1.il.comcast.net>
From: Johannes Sixt <j6t@kdbg.org>
On Windows, it is not possible to rename or remove a directory that has open files. 'revert --abort' renamed .git/sequencer when it still had .git/sequencer/head open. Close the file as early as possible to allow the rename operation on Windows.
Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- I guess it's too late to squash this in. ;)
-- Hannes
builtin/revert.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/revert.c b/builtin/revert.c index 0c61668..5dedb51 100644 --- a/builtin/revert.c +++ b/builtin/revert.c @@ -931,8 +931,10 @@ static int sequencer_rollback(struct replay_opts *opts) if (strbuf_getline(&buf, f, '\n')) { error(_("cannot read %s: %s"), filename, ferror(f) ? strerror(errno) : _("unexpected end of file")); + fclose(f); goto fail; } + fclose(f); if (get_sha1_hex(buf.buf, sha1) || buf.buf[40] != '\0') { error(_("stored pre-cherry-pick HEAD file '%s' is corrupt"), filename); @@ -941,11 +943,9 @@ static int sequencer_rollback(struct replay_opts *opts) if (reset_for_rollback(sha1)) goto fail; strbuf_release(&buf); - fclose(f); return 0; fail: strbuf_release(&buf); - fclose(f); return -1; }
-- 1.7.8.rc3.1164.gba869.dirty