git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 0/3] Add `-p' option to `git-mv', inspired by `mkdir'

From
DSDragan Simic <dsimic@manjaro.org>
Date
Oct 31, 2023, 04:54 UTC
Message-ID
<ffbb04b363938e4a487906134ce4f3c6@manjaro.org>
In-Reply-To
<xmqqlebj4dnt.fsf@gitster.g>
On 2023-10-31 05:30, Junio C Hamano wrote:
Show 23 quoted lines
> Hugo Sales <hugo@hsal.es> writes:
> 
>>> Both are plausible, and "mkdir -p" does not have such a nasty
>>> ambiguity.  That is what makes me unsure about the new feature
>>> (again, either with required "-p" or with implied "-p").
>> 
>> I think the ambiguity is resolved by the inclusion of lack thereof
>> of a trailing `/`.
> 
> The question is not if we can come up with a rule that the user can
> use to disambiguate.  It is if the user will find that such a rule
> is a naturally acceptable way to disambiguate.
> 
> When both of
> 
>     git mv file there/exists/such/a/directory
>     git mv file there/exists/such/a/directory/
> 
> create "there/exists/such/a/directory/file" and removes "file", with
> or without a trailing slash, "you should add a slash if you want a
> directory, and otherwise you should not add a slash" is a rather
> arbitrary rule.  Let's not go there.  I still view the downside more
> grave than having to occasionally do "mkdir".

Please note that the above-described git-mv operation succeeds with no trailing slash if "there/exists/such/a/directory" doesn't already exist as a directory, and creates "there/exists/such/a/directory" as a file. With the trailing slash, the git-mv operation succeeds only if "there/exists/such/a/directory" already exists as a directory, and fails otherwise.

A quite similar ambiguity exists in cp(1) in mv(1), which is also resolved by the use of the trailing slash character. However, I've encountered only one person aware of that disambiguation, and in cp(1) only, but in the "I always include the trailing slash" way, without actually understanding it fully. Maybe I need to encounter more people, I don't know.

Previous: Junio C HamanoNext: Junio C Hamano
Message 9 of 11 in “Add `-p' option to `git-mv', inspired by `mkdir'”
  1. 0/3 Add `-p' option to `git-mv', inspired by `mkdir'Hugo Sales, Oct 9, 2023
  2. 2/3 mv: Add tests for new -p flagHugo Sales, Oct 9, 2023
  3. 3/3 mv: Add documentation for new `-p' flagHugo Sales, Oct 9, 2023
  4. 1/3 mv: Add -p option to create parent directoriesHugo Sales, Oct 9, 2023
  5. Junio C HamanoOct 10, 2023
  6. Junio C HamanoOct 10, 2023
  7. Hugo SalesOct 11, 2023
  8. Junio C HamanoOct 31, 2023
  9. Dragan SimicOct 31, 2023
  10. Junio C HamanoOct 31, 2023
  11. Dragan SimicOct 31, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.