[prev in list] [next in list] [prev in thread] [next in thread]
List: git
Subject: Re: [PATCH v2 8/8] reflog expire: cover reflog from all worktrees
From: Eric Sunshine <sunshine () sunshineco ! com>
Date: 2018-09-30 5:36:21
Message-ID: CAPig+cQBiXRvzf6skmmyVap-6fLEbmVRGNBQqD4H-HfAPampjA () mail ! gmail ! com
[Download RAW message or body]
On Sat, Sep 29, 2018 at 3:11 PM Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> diff --git a/Documentation/git-reflog.txt b/Documentation/git-reflog.txt
> @@ -72,6 +72,11 @@ Options for `expire`
> +--single-worktree::
> + By default when `--all` is specified, reflogs from all working
> + trees are processed. This option limits the processing to reflogs
> + from the current working tree only.
Bikeshedding: I wonder if this should be named "--this-worktree" or
"--this-worktree-only" or if it should somehow be orthogonal to --all
rather than modifying it. (Genuine questions. I don't have the
answers.)
> diff --git a/builtin/reflog.c b/builtin/reflog.c
> @@ -577,10 +585,18 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix)
> if (do_all) {
> struct collect_reflog_cb collected;
> + struct worktree **worktrees, **p;
> int i;
>
> memset(&collected, 0, sizeof(collected));
> - for_each_reflog(collect_reflog, &collected);
> + worktrees = get_worktrees(0);
> + for (p = worktrees; *p; p++) {
> + if (!all_worktrees && !(*p)->is_current)
> + continue;
> + collected.wt = *p;
> + for_each_reflog(collect_reflog, &collected);
> + }
> + free_worktrees(worktrees);
Should this have a test in the test suite?
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic