Skip to content
  • J Wyman's avatar
    for-each-ref: let upstream/push report the remote ref name · 9700fae5
    J Wyman authored and Junio C Hamano's avatar Junio C Hamano committed
    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/heads
    	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: default avatarJohannes Schindelin <johannes.schindelin@gmx.de>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    9700fae5