You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.2 KiB
123 lines
3.2 KiB
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 |
|
|
|
`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)
|
|
|