Thread (8 messages) flat view 8 messages, 5 authors, 2016-06-15

Re: I'd like to be able to know what git-push will do

From: Jeff King <hidden>
Date: 2016-06-15 22:46:58

On Thu, Jun 18, 2009 at 05:28:03PM -0400, Larry D'Anna wrote:
I'd like to be able to call git-push --dry-run and process the result
from a perl script, but there's a snag: what does "foobar -> foobar"
mean?  foobar could be a tag or a branch.  In fact, it could be a
branch on on side and a tag on the other!
Yeah, that output is really meant for human consumption.
I've tried duplicating the refspec processing in the perl script, but
this approach is highly sub-optimal because the refspec parsing and
matching is so complicated.  I would wind up duplicating a lot of
functionality, and every time it changed in git my script would become
broken.
Agreed.
Would you accept a patch that changes the behavior of git-push so that
instead of

  $ git-push --dry-run  -v origin :
  Pushing to ~/repos/bin
  To ~/repos/bin
   = [up to date]      master -> master
  Everything up-to-date
  
It would print the full names like this (only if -v is used)

  $ git-push --dry-run  -v origin :
  Pushing to ~/repos/bin
  To ~/repos/bin
   = [up to date]      refs/heads/master -> refs/heads/master
  Everything up-to-date

Or, if you don't like changing the behavior of -v, would you accept a
patch with a new option (perhaps --symbolic-full-name) that caused
git-push to behave this way?
I think it would have to be a new option, as "-v" is really about
something orthogonal. However, I actually think you are better off
making a whole new output format for porcelain scripts to read. As I
said, the current output is for human consumption, and I wouldn't rule
out the possibility of it changing in the future (and it won't receive
the same sort of deprecation treatment that an interface created for
scripts would get).

In other words, something like:

  $ git push --dry-run --porcelain origin :
  =refs/heads/master:refs/heads/master

(the format is totally off the top of my head -- I haven't thought too
long about what you might want to have in it).

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help