Re: [PATCH v3 04/12] sequencer: introduce new commands to reset the revision
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Feb 12, 2018, 19:26 UTC
- Message-ID
- <CAPig+cRVK3r2fSM77=L0zx77oBPyia_8ju79x6WJPT2U5o8e+A@mail.gmail.com>
- In-Reply-To
- <6c1e131d2eb26534869c06b714cc5cc729004a41.1518307771.git.johannes.schindelin@gmx.de>
On Sat, Feb 10, 2018 at 7:10 PM, Johannes Schindelin <johannes.schindelin@gmx.de> wrote:
Show 17 quoted lines
> [...]
> This commit implements the commands to label, and to reset to, given
> revisions. The syntax is:
>
> label <name>
> reset <name>
> [...]
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
> diff --git a/sequencer.c b/sequencer.c
> @@ -1922,6 +1951,151 @@ static int do_exec(const char *command_line)
> +static int safe_append(const char *filename, const char *fmt, ...)
> +{
> + [...]
> + if (write_in_full(fd, buf.buf, buf.len) < 0) {
> + error_errno(_("could not write to '%s'"), filename);
> + rollback_lock_file(&lock);strbuf_release(&buf);
> + return -1;
> + }
> + if (commit_lock_file(&lock) < 0) {
> + rollback_lock_file(&lock);strbuf_release(&buf);
> + return error(_("failed to finalize '%s'"), filename);
> + }
> +strbuf_release(&buf);
Show 9 quoted lines
> + return 0;
> +}
> +
> +static int do_reset(const char *name, int len, struct replay_opts *opts)
> +{
> + [...]
> + unpack_tree_opts.reset = 1;
> +
> + if (read_cache_unmerged())rollback_lock_file(&lock); strbuf_release(&ref_name);
Show 9 quoted lines
> + return error_resolve_conflict(_(action_name(opts)));
> +
> + if (!fill_tree_descriptor(&desc, &oid)) {
> + error(_("failed to find tree of %s"), oid_to_hex(&oid));
> + rollback_lock_file(&lock);
> + free((void *)desc.buffer);
> + strbuf_release(&ref_name);
> + return -1;
> + }