• J Wyman's avatar
    for-each-ref: let upstream/push report the remote ref name · 9700fae5
    J Wyman authored
    There are times when scripts want to know not only the name of the
    push branch on the remote, but also the name of the branch as known
    by the remote repository.
    An example of this is when a tool wants to push to the very same branch
    from which it would pull automatically, i.e. the `<remote>` and the `<to>`
    in `git push <remote> <from>:<to>` would be provided by
    `%(upstream:remotename)` and `%(upstream:remoteref)`, respectively.
    This patch offers the new suffix :remoteref for the `upstream` and `push`
    atoms, allowing to show exactly that. Example:
    	$ cat .git/config
    	[remote "origin"]
    		url = https://where.do.we.come/from
    		fetch = refs/heads/*:refs/remote/origin/*
    	[branch "master"]
    		remote = origin
    		merge = refs/heads/master
    	[branch "develop/with/topics"]
    		remote = origin
    		merge = refs/heads/develop/with/topics
    	$ git for-each-ref \
    		--format='%(push) %(push:remoteref)' \
    	refs/remotes/origin/master refs/heads/master
    	refs/remotes/origin/develop/with/topics refs/heads/develop/with/topics
    Signed-off-by: default avatarJ Wyman <jwyman@microsoft.com>
    Signed-off-by: Johannes Schindelin's avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
remote.h 8.25 KB