 056724c624
			
		
	
	056724c624
	
	
	
		
			
			...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)
 |