Re: [PATCH 1/3] checkout.c: add strict usage of -- before file_path
- From
Duy Nguyen <pclouds@gmail.com>
- Date
- May 13, 2018, 06:03 UTC
- Message-ID
- <CACsJy8DZ1QvjO+JdbB76TOLtB2wp4Ya+CgsTyD1oz2Y+ZdKdYQ@mail.gmail.com>
- In-Reply-To
- <1526178214-30956-1-git-send-email-danniercl@gmail.com>
On Sun, May 13, 2018 at 4:23 AM, Dannier Castro L <danniercl@gmail.com> wrote:
Show 16 quoted lines
> Currently, <checkout> is a complex command able to handle both > branches and files without any distintion other than their names, > taking into account that depending on the type (branch or file), > the functionality is completely different, the easier example: > > $ git checkout <branch> # Switch from current branch to <branch>. > $ git checkout <file> # Restore <file> from HEAD, discarding > # changes if it's necessary. > $ git checkout -- <file> # The same as the last one, only with an > # useless '--'. > > For GIT new users, this complicated versatility of <checkout> could > be very confused, also considering that actually the flag '--' is > completely useless (added or not, there is not any difference for > this command), when the same program messages promote the use of > this flag.
I would like an option to revert back to current behavior. I'm not a new user. I know what I'm doing. Please don't make me type more.
And '--" is not completely useless. If you have <file> and <branch> with the same name, you have to give "--" to to tell git what the first argument means.
Show 10 quoted lines
> Regarding the <checkout>'s power to overwrite any file, discarding > changes if they exist without some way of recovering them, the > solution propuses that the usage of '--' is strict before to > specify the file(s) path(s) for any <checkout> command (including > all types of flags), as a "defense barrier" to make sure about > user's knowledge and intension running <checkout>. > > The solution consists in detect '--' into command args, allowing > the discard of changes and considering the following names as > file paths, otherwise, they are branch names.
-- Duy