...and pushurl_nr Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			128 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
Remotes configuration API
 | 
						|
=========================
 | 
						|
 | 
						|
The API in remote.h gives access to the configuration related to
 | 
						|
remotes. It handles all three configuration mechanisms historically
 | 
						|
and currently used by git, and presents the information in a uniform
 | 
						|
fashion. Note that the code also handles plain URLs without any
 | 
						|
configuration, giving them just the default information.
 | 
						|
 | 
						|
struct remote
 | 
						|
-------------
 | 
						|
 | 
						|
`name`::
 | 
						|
 | 
						|
	The user's nickname for the remote
 | 
						|
 | 
						|
`url`::
 | 
						|
 | 
						|
	An array of all of the url_nr URLs configured for the remote
 | 
						|
 | 
						|
`pushurl`::
 | 
						|
 | 
						|
	An array of all of the pushurl_nr push URLs configured for the remote
 | 
						|
 | 
						|
`push`::
 | 
						|
 | 
						|
	 An array of refspecs configured for pushing, with
 | 
						|
	 push_refspec being the literal strings, and push_refspec_nr
 | 
						|
	 being the quantity.
 | 
						|
 | 
						|
`fetch`::
 | 
						|
 | 
						|
	An array of refspecs configured for fetching, with
 | 
						|
	fetch_refspec being the literal strings, and fetch_refspec_nr
 | 
						|
	being the quantity.
 | 
						|
 | 
						|
`fetch_tags`::
 | 
						|
 | 
						|
	The setting for whether to fetch tags (as a separate rule from
 | 
						|
	the configured refspecs); -1 means never to fetch tags, 0
 | 
						|
	means to auto-follow tags based on the default heuristic, 1
 | 
						|
	means to always auto-follow tags, and 2 means to fetch all
 | 
						|
	tags.
 | 
						|
 | 
						|
`receivepack`, `uploadpack`::
 | 
						|
 | 
						|
	The configured helper programs to run on the remote side, for
 | 
						|
	git-native protocols.
 | 
						|
 | 
						|
`http_proxy`::
 | 
						|
 | 
						|
	The proxy to use for curl (http, https, ftp, etc.) URLs.
 | 
						|
 | 
						|
struct remotes can be found by name with remote_get(), and iterated
 | 
						|
through with for_each_remote(). remote_get(NULL) will return the
 | 
						|
default remote, given the current branch and configuration.
 | 
						|
 | 
						|
struct refspec
 | 
						|
--------------
 | 
						|
 | 
						|
A struct refspec holds the parsed interpretation of a refspec. If it
 | 
						|
will force updates (starts with a '+'), force is true. If it is a
 | 
						|
pattern (sides end with '*') pattern is true. src and dest are the two
 | 
						|
sides (if a pattern, only the part outside of the wildcards); if there
 | 
						|
is only one side, it is src, and dst is NULL; if sides exist but are
 | 
						|
empty (i.e., the refspec either starts or ends with ':'), the
 | 
						|
corresponding side is "".
 | 
						|
 | 
						|
This parsing can be done to an array of strings to give an array of
 | 
						|
struct refpsecs with parse_ref_spec().
 | 
						|
 | 
						|
remote_find_tracking(), given a remote and a struct refspec with
 | 
						|
either src or dst filled out, will fill out the other such that the
 | 
						|
result is in the "fetch" specification for the remote (note that this
 | 
						|
evaluates patterns and returns a single result).
 | 
						|
 | 
						|
struct branch
 | 
						|
-------------
 | 
						|
 | 
						|
Note that this may end up moving to branch.h
 | 
						|
 | 
						|
struct branch holds the configuration for a branch. It can be looked
 | 
						|
up with branch_get(name) for "refs/heads/{name}", or with
 | 
						|
branch_get(NULL) for HEAD.
 | 
						|
 | 
						|
It contains:
 | 
						|
 | 
						|
`name`::
 | 
						|
 | 
						|
	The short name of the branch.
 | 
						|
 | 
						|
`refname`::
 | 
						|
 | 
						|
	The full path for the branch ref.
 | 
						|
 | 
						|
`remote_name`::
 | 
						|
 | 
						|
	The name of the remote listed in the configuration.
 | 
						|
 | 
						|
`remote`::
 | 
						|
 | 
						|
	The struct remote for that remote.
 | 
						|
 | 
						|
`merge_name`::
 | 
						|
 | 
						|
	An array of the "merge" lines in the configuration.
 | 
						|
 | 
						|
`merge`::
 | 
						|
 | 
						|
	An array of the struct refspecs used for the merge lines. That
 | 
						|
	is, merge[i]->dst is a local tracking ref which should be
 | 
						|
	merged into this branch by default.
 | 
						|
 | 
						|
`merge_nr`::
 | 
						|
 | 
						|
	The number of merge configurations
 | 
						|
 | 
						|
branch_has_merge_config() returns true if the given branch has merge
 | 
						|
configuration given.
 | 
						|
 | 
						|
Other stuff
 | 
						|
-----------
 | 
						|
 | 
						|
There is other stuff in remote.h that is related, in general, to the
 | 
						|
process of interacting with remotes.
 | 
						|
 | 
						|
(Daniel Barkalow)
 |