Re: [PATCH 2/2] restore: default to HEAD when combining --worktree and --staged

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 1, 2020 at 11:33 AM Junio C Hamano <gitster@xxxxxxxxx> wrote:
> Eric Sunshine <sunshine@xxxxxxxxxxxxxx> writes:
> > [...] This requirement
> > makes it cumbersome to restore a file in both the worktree and the
> > index.
> >
> > However, HEAD is also a reasonably intuitive default restore source when
> > --worktree and --staged are combined. After all, if a user is asking to
> > throw away all local changes to a file (on disk and in the index)
> > without specifying a restore source explicitly -- and the user expects
> > the file to be restored from _somewhere_ -- then it is likely that the
> > user expects them to be restored from HEAD, which is an intuitive and
> > logical place to find a recent unadulterated copy of the file.
>
> I also found that these two paragraphs a bit too long, and by the
> time I finished reading them I forgot that you mentioned that HEAD
> is the default when --staged is given. [...]
>
>   ... This requirement makes it cumbersome to restore a file in
>   both the worktree and the index.
>
>   As we are *not* going to restore the index and the working tree
>   from two different sources, we need to pick a single default
>   when both options are given, and the default used for restoring
>   the index, HEAD, is a reasonable one in this case, too. Another
>   plausible source might be the index, but that does not make any
>   sense to the user who explicitly gave the `--staged` option.
>
>   So, make HEAD the default source when --staged is given, whether
>   --worktree is used at the same time.

Thanks. I was having trouble writing it without being overly
subjective (and using words like "intuitive" and "logical"). I'll
probably drop the "Another plausible..." bit from the rewrite, though.

> > +By default, the restore source for `--worktree` is the index, and the
> > +restore source for `--staged` is `HEAD`. When combining `--worktree` and
> > +`--staged`, the restore source is `HEAD`. `--source` can be used to specify
> > +a different commit as the restore source.
>
> Clear enough, but I wonder if we can simplify it even further.
>
>   By default, if `--staged` is given, the contents are restored
>   from `HEAD`. Otherwise, the contents are restored from the
>   index.
>
> because `--worktree` is the default for the command when neither
> `--staged` or `--worktree` is given.

Makes sense. I wasn't terribly happy with it either.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux