All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sunshine <sunshine@sunshineco.com>
To: Duy Nguyen <pclouds@gmail.com>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH 24/25] worktree move: accept destination as directory
Date: Wed, 11 May 2016 13:32:23 -0400	[thread overview]
Message-ID: <CAPig+cTB8tdPo=wd5UdB84owKJ6c5hj6H9d4_YGDRecBdUE0vA@mail.gmail.com> (raw)
In-Reply-To: <CACsJy8CCAan9ALxULPFeGSU7wsfwbrywRWFr4Hsjx3=PGwosLA@mail.gmail.com>

On Wed, May 11, 2016 at 9:34 AM, Duy Nguyen <pclouds@gmail.com> wrote:
> On Wed, May 11, 2016 at 11:43 AM, Eric Sunshine <sunshine@sunshineco.com> wrote:
>> On Wed, Apr 13, 2016 at 9:15 AM, Nguyễn Thái Ngọc Duy <pclouds@gmail.com> wrote:
>>> +       if (is_directory(dst.buf)) {
>>> +               const char *sep = strrchr(wt->path, '/');
>>
>> Does this need to take Windows into account?
>
> wt->path comes from $GIT_DIR/worktrees/xxx/gitdir, which normally uses
> forward slashes, so we should be safe. We already rely on forward
> slashes in get_linked_worktree()
>
>> Perhaps git_find_last_dir_sep()?
>
> But this is probably a good thing to do anyway, to be more robust in
> future. But it could confuse the reader later on why it's necessary
> when backward slashes can't exist in wt->path. I don't know. Maybe
> just have a comment that backward slashes can't never appear here?

As this path is read from a file git itself creates, and if we know
that it will always contain forward slashes, then I agree that it
could be potentially confusing to later readers to see
git_find_last_dir_sep(). So, keeping it as-is seems correct.

Not sure if it needs a comment. I reviewed this rather quickly since
(I think) you plan on re-rolling it and I'm far behind on my reviews.
Consequently, I didn't check the existing code, and reviewed only
within the context of the patch itself. If the end result is that it's
clear from reading the code that it will always contain forward
slashes, then a comment would be redundant. You could perhaps mention
in the commit message that the slash will always be forward, which
should satisfy future reviewers and readers of the code once its in
the tree.

> There is also a potential problem with find_worktree_by_path(). I was
> counting on real_path() to normalize paths and could simply do
> strcmp_icase (or its new name, fspathcmp). But real_path() does not
> seem to convert unify slashes. I will need to have a closer look at
> this. Hopefully prefix_filename() already makes sure everything uses
> forward slashes. Or maybe we could improve fspathcmp to see '/' and
> '\' the same thing on Windows.

If we look at fspathcmp() as a function which performs whatever magic
is needed to make comparisons work on a platform/filesystem, then it
might indeed be reasonable to enhance it to recognize '/' and '\' as
equivalent (with possible caveats for Windows corner cases).

  reply	other threads:[~2016-05-11 17:32 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-13 13:15 [PATCH 00/25] worktree lock, move, remove and unlock Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 01/25] usage.c: move format processing out of die_errno() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 02/25] usage.c: add sys_error() that prints strerror() automatically Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 03/25] copy.c: import copy_file() from busybox Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 04/25] copy.c: delete unused code in copy_file() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 05/25] copy.c: convert bb_(p)error_msg to (sys_)error Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 06/25] copy.c: style fix Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 07/25] copy.c: convert copy_file() to copy_dir_recursively() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 08/25] completion: support git-worktree Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 09/25] git-worktree.txt: keep subcommand listing in alphabetical order Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 10/25] path.c: add git_common_path() and strbuf_git_common_path() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 11/25] worktree.c: use is_dot_or_dotdot() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 12/25] worktree.c: store "id" instead of "git_dir" Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 13/25] worktree.c: add clear_worktree() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 14/25] worktree.c: add find_worktree_by_path() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 15/25] worktree.c: add is_main_worktree() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 16/25] worktree.c: add validate_worktree() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 17/25] worktree.c: add update_worktree_location() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 18/25] worktree.c: add is_worktree_locked() Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 19/25] worktree: avoid 0{40}, too many zeroes, hard to read Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 20/25] worktree: simplify prefixing paths Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 21/25] worktree: add "lock" command Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 22/25] worktree: add "unlock" command Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 23/25] worktree: add "move" commmand Nguyễn Thái Ngọc Duy
2016-04-13 13:15 ` [PATCH 24/25] worktree move: accept destination as directory Nguyễn Thái Ngọc Duy
2016-05-11  4:43   ` Eric Sunshine
2016-05-11 13:34     ` Duy Nguyen
2016-05-11 17:32       ` Eric Sunshine [this message]
2016-05-11 18:32         ` Johannes Sixt
2016-05-11 21:34           ` Junio C Hamano
2016-05-12  5:58             ` Johannes Sixt
2016-04-13 13:15 ` [PATCH 25/25] worktree: add "remove" command Nguyễn Thái Ngọc Duy
2016-04-14 16:08 ` [PATCH 00/25] worktree lock, move, remove and unlock Junio C Hamano
2016-04-15  0:40   ` Duy Nguyen
2016-04-15  1:21     ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAPig+cTB8tdPo=wd5UdB84owKJ6c5hj6H9d4_YGDRecBdUE0vA@mail.gmail.com' \
    --to=sunshine@sunshineco.com \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.