From: "Dana How" <danahow@gmail.com>
To: "Jeff King" <peff@peff.net>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"Linus Torvalds" <torvalds@linux-foundation.org>,
"Alex Riesen" <raa.lkml@gmail.com>,
"Jakub Narebski" <jnareb@gmail.com>,
git@vger.kernel.org, danahow@gmail.com
Subject: Re: [PATCH v0] sha1_name: grok <revision>:./<relative-path>
Date: Wed, 19 Dec 2007 09:40:04 -0800 [thread overview]
Message-ID: <56b7f5510712190940g2a377f4tfe3ca897561ed446@mail.gmail.com> (raw)
In-Reply-To: <20071219150510.GB13942@coredump.intra.peff.net>
On Dec 19, 2007 7:05 AM, Jeff King <peff@peff.net> wrote:
> On Wed, Dec 19, 2007 at 01:40:27PM +0000, Johannes Schindelin wrote:
> > When you are in a deeply-nested directory structure, and just want
> > to reference a blob in a past revision, it can be pretty slow to
> > type out "HEAD~29:/bla/blub/.../that-file".
> >
> > This patch makes "HEAD~29:./that-file" substitute the current prefix
> > for "./". If there is not working directory, the prefix is empty.
>
> I think this is definitely the right approach. Here's a (possibly
> insane) alternative. Revert the change in get_sha1_with_mode and detect
> "./" in get_tree_entry:
>
> [..]
>
> This means that the directory '.' becomes a token replacement for "my
> current path" in tree paths. So if you are in "foo/bar", and you are
> looking at a distance commit where the same content was in
> "baz/foo/bar", you can do:
>
> git show distant:baz/./file
>
> This is probably insane because:
> - this is a fairly unlikely use case
> - get_tree_entry gets called in a lot of places, and I have no idea if
> there will be some crazy fallouts.
>
> So it is probably not worth pursuing, but maybe somebody else can think
> of a good use.
For me, I was only interested in the recognition of ./ at the beginning
of a path just after : (causing a cwd suffix to be inserted there).
If there were additional /./ or /../ patterns in the result, I think it
would be more useful (e.g. for script writers who forgot to run
their file arguments thru something like "readlink -f") for them
to be squashed out (e.g. in Perl:
s#/(\./)+#/#g;
s#/([^/]*[^./][^/]*/\.\./)+#/#g;
). But this is something that could be added later if desired to
the interpretation of all paths, and so seems like a different issue.
Thanks,
--
Dana L. How danahow@gmail.com +1 650 804 5991 cell
next prev parent reply other threads:[~2007-12-19 17:40 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-18 17:33 log/show: relative pathnames do not work in rev:path Alex Riesen
2007-12-18 17:50 ` Jakub Narebski
2007-12-18 20:46 ` Alex Riesen
2007-12-18 20:47 ` [PATCH] Simple support for tree entry specification with relative pathnames Alex Riesen
2007-12-18 20:49 ` [PATCH] Introduce pathexpand: syntax-level chdir into the given cwd Alex Riesen
2007-12-18 20:52 ` [PATCH] Use pathexpand to preparse the relative pathnames in blob references Alex Riesen
2007-12-18 21:06 ` Dana How
2007-12-19 14:37 ` Jeff King
2007-12-18 21:03 ` [PATCH] Simple support for tree entry specification with relative pathnames Dana How
2007-12-18 21:17 ` Alex Riesen
[not found] ` <56b7f5510712181539g27bd4fc9y632ebe74d91b8e82@mail.gmail.com>
2007-12-19 7:36 ` Alex Riesen
2007-12-18 21:24 ` log/show: relative pathnames do not work in rev:path Jakub Narebski
2007-12-18 21:53 ` Linus Torvalds
2007-12-18 22:08 ` Dana How
2007-12-18 22:29 ` Alex Riesen
2007-12-18 22:20 ` Junio C Hamano
2007-12-18 22:30 ` Dana How
2007-12-18 23:02 ` Johannes Schindelin
2007-12-19 20:45 ` Junio C Hamano
2007-12-18 22:20 ` Alex Riesen
2007-12-18 22:43 ` Johannes Schindelin
2007-12-18 23:03 ` Dana How
2007-12-18 23:26 ` Johannes Schindelin
2007-12-19 1:16 ` Linus Torvalds
2007-12-19 1:52 ` Dana How
2007-12-19 7:42 ` Alex Riesen
2007-12-19 11:23 ` Jakub Narebski
2007-12-19 17:21 ` Dana How
2007-12-19 18:47 ` Jakub Narebski
2007-12-19 13:40 ` [PATCH v0] sha1_name: grok <revision>:./<relative-path> Johannes Schindelin
2007-12-19 15:05 ` Jeff King
2007-12-19 17:40 ` Dana How [this message]
2007-12-19 18:09 ` Alex Riesen
2007-12-20 1:07 ` Junio C Hamano
2007-12-20 10:51 ` Johannes Schindelin
2007-12-21 14:17 ` Nguyen Thai Ngoc Duy
2007-12-21 17:50 ` Junio C Hamano
2007-12-21 20:15 ` Nguyen Thai Ngoc Duy
2007-12-22 14:33 ` Johannes Schindelin
2007-12-18 23:11 ` log/show: relative pathnames do not work in rev:path Jakub Narebski
2007-12-18 23:15 ` Dana How
2007-12-18 23:18 ` Junio C Hamano
2007-12-18 23:05 ` Jakub Narebski
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=56b7f5510712190940g2a377f4tfe3ca897561ed446@mail.gmail.com \
--to=danahow@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--cc=peff@peff.net \
--cc=raa.lkml@gmail.com \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).