Subject: Re: [PATCH] bash completion: Support "unpushed commits" warnings in __git_ps1

From: Thomas Rast <[email-masked]>
Date: Sun, 6 Jun 2010 20:14:59 +0200

Andrew Sayers wrote:
> People working in small teams sometimes forget to push their changes, causing
> general confusion.  A gentle reminder in the command prompt should help.

I think this is a good idea but...

> +#       If you would like to see if there're unpushed commits, then
> +#       you can set GIT_PS1_SHOWUNPUSHED to a nonempty value. If
> +#       there're unpushed commits, then a '!' will be shown next to
> +#       the branch name.  Setting GIT_PS1_SHOWUNPUSHED=svn will look
> +#       for unpushed git-svn commits.

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.

> +			      upstream=$( git log | sed -ne "/^    git-svn-id: / { s/^    git-svn-id: $remote_branch\/\([^@]*\).*/\1/p ; q }" )

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.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch