From: Andrew Sayers <andrew-git@pileofstuff.org>
To: Thomas Rast <trast@student.ethz.ch>
Cc: "Shawn O. Pearce" <spearce@spearce.org>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] bash completion: Support "unpushed commits" warnings in __git_ps1
Date: Sun, 06 Jun 2010 21:49:03 +0100 [thread overview]
Message-ID: <4C0C09BF.4070503@pileofstuff.org> (raw)
In-Reply-To: <201006062014.59386.trast@student.ethz.ch>
On 06/06/10 19:14, Thomas Rast wrote:
>
> At least the svn/git setting should definitely be configurable through
> git-config, so that it becomes per-repo configurable. Also, you could
> try to trigger the svn mode by default if a svn-remote.svn.url exists.
>
I'm not averse to adding a config setting, or to exploring the
"--no-metadata" case. I am concerned about the strict time constraints
for code called in a command prompt though. For instance, calling
git-svn could easily make your prompt take over half a second to respond
because of all the Perl you'd have to compile. I'd also want a few
real-world use cases and a nod from Shawn before diverging any further
from the existing GIT_PS1_FOO= convention.
Having said all that, I'm quite happy to resubmit with
GIT_PS1_SHOWUNPUSHED=svn treated like GIT_PS1_SHOWUNPUSHED=1 when
$GIT_DIR/svn doesn't exist.
> How about starting with
>
> git log -1 --first-parent --grep="^git-svn-id: $remote_branch"
>
> which should be faster and is also closer to the truth. It still
> doesn't work if the repo was cloned with --no-metadata. Doing it
> right probably would require a new informational command in git-svn
> that reports the branch name.
Good idea about "-1" and "--grep", but multi-parent commits aren't
compatible with SVN, so I don't see how "--first-parent" is useful here?
In fact I'm tempted to look for merge commits and print a big warning
when one is found.
I don't see how to actually split out the branch name without calling
sed or using one of the disallowed ${} constructs. So I compared the
following commands on my PC (2.1 GHz dual-core Athlon) using a
repository with 100 empty commits between HEAD and a git-svn-id:
time git log | \
sed -ne "/^ git-svn-id: / { s/^ git-svn-id: "\
"$remote_branch\/\([^@]*\).*/\1/p ; q }"
time git log -1 --grep="^git-svn-id: $remote_branch" | \
sed -ne "s/^ git-svn-id: $remote_branch\/\([^@]*\).*/\1/p"
The former averaged about 0.017 seconds, whereas the latter averaged
about 0.015. So when I resubmit this patch, I'll include your version
if merge commits are somehow useful to SVNers, or a merge warning otherwise.
Incidentally, a quick bit of etiquette - would you rather I submitted an
RFC patch or two with these changes, or wait until the discussion has
reached a more stable point?
- Andrew
next prev parent reply other threads:[~2010-06-06 20:49 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-06 0:05 [PATCH] bash completion: Support "unpushed commits" warnings in __git_ps1 Andrew Sayers
2010-06-06 18:14 ` Thomas Rast
2010-06-06 20:49 ` Andrew Sayers [this message]
2010-06-06 21:07 ` Jakub Narebski
2010-06-06 22:19 ` Andrew Sayers
2010-06-07 7:42 ` Thomas Rast
2010-06-08 21:36 ` [RFC/PATCHv2] bash completion: Support "divergence from upstream" " Andrew Sayers
2010-06-09 8:21 ` Peter Kjellerstedt
2010-06-09 8:45 ` John Tapsell
2010-06-09 21:02 ` Steven Michalske
2010-06-09 9:17 ` Michael J Gruber
2010-06-09 20:48 ` Michael J Gruber
2010-06-09 21:03 ` Michael J Gruber
2010-06-10 11:47 ` [PATCH 0/2] " Thomas Rast
2010-06-10 11:47 ` [PATCH 1/2] rev-list: introduce --count option Thomas Rast
2010-06-10 11:47 ` [PATCH 2/2] bash completion: Support "divergence from upstream" warnings in __git_ps1 Thomas Rast
2010-06-12 0:00 ` SZEDER Gábor
2010-06-12 10:03 ` [PATCH v2 0/2] " Thomas Rast
2010-06-12 9:59 ` [PATCH v2 1/2] rev-list: introduce --count option Thomas Rast
2010-06-12 9:59 ` [PATCH v2 2/2] bash completion: Support "divergence from upstream" warnings in __git_ps1 Thomas Rast
2010-06-14 3:13 ` Junio C Hamano
2010-06-14 7:44 ` Thomas Rast
2010-06-14 12:36 ` SZEDER Gábor
2010-06-12 10:11 ` vger doesn't like UTF-8 from send-email Thomas Rast
2010-06-12 15:06 ` [PATCH] send-email: ask about and declare 8bit mails Thomas Rast
2010-06-12 16:28 ` Junio C Hamano
2010-06-13 15:09 ` Thomas Rast
2010-06-13 4:15 ` vger doesn't like UTF-8 from send-email Michael Witten
2010-06-14 11:57 ` Erik Faye-Lund
2010-06-12 20:50 ` [PATCH] bash completion: Support "divergence from upstream" messages in __git_ps1 Andrew Sayers
2010-06-14 7:42 ` Thomas Rast
2010-06-15 21:50 ` [PATCHv4] " Andrew Sayers
2010-06-16 19:05 ` Junio C Hamano
2010-06-16 19:11 ` Thomas Rast
2010-06-17 21:31 ` [PATCHv5 0/2] " Andrew Sayers
2010-06-18 16:10 ` Junio C Hamano
2010-06-18 21:02 ` Andrew Sayers
2010-06-17 21:32 ` [PATCHv5 1/2] " Andrew Sayers
2010-06-17 21:32 ` [PATCHv5 2/2] bash-completion: Fix __git_ps1 to work with "set -u" Andrew Sayers
2010-06-10 13:31 ` [PATCH 0/2] bash completion: Support "divergence from upstream" warnings in __git_ps1 Michael J Gruber
2010-06-10 12:03 ` [RFC/PATCHv2] " Thomas Rast
2010-06-06 20:12 ` [PATCH] bash completion: Support "unpushed commits" " Thomas Rast
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=4C0C09BF.4070503@pileofstuff.org \
--to=andrew-git@pileofstuff.org \
--cc=git@vger.kernel.org \
--cc=spearce@spearce.org \
--cc=trast@student.ethz.ch \
/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.