I'd like to be able to know what git-push will do
From: Larry D'Anna <hidden>
Date: 2016-06-15 22:46:58
I previously sent this to Junio, but I think I should have just sent it to the
list.
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!
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.
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?
Once I know what the user interface should be (-v or --symbolic-full-name or
whatever) I'll post a patch.
Thanks!
--larry