blob: fb5bc05ad3749576b6a677625d1cc64b4cd38136 [file] [log] [blame]
Junio C Hamano6d559fc2008-02-20 10:44:261<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4<head>
5<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Junio C Hamano4604fe52008-09-19 06:37:106<meta name="generator" content="AsciiDoc 8.2.5" />
Junio C Hamano6d559fc2008-02-20 10:44:267<style type="text/css">
8/* Debug borders */
9p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
10/*
11 border: 1px solid red;
12*/
13}
14
15body {
16 margin: 1em 5% 1em 5%;
17}
18
Junio C Hamano4604fe52008-09-19 06:37:1019a {
20 color: blue;
21 text-decoration: underline;
22}
23a:visited {
24 color: fuchsia;
25}
Junio C Hamano6d559fc2008-02-20 10:44:2626
27em {
28 font-style: italic;
29}
30
31strong {
32 font-weight: bold;
33}
34
35tt {
36 color: navy;
37}
38
39h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
45}
46
Junio C Hamano4604fe52008-09-19 06:37:1047h1, h2, h3 {
Junio C Hamano6d559fc2008-02-20 10:44:2648 border-bottom: 2px solid silver;
49}
50h2 {
Junio C Hamano6d559fc2008-02-20 10:44:2651 padding-top: 0.5em;
52}
Junio C Hamano4604fe52008-09-19 06:37:1053h3 {
54 float: left;
55}
56h3 + * {
57 clear: left;
58}
Junio C Hamano6d559fc2008-02-20 10:44:2659
60div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
63}
64
65hr {
66 border: 1px solid silver;
67}
68
69p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
72}
73
74pre {
75 padding: 0;
76 margin: 0;
77}
78
79span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
Junio C Hamano4604fe52008-09-19 06:37:1083 font-size: 1.1em;
Junio C Hamano6d559fc2008-02-20 10:44:2684}
85span#email {
86}
87span#revision {
88 font-family: sans-serif;
89}
90
91div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
97}
98div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
101}
102div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
105}
106
107div#preamble,
108div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
114}
115div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
118}
119
120div.content { /* Block element content. */
121 padding: 0;
122}
123
124/* Block element titles. */
125div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
131}
132div.title + * {
133 margin-top: 0;
134}
135
136td div.title:first-child {
137 margin-top: 0.0em;
138}
139div.content div.title:first-child {
140 margin-top: 0.0em;
141}
142div.content + div.title {
143 margin-top: 0.0em;
144}
145
146div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
150}
151
Junio C Hamano4604fe52008-09-19 06:37:10152div.listingblock {
153 margin-right: 0%;
154}
Junio C Hamano6d559fc2008-02-20 10:44:26155div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
159}
160
161div.quoteblock > div.content {
162 padding-left: 2.0em;
163}
Junio C Hamano4604fe52008-09-19 06:37:10164
165div.attribution {
Junio C Hamano6d559fc2008-02-20 10:44:26166 text-align: right;
167}
Junio C Hamano4604fe52008-09-19 06:37:10168div.verseblock + div.attribution {
169 text-align: left;
170}
Junio C Hamano6d559fc2008-02-20 10:44:26171
172div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
179}
180div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
183}
184
185div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
188}
189
190div.verseblock div.content {
191 white-space: pre;
192}
193
194div.imageblock div.content { padding-left: 0; }
195div.imageblock img { border: 1px solid silver; }
196span.image img { border-style: none; }
197
198dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
201}
202dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
206}
207dd > *:first-child {
208 margin-top: 0;
209}
210
211ul, ol {
212 list-style-position: outside;
213}
Junio C Hamano4604fe52008-09-19 06:37:10214div.olist2 ol {
Junio C Hamano6d559fc2008-02-20 10:44:26215 list-style-type: lower-alpha;
216}
217
218div.tableblock > table {
Junio C Hamano4604fe52008-09-19 06:37:10219 border: 3px solid #527bbd;
Junio C Hamano6d559fc2008-02-20 10:44:26220}
221thead {
222 font-family: sans-serif;
223 font-weight: bold;
224}
225tfoot {
226 font-weight: bold;
227}
228
229div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
232}
Junio C Hamano4604fe52008-09-19 06:37:10233div.hlist td {
234 padding-bottom: 5px;
235}
Junio C Hamano6d559fc2008-02-20 10:44:26236td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
240}
241td.hlist2 {
242 vertical-align: top;
243}
244
245@media print {
246 div#footer-badges { display: none; }
247}
Junio C Hamano4604fe52008-09-19 06:37:10248
249div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
256}
257
258div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
261}
262div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
265}
266div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
269}
270div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
273}
Junio C Hamano6d559fc2008-02-20 10:44:26274/* Workarounds for IE6's broken and incomplete CSS2. */
275
276div.sidebar-content {
277 background: #ffffee;
278 border: 1px solid silver;
279 padding: 0.5em;
280}
281div.sidebar-title, div.image-title {
282 font-family: sans-serif;
283 font-weight: bold;
284 margin-top: 0.0em;
285 margin-bottom: 0.5em;
286}
287
288div.listingblock div.content {
289 border: 1px solid silver;
290 background: #f4f4f4;
291 padding: 0.5em;
292}
293
294div.quoteblock-content {
295 padding-left: 2.0em;
296}
297
298div.exampleblock-content {
299 border-left: 2px solid silver;
300 padding-left: 0.5em;
301}
Junio C Hamano4604fe52008-09-19 06:37:10302
303/* IE6 sets dynamically generated links as visited. */
304div#toc a:visited { color: blue; }
Junio C Hamano6d559fc2008-02-20 10:44:26305</style>
306<title>Remotes configuration API</title>
307</head>
308<body>
309<div id="header">
310<h1>Remotes configuration API</h1>
311</div>
312<div id="preamble">
313<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10314<div class="para"><p>The API in remote.h gives access to the configuration related to
Junio C Hamano6d559fc2008-02-20 10:44:26315remotes. It handles all three configuration mechanisms historically
316and currently used by git, and presents the information in a uniform
317fashion. Note that the code also handles plain URLs without any
Junio C Hamano4604fe52008-09-19 06:37:10318configuration, giving them just the default information.</p></div>
Junio C Hamano6d559fc2008-02-20 10:44:26319</div>
320</div>
Junio C Hamano4604fe52008-09-19 06:37:10321<h2 id="_struct_remote">struct remote</h2>
Junio C Hamano6d559fc2008-02-20 10:44:26322<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10323<div class="vlist"><dl>
Junio C Hamano6d559fc2008-02-20 10:44:26324<dt>
325<tt>name</tt>
326</dt>
327<dd>
328<p>
329 The user's nickname for the remote
330</p>
331</dd>
332<dt>
333<tt>url</tt>
334</dt>
335<dd>
336<p>
337 An array of all of the url_nr URLs configured for the remote
338</p>
339</dd>
340<dt>
Junio C Hamano0e88f3e2009-06-21 08:03:25341<tt>pushurl</tt>
342</dt>
343<dd>
344<p>
345 An array of all of the pushurl_nr push URLs configured for the remote
346</p>
347</dd>
348<dt>
Junio C Hamano6d559fc2008-02-20 10:44:26349<tt>push</tt>
350</dt>
351<dd>
352<p>
353 An array of refspecs configured for pushing, with
354 push_refspec being the literal strings, and push_refspec_nr
355 being the quantity.
356</p>
357</dd>
358<dt>
359<tt>fetch</tt>
360</dt>
361<dd>
362<p>
363 An array of refspecs configured for fetching, with
364 fetch_refspec being the literal strings, and fetch_refspec_nr
365 being the quantity.
366</p>
367</dd>
368<dt>
369<tt>fetch_tags</tt>
370</dt>
371<dd>
372<p>
373 The setting for whether to fetch tags (as a separate rule from
374 the configured refspecs); -1 means never to fetch tags, 0
375 means to auto-follow tags based on the default heuristic, 1
376 means to always auto-follow tags, and 2 means to fetch all
377 tags.
378</p>
379</dd>
380<dt>
381<tt>receivepack</tt>, <tt>uploadpack</tt>
382</dt>
383<dd>
384<p>
385 The configured helper programs to run on the remote side, for
386 git-native protocols.
387</p>
388</dd>
389<dt>
390<tt>http_proxy</tt>
391</dt>
392<dd>
393<p>
394 The proxy to use for curl (http, https, ftp, etc.) URLs.
395</p>
396</dd>
Junio C Hamano4604fe52008-09-19 06:37:10397</dl></div>
398<div class="para"><p>struct remotes can be found by name with remote_get(), and iterated
Junio C Hamano6d559fc2008-02-20 10:44:26399through with for_each_remote(). remote_get(NULL) will return the
Junio C Hamano4604fe52008-09-19 06:37:10400default remote, given the current branch and configuration.</p></div>
Junio C Hamano6d559fc2008-02-20 10:44:26401</div>
Junio C Hamano4604fe52008-09-19 06:37:10402<h2 id="_struct_refspec">struct refspec</h2>
Junio C Hamano6d559fc2008-02-20 10:44:26403<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10404<div class="para"><p>A struct refspec holds the parsed interpretation of a refspec. If it
Junio C Hamano6d559fc2008-02-20 10:44:26405will force updates (starts with a <em>+</em>), force is true. If it is a
406pattern (sides end with <em>*</em>) pattern is true. src and dest are the two
407sides (if a pattern, only the part outside of the wildcards); if there
408is only one side, it is src, and dst is NULL; if sides exist but are
409empty (i.e., the refspec either starts or ends with <em>:</em>), the
Junio C Hamano4604fe52008-09-19 06:37:10410corresponding side is "".</p></div>
411<div class="para"><p>This parsing can be done to an array of strings to give an array of
412struct refpsecs with parse_ref_spec().</p></div>
413<div class="para"><p>remote_find_tracking(), given a remote and a struct refspec with
Junio C Hamano6d559fc2008-02-20 10:44:26414either src or dst filled out, will fill out the other such that the
415result is in the "fetch" specification for the remote (note that this
Junio C Hamano4604fe52008-09-19 06:37:10416evaluates patterns and returns a single result).</p></div>
Junio C Hamano6d559fc2008-02-20 10:44:26417</div>
Junio C Hamano4604fe52008-09-19 06:37:10418<h2 id="_struct_branch">struct branch</h2>
Junio C Hamano6d559fc2008-02-20 10:44:26419<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10420<div class="para"><p>Note that this may end up moving to branch.h</p></div>
421<div class="para"><p>struct branch holds the configuration for a branch. It can be looked
422branch_get(NULL) for HEAD.</p></div>
423<div class="para"><p>It contains:</p></div>
424<div class="vlist"><dl>
Junio C Hamano6d559fc2008-02-20 10:44:26425<dt>
426<tt>name</tt>
427</dt>
428<dd>
429<p>
430 The short name of the branch.
431</p>
432</dd>
433<dt>
434<tt>refname</tt>
435</dt>
436<dd>
437<p>
438 The full path for the branch ref.
439</p>
440</dd>
441<dt>
442<tt>remote_name</tt>
443</dt>
444<dd>
445<p>
446 The name of the remote listed in the configuration.
447</p>
448</dd>
449<dt>
450<tt>remote</tt>
451</dt>
452<dd>
453<p>
454 The struct remote for that remote.
455</p>
456</dd>
457<dt>
458<tt>merge_name</tt>
459</dt>
460<dd>
461<p>
462 An array of the "merge" lines in the configuration.
463</p>
464</dd>
465<dt>
466<tt>merge</tt>
467</dt>
468<dd>
469<p>
470 An array of the struct refspecs used for the merge lines. That
471 is, merge[i]-&gt;dst is a local tracking ref which should be
472 merged into this branch by default.
473</p>
474</dd>
475<dt>
476<tt>merge_nr</tt>
477</dt>
478<dd>
479<p>
480 The number of merge configurations
481</p>
482</dd>
Junio C Hamano4604fe52008-09-19 06:37:10483</dl></div>
484<div class="para"><p>branch_has_merge_config() returns true if the given branch has merge
485configuration given.</p></div>
Junio C Hamano6d559fc2008-02-20 10:44:26486</div>
Junio C Hamano4604fe52008-09-19 06:37:10487<h2 id="_other_stuff">Other stuff</h2>
Junio C Hamano6d559fc2008-02-20 10:44:26488<div class="sectionbody">
Junio C Hamano4604fe52008-09-19 06:37:10489<div class="para"><p>There is other stuff in remote.h that is related, in general, to the
490process of interacting with remotes.</p></div>
491<div class="para"><p>(Daniel Barkalow)</p></div>
Junio C Hamano6d559fc2008-02-20 10:44:26492</div>
493<div id="footer">
494<div id="footer-text">
Junio C Hamanodca34822010-02-13 01:02:52495Last updated 2010-02-13 01:00:10 UTC
Junio C Hamano6d559fc2008-02-20 10:44:26496</div>
497</div>
498</body>
499</html>