From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Konstantin Kharlamov <hi-angel@yandex.ru>
Cc: git@vger.kernel.org
Subject: Re: Getting path to a file from arbitrary project directory
Date: Fri, 23 Jun 2023 11:45:25 +0200 [thread overview]
Message-ID: <20230623094525.GA4204@szeder.dev> (raw)
In-Reply-To: <21c8396c1441dd4f74cd2097ac970a2033b81da4.camel@yandex.ru>
On Fri, Jun 23, 2023 at 11:52:58AM +0300, Konstantin Kharlamov wrote:
> (please keep me CC'ed, I'm not subscribed)
>
> Hello! I'm trying to solve a simple problem: while I am inside an arbitrary project directory, I want to get a path to a file `filename.c` located elsewhere in the same project.¹
>
> One way to implement that is with a command chain:
>
> cd $(git rev-parse --show-toplevel) && git ls-files --full-name -- "*filename.c"
>
> But it is pretty clunky, because that requires you to modify state (changing current directory). It may not matter though, but I'm just wondering if there's a better way to do that, something like `git ls-files --top -- …`, or anything like that? Haven't found nothing similar in `man git-ls-files`.
When a command expects pathspecs as arguments, then in general the
leading ':/' magic means the root of the working tree (not sure where
it is documented, though), i.e. you could try this:
git ls-files --full-name ':/*filename.c'
> As a separate note, this doesn't work:
>
> ls-files --full-name -- $(git rev-parse --show-toplevel)"*filename.c"
>
> 1: the usecase is I have a Emacs helper function to pick up a an aribtrarily mangled path to a file in the project from the primary clipboard and open that file. It's often "mangled", because gdb prints it with `../`, then logs print no path whatsoever, just a filename… So it's generally useful to have.
next prev parent reply other threads:[~2023-06-23 9:45 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-23 8:52 Getting path to a file from arbitrary project directory Konstantin Kharlamov
2023-06-23 9:45 ` SZEDER Gábor [this message]
2023-06-23 10:02 ` Konstantin Kharlamov
2023-06-23 9:52 ` Junio C Hamano
2023-06-23 10:02 ` Konstantin Kharlamov
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=20230623094525.GA4204@szeder.dev \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=hi-angel@yandex.ru \
/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.