1 /*
2  * Copyright (C) the libgit2 contributors. All rights reserved.
3  *
4  * This file is part of libgit2, distributed under the GNU GPL v2 with
5  * a Linking Exception. For full terms see the included COPYING file.
6  */
7 #ifndef INCLUDE_git_deprecated_h__
8 #define INCLUDE_git_deprecated_h__
9 
10 #include "attr.h"
11 #include "config.h"
12 #include "common.h"
13 #include "blame.h"
14 #include "buffer.h"
15 #include "checkout.h"
16 #include "cherrypick.h"
17 #include "clone.h"
18 #include "describe.h"
19 #include "diff.h"
20 #include "errors.h"
21 #include "index.h"
22 #include "indexer.h"
23 #include "merge.h"
24 #include "object.h"
25 #include "proxy.h"
26 #include "refs.h"
27 #include "rebase.h"
28 #include "remote.h"
29 #include "trace.h"
30 #include "repository.h"
31 #include "revert.h"
32 #include "stash.h"
33 #include "status.h"
34 #include "submodule.h"
35 #include "worktree.h"
36 #include "credential.h"
37 #include "credential_helpers.h"
38 
39 /*
40  * Users can avoid deprecated functions by defining `GIT_DEPRECATE_HARD`.
41  */
42 #ifndef GIT_DEPRECATE_HARD
43 
44 /*
45  * The credential structures are now opaque by default, and their
46  * definition has moved into the `sys/credential.h` header; include
47  * them here for backward compatibility.
48  */
49 #include "sys/credential.h"
50 
51 /**
52  * @file git2/deprecated.h
53  * @brief libgit2 deprecated functions and values
54  * @ingroup Git
55  * @{
56  */
57 GIT_BEGIN_DECL
58 
59 /** @name Deprecated Attribute Constants
60  *
61  * These enumeration values are retained for backward compatibility.
62  * The newer versions of these functions should be preferred in all
63  * new code.
64  *
65  * There is no plan to remove these backward compatibility values at
66  * this time.
67  */
68 /**@{*/
69 
70 #define GIT_ATTR_UNSPECIFIED_T GIT_ATTR_VALUE_UNSPECIFIED
71 #define GIT_ATTR_TRUE_T GIT_ATTR_VALUE_TRUE
72 #define GIT_ATTR_FALSE_T GIT_ATTR_VALUE_FALSE
73 #define GIT_ATTR_VALUE_T GIT_ATTR_VALUE_STRING
74 
75 #define GIT_ATTR_TRUE(attr) GIT_ATTR_IS_TRUE(attr)
76 #define GIT_ATTR_FALSE(attr) GIT_ATTR_IS_FALSE(attr)
77 #define GIT_ATTR_UNSPECIFIED(attr) GIT_ATTR_IS_UNSPECIFIED(attr)
78 
79 typedef git_attr_value_t git_attr_t;
80 
81 /**@}*/
82 
83 /** @name Deprecated Blob Functions
84  *
85  * These functions are retained for backward compatibility.  The newer
86  * versions of these functions should be preferred in all new code.
87  *
88  * There is no plan to remove these backward compatibility values at
89  * this time.
90  */
91 /**@{*/
92 
93 GIT_EXTERN(int) git_blob_create_fromworkdir(git_oid *id, git_repository *repo, const char *relative_path);
94 GIT_EXTERN(int) git_blob_create_fromdisk(git_oid *id, git_repository *repo, const char *path);
95 GIT_EXTERN(int) git_blob_create_fromstream(
96 	git_writestream **out,
97 	git_repository *repo,
98 	const char *hintpath);
99 GIT_EXTERN(int) git_blob_create_fromstream_commit(
100 	git_oid *out,
101 	git_writestream *stream);
102 GIT_EXTERN(int) git_blob_create_frombuffer(
103 	git_oid *id, git_repository *repo, const void *buffer, size_t len);
104 
105 /** Deprecated in favor of `git_blob_filter`.
106  *
107  * @deprecated Use git_blob_filter
108  * @see git_blob_filter
109  */
110 GIT_EXTERN(int) git_blob_filtered_content(
111 	git_buf *out,
112 	git_blob *blob,
113 	const char *as_path,
114 	int check_for_binary_data);
115 
116 /**@}*/
117 
118 /** @name Deprecated Buffer Functions
119  *
120  * These functions and enumeration values are retained for backward
121  * compatibility.  The newer versions of these functions should be
122  * preferred in all new code.
123  *
124  * There is no plan to remove these backward compatibility values at
125  * this time.
126  */
127 /**@{*/
128 
129 /**
130  * Free the memory referred to by the git_buf.  This is an alias of
131  * `git_buf_dispose` and is preserved for backward compatibility.
132  *
133  * This function is deprecated, but there is no plan to remove this
134  * function at this time.
135  *
136  * @deprecated Use git_buf_dispose
137  * @see git_buf_dispose
138  */
139 GIT_EXTERN(void) git_buf_free(git_buf *buffer);
140 
141 /**@}*/
142 
143 /** @name Deprecated Config Functions and Constants
144  */
145 /**@{*/
146 
147 #define GIT_CVAR_FALSE  GIT_CONFIGMAP_FALSE
148 #define GIT_CVAR_TRUE   GIT_CONFIGMAP_TRUE
149 #define GIT_CVAR_INT32  GIT_CONFIGMAP_INT32
150 #define GIT_CVAR_STRING GIT_CONFIGMAP_STRING
151 
152 typedef git_configmap git_cvar_map;
153 
154 /**@}*/
155 
156 /** @name Deprecated Error Functions and Constants
157  *
158  * These functions and enumeration values are retained for backward
159  * compatibility.  The newer versions of these functions and values
160  * should be preferred in all new code.
161  *
162  * There is no plan to remove these backward compatibility values at
163  * this time.
164  */
165 /**@{*/
166 
167 #define GITERR_NONE GIT_ERROR_NONE
168 #define GITERR_NOMEMORY GIT_ERROR_NOMEMORY
169 #define GITERR_OS GIT_ERROR_OS
170 #define GITERR_INVALID GIT_ERROR_INVALID
171 #define GITERR_REFERENCE GIT_ERROR_REFERENCE
172 #define GITERR_ZLIB GIT_ERROR_ZLIB
173 #define GITERR_REPOSITORY GIT_ERROR_REPOSITORY
174 #define GITERR_CONFIG GIT_ERROR_CONFIG
175 #define GITERR_REGEX GIT_ERROR_REGEX
176 #define GITERR_ODB GIT_ERROR_ODB
177 #define GITERR_INDEX GIT_ERROR_INDEX
178 #define GITERR_OBJECT GIT_ERROR_OBJECT
179 #define GITERR_NET GIT_ERROR_NET
180 #define GITERR_TAG GIT_ERROR_TAG
181 #define GITERR_TREE GIT_ERROR_TREE
182 #define GITERR_INDEXER GIT_ERROR_INDEXER
183 #define GITERR_SSL GIT_ERROR_SSL
184 #define GITERR_SUBMODULE GIT_ERROR_SUBMODULE
185 #define GITERR_THREAD GIT_ERROR_THREAD
186 #define GITERR_STASH GIT_ERROR_STASH
187 #define GITERR_CHECKOUT GIT_ERROR_CHECKOUT
188 #define GITERR_FETCHHEAD GIT_ERROR_FETCHHEAD
189 #define GITERR_MERGE GIT_ERROR_MERGE
190 #define GITERR_SSH GIT_ERROR_SSH
191 #define GITERR_FILTER GIT_ERROR_FILTER
192 #define GITERR_REVERT GIT_ERROR_REVERT
193 #define GITERR_CALLBACK GIT_ERROR_CALLBACK
194 #define GITERR_CHERRYPICK GIT_ERROR_CHERRYPICK
195 #define GITERR_DESCRIBE GIT_ERROR_DESCRIBE
196 #define GITERR_REBASE GIT_ERROR_REBASE
197 #define GITERR_FILESYSTEM GIT_ERROR_FILESYSTEM
198 #define GITERR_PATCH GIT_ERROR_PATCH
199 #define GITERR_WORKTREE GIT_ERROR_WORKTREE
200 #define GITERR_SHA1 GIT_ERROR_SHA1
201 
202 /**
203  * Return the last `git_error` object that was generated for the
204  * current thread.  This is an alias of `git_error_last` and is
205  * preserved for backward compatibility.
206  *
207  * This function is deprecated, but there is no plan to remove this
208  * function at this time.
209  *
210  * @deprecated Use git_error_last
211  * @see git_error_last
212  */
213 GIT_EXTERN(const git_error *) giterr_last(void);
214 
215 /**
216  * Clear the last error.  This is an alias of `git_error_last` and is
217  * preserved for backward compatibility.
218  *
219  * This function is deprecated, but there is no plan to remove this
220  * function at this time.
221  *
222  * @deprecated Use git_error_clear
223  * @see git_error_clear
224  */
225 GIT_EXTERN(void) giterr_clear(void);
226 
227 /**
228  * Sets the error message to the given string.  This is an alias of
229  * `git_error_set_str` and is preserved for backward compatibility.
230  *
231  * This function is deprecated, but there is no plan to remove this
232  * function at this time.
233  *
234  * @deprecated Use git_error_set_str
235  * @see git_error_set_str
236  */
237 GIT_EXTERN(void) giterr_set_str(int error_class, const char *string);
238 
239 /**
240  * Indicates that an out-of-memory situation occurred.  This is an alias
241  * of `git_error_set_oom` and is preserved for backward compatibility.
242  *
243  * This function is deprecated, but there is no plan to remove this
244  * function at this time.
245  *
246  * @deprecated Use git_error_set_oom
247  * @see git_error_set_oom
248  */
249 GIT_EXTERN(void) giterr_set_oom(void);
250 
251 /**@}*/
252 
253 /** @name Deprecated Index Functions and Constants
254  *
255  * These functions and enumeration values are retained for backward
256  * compatibility.  The newer versions of these values should be
257  * preferred in all new code.
258  *
259  * There is no plan to remove these backward compatibility values at
260  * this time.
261  */
262 /**@{*/
263 
264 #define GIT_IDXENTRY_NAMEMASK          GIT_INDEX_ENTRY_NAMEMASK
265 #define GIT_IDXENTRY_STAGEMASK         GIT_INDEX_ENTRY_STAGEMASK
266 #define GIT_IDXENTRY_STAGESHIFT        GIT_INDEX_ENTRY_STAGESHIFT
267 
268 /* The git_indxentry_flag_t enum */
269 #define GIT_IDXENTRY_EXTENDED          GIT_INDEX_ENTRY_EXTENDED
270 #define GIT_IDXENTRY_VALID             GIT_INDEX_ENTRY_VALID
271 
272 #define GIT_IDXENTRY_STAGE(E)          GIT_INDEX_ENTRY_STAGE(E)
273 #define GIT_IDXENTRY_STAGE_SET(E,S)    GIT_INDEX_ENTRY_STAGE_SET(E,S)
274 
275 /* The git_idxentry_extended_flag_t enum */
276 #define GIT_IDXENTRY_INTENT_TO_ADD     GIT_INDEX_ENTRY_INTENT_TO_ADD
277 #define GIT_IDXENTRY_SKIP_WORKTREE     GIT_INDEX_ENTRY_SKIP_WORKTREE
278 #define GIT_IDXENTRY_EXTENDED_FLAGS    (GIT_INDEX_ENTRY_INTENT_TO_ADD | GIT_INDEX_ENTRY_SKIP_WORKTREE)
279 #define GIT_IDXENTRY_EXTENDED2         (1 << 15)
280 #define GIT_IDXENTRY_UPDATE            (1 << 0)
281 #define GIT_IDXENTRY_REMOVE            (1 << 1)
282 #define GIT_IDXENTRY_UPTODATE          (1 << 2)
283 #define GIT_IDXENTRY_ADDED             (1 << 3)
284 #define GIT_IDXENTRY_HASHED            (1 << 4)
285 #define GIT_IDXENTRY_UNHASHED          (1 << 5)
286 #define GIT_IDXENTRY_WT_REMOVE         (1 << 6)
287 #define GIT_IDXENTRY_CONFLICTED        (1 << 7)
288 #define GIT_IDXENTRY_UNPACKED          (1 << 8)
289 #define GIT_IDXENTRY_NEW_SKIP_WORKTREE (1 << 9)
290 
291 /* The git_index_capability_t enum */
292 #define GIT_INDEXCAP_IGNORE_CASE       GIT_INDEX_CAPABILITY_IGNORE_CASE
293 #define GIT_INDEXCAP_NO_FILEMODE       GIT_INDEX_CAPABILITY_NO_FILEMODE
294 #define GIT_INDEXCAP_NO_SYMLINKS       GIT_INDEX_CAPABILITY_NO_SYMLINKS
295 #define GIT_INDEXCAP_FROM_OWNER        GIT_INDEX_CAPABILITY_FROM_OWNER
296 
297 GIT_EXTERN(int) git_index_add_frombuffer(
298 	git_index *index,
299 	const git_index_entry *entry,
300 	const void *buffer, size_t len);
301 
302 /**@}*/
303 
304 /** @name Deprecated Object Constants
305  *
306  * These enumeration values are retained for backward compatibility.  The
307  * newer versions of these values should be preferred in all new code.
308  *
309  * There is no plan to remove these backward compatibility values at
310  * this time.
311  */
312 /**@{*/
313 
314 #define git_otype git_object_t
315 
316 #define GIT_OBJ_ANY GIT_OBJECT_ANY
317 #define GIT_OBJ_BAD GIT_OBJECT_INVALID
318 #define GIT_OBJ__EXT1 0
319 #define GIT_OBJ_COMMIT GIT_OBJECT_COMMIT
320 #define GIT_OBJ_TREE GIT_OBJECT_TREE
321 #define GIT_OBJ_BLOB GIT_OBJECT_BLOB
322 #define GIT_OBJ_TAG GIT_OBJECT_TAG
323 #define GIT_OBJ__EXT2 5
324 #define GIT_OBJ_OFS_DELTA GIT_OBJECT_OFS_DELTA
325 #define GIT_OBJ_REF_DELTA GIT_OBJECT_REF_DELTA
326 
327 /**
328  * Get the size in bytes for the structure which
329  * acts as an in-memory representation of any given
330  * object type.
331  *
332  * For all the core types, this would the equivalent
333  * of calling `sizeof(git_commit)` if the core types
334  * were not opaque on the external API.
335  *
336  * @param type object type to get its size
337  * @return size in bytes of the object
338  */
339 GIT_EXTERN(size_t) git_object__size(git_object_t type);
340 
341 /**@}*/
342 
343 /** @name Deprecated Reference Constants
344  *
345  * These enumeration values are retained for backward compatibility.  The
346  * newer versions of these values should be preferred in all new code.
347  *
348  * There is no plan to remove these backward compatibility values at
349  * this time.
350  */
351 /**@{*/
352 
353  /** Basic type of any Git reference. */
354 #define git_ref_t git_reference_t
355 #define git_reference_normalize_t git_reference_format_t
356 
357 #define GIT_REF_INVALID GIT_REFERENCE_INVALID
358 #define GIT_REF_OID GIT_REFERENCE_DIRECT
359 #define GIT_REF_SYMBOLIC GIT_REFERENCE_SYMBOLIC
360 #define GIT_REF_LISTALL GIT_REFERENCE_ALL
361 
362 #define GIT_REF_FORMAT_NORMAL GIT_REFERENCE_FORMAT_NORMAL
363 #define GIT_REF_FORMAT_ALLOW_ONELEVEL GIT_REFERENCE_FORMAT_ALLOW_ONELEVEL
364 #define GIT_REF_FORMAT_REFSPEC_PATTERN GIT_REFERENCE_FORMAT_REFSPEC_PATTERN
365 #define GIT_REF_FORMAT_REFSPEC_SHORTHAND GIT_REFERENCE_FORMAT_REFSPEC_SHORTHAND
366 
367 GIT_EXTERN(int) git_tag_create_frombuffer(
368 	git_oid *oid,
369 	git_repository *repo,
370 	const char *buffer,
371 	int force);
372 
373 /**@}*/
374 
375 /** @name Deprecated Credential Types
376  *
377  * These types are retained for backward compatibility.  The newer
378  * versions of these values should be preferred in all new code.
379  *
380  * There is no plan to remove these backward compatibility values at
381  * this time.
382  */
383 
384 typedef git_credential git_cred;
385 typedef git_credential_userpass_plaintext git_cred_userpass_plaintext;
386 typedef git_credential_username git_cred_username;
387 typedef git_credential_default git_cred_default;
388 typedef git_credential_ssh_key git_cred_ssh_key;
389 typedef git_credential_ssh_interactive git_cred_ssh_interactive;
390 typedef git_credential_ssh_custom git_cred_ssh_custom;
391 
392 typedef git_credential_acquire_cb git_cred_acquire_cb;
393 typedef git_credential_sign_cb git_cred_sign_callback;
394 typedef git_credential_sign_cb git_cred_sign_cb;
395 typedef git_credential_ssh_interactive_cb git_cred_ssh_interactive_callback;
396 typedef git_credential_ssh_interactive_cb git_cred_ssh_interactive_cb;
397 
398 #define git_credtype_t git_credential_t
399 
400 #define GIT_CREDTYPE_USERPASS_PLAINTEXT GIT_CREDENTIAL_USERPASS_PLAINTEXT
401 #define GIT_CREDTYPE_SSH_KEY GIT_CREDENTIAL_SSH_KEY
402 #define GIT_CREDTYPE_SSH_CUSTOM GIT_CREDENTIAL_SSH_CUSTOM
403 #define GIT_CREDTYPE_DEFAULT GIT_CREDENTIAL_DEFAULT
404 #define GIT_CREDTYPE_SSH_INTERACTIVE GIT_CREDENTIAL_SSH_INTERACTIVE
405 #define GIT_CREDTYPE_USERNAME GIT_CREDENTIAL_USERNAME
406 #define GIT_CREDTYPE_SSH_MEMORY GIT_CREDENTIAL_SSH_MEMORY
407 
408 GIT_EXTERN(void) git_cred_free(git_credential *cred);
409 GIT_EXTERN(int) git_cred_has_username(git_credential *cred);
410 GIT_EXTERN(const char *) git_cred_get_username(git_credential *cred);
411 GIT_EXTERN(int) git_cred_userpass_plaintext_new(
412 	git_credential **out,
413 	const char *username,
414 	const char *password);
415 GIT_EXTERN(int) git_cred_default_new(git_credential **out);
416 GIT_EXTERN(int) git_cred_username_new(git_credential **out, const char *username);
417 GIT_EXTERN(int) git_cred_ssh_key_new(
418 	git_credential **out,
419 	const char *username,
420 	const char *publickey,
421 	const char *privatekey,
422 	const char *passphrase);
423 GIT_EXTERN(int) git_cred_ssh_key_memory_new(
424 	git_credential **out,
425 	const char *username,
426 	const char *publickey,
427 	const char *privatekey,
428 	const char *passphrase);
429 GIT_EXTERN(int) git_cred_ssh_interactive_new(
430 	git_credential **out,
431 	const char *username,
432 	git_credential_ssh_interactive_cb prompt_callback,
433 	void *payload);
434 GIT_EXTERN(int) git_cred_ssh_key_from_agent(
435 	git_credential **out,
436 	const char *username);
437 GIT_EXTERN(int) git_cred_ssh_custom_new(
438 	git_credential **out,
439 	const char *username,
440 	const char *publickey,
441 	size_t publickey_len,
442 	git_credential_sign_cb sign_callback,
443 	void *payload);
444 
445 /* Deprecated Credential Helper Types */
446 
447 typedef git_credential_userpass_payload git_cred_userpass_payload;
448 
449 GIT_EXTERN(int) git_cred_userpass(
450 	git_credential **out,
451 	const char *url,
452 	const char *user_from_url,
453 	unsigned int allowed_types,
454 	void *payload);
455 
456 /**@}*/
457 
458 /** @name Deprecated Trace Callback Types
459  *
460  * These types are retained for backward compatibility.  The newer
461  * versions of these values should be preferred in all new code.
462  *
463  * There is no plan to remove these backward compatibility values at
464  * this time.
465  */
466 /**@{*/
467 
468 typedef git_trace_cb git_trace_callback;
469 
470 /**@}*/
471 
472 /** @name Deprecated Object ID Types
473  *
474  * These types are retained for backward compatibility.  The newer
475  * versions of these values should be preferred in all new code.
476  *
477  * There is no plan to remove these backward compatibility values at
478  * this time.
479  */
480 /**@{*/
481 
482 GIT_EXTERN(int) git_oid_iszero(const git_oid *id);
483 
484 /**@}*/
485 
486 /** @name Deprecated Transfer Progress Types
487  *
488  * These types are retained for backward compatibility.  The newer
489  * versions of these values should be preferred in all new code.
490  *
491  * There is no plan to remove these backward compatibility values at
492  * this time.
493  */
494 /**@{*/
495 
496 /**
497  * This structure is used to provide callers information about the
498  * progress of indexing a packfile.
499  *
500  * This type is deprecated, but there is no plan to remove this
501  * type definition at this time.
502  */
503 typedef git_indexer_progress git_transfer_progress;
504 
505 /**
506  * Type definition for progress callbacks during indexing.
507  *
508  * This type is deprecated, but there is no plan to remove this
509  * type definition at this time.
510  */
511 typedef git_indexer_progress_cb git_transfer_progress_cb;
512 
513 /**
514  * Type definition for push transfer progress callbacks.
515  *
516  * This type is deprecated, but there is no plan to remove this
517  * type definition at this time.
518  */
519 typedef git_push_transfer_progress_cb git_push_transfer_progress;
520 
521  /** The type of a remote completion event */
522 #define git_remote_completion_type git_remote_completion_t
523 
524 /**
525  * Callback for listing the remote heads
526  */
527 typedef int GIT_CALLBACK(git_headlist_cb)(git_remote_head *rhead, void *payload);
528 
529 /**@}*/
530 
531 /** @name Deprecated String Array Functions
532  *
533  * These types are retained for backward compatibility.  The newer
534  * versions of these values should be preferred in all new code.
535  *
536  * There is no plan to remove these backward compatibility values at
537  * this time.
538  */
539 /**@{*/
540 
541 /**
542  * Copy a string array object from source to target.
543  *
544  * This function is deprecated, but there is no plan to remove this
545  * function at this time.
546  *
547  * @param tgt target
548  * @param src source
549  * @return 0 on success, < 0 on allocation failure
550  */
551 GIT_EXTERN(int) git_strarray_copy(git_strarray *tgt, const git_strarray *src);
552 
553 /**
554  * Free the memory referred to by the git_strarray.  This is an alias of
555  * `git_strarray_dispose` and is preserved for backward compatibility.
556  *
557  * This function is deprecated, but there is no plan to remove this
558  * function at this time.
559  *
560  * @deprecated Use git_strarray_dispose
561  * @see git_strarray_dispose
562  */
563 GIT_EXTERN(void) git_strarray_free(git_strarray *array);
564 
565 /**@}*/
566 
567 /** @name Deprecated Options Initialization Functions
568  *
569  * These functions are retained for backward compatibility.  The newer
570  * versions of these functions should be preferred in all new code.
571  *
572  * There is no plan to remove these backward compatibility functions at
573  * this time.
574  */
575 /**@{*/
576 
577 GIT_EXTERN(int) git_blame_init_options(git_blame_options *opts, unsigned int version);
578 GIT_EXTERN(int) git_checkout_init_options(git_checkout_options *opts, unsigned int version);
579 GIT_EXTERN(int) git_cherrypick_init_options(git_cherrypick_options *opts, unsigned int version);
580 GIT_EXTERN(int) git_clone_init_options(git_clone_options *opts, unsigned int version);
581 GIT_EXTERN(int) git_describe_init_options(git_describe_options *opts, unsigned int version);
582 GIT_EXTERN(int) git_describe_init_format_options(git_describe_format_options *opts, unsigned int version);
583 GIT_EXTERN(int) git_diff_init_options(git_diff_options *opts, unsigned int version);
584 GIT_EXTERN(int) git_diff_find_init_options(git_diff_find_options *opts, unsigned int version);
585 GIT_EXTERN(int) git_diff_format_email_init_options(git_diff_format_email_options *opts, unsigned int version);
586 GIT_EXTERN(int) git_diff_patchid_init_options(git_diff_patchid_options *opts, unsigned int version);
587 GIT_EXTERN(int) git_fetch_init_options(git_fetch_options *opts, unsigned int version);
588 GIT_EXTERN(int) git_indexer_init_options(git_indexer_options *opts, unsigned int version);
589 GIT_EXTERN(int) git_merge_init_options(git_merge_options *opts, unsigned int version);
590 GIT_EXTERN(int) git_merge_file_init_input(git_merge_file_input *input, unsigned int version);
591 GIT_EXTERN(int) git_merge_file_init_options(git_merge_file_options *opts, unsigned int version);
592 GIT_EXTERN(int) git_proxy_init_options(git_proxy_options *opts, unsigned int version);
593 GIT_EXTERN(int) git_push_init_options(git_push_options *opts, unsigned int version);
594 GIT_EXTERN(int) git_rebase_init_options(git_rebase_options *opts, unsigned int version);
595 GIT_EXTERN(int) git_remote_create_init_options(git_remote_create_options *opts, unsigned int version);
596 GIT_EXTERN(int) git_repository_init_init_options(git_repository_init_options *opts, unsigned int version);
597 GIT_EXTERN(int) git_revert_init_options(git_revert_options *opts, unsigned int version);
598 GIT_EXTERN(int) git_stash_apply_init_options(git_stash_apply_options *opts, unsigned int version);
599 GIT_EXTERN(int) git_status_init_options(git_status_options *opts, unsigned int version);
600 GIT_EXTERN(int) git_submodule_update_init_options(git_submodule_update_options *opts, unsigned int version);
601 GIT_EXTERN(int) git_worktree_add_init_options(git_worktree_add_options *opts, unsigned int version);
602 GIT_EXTERN(int) git_worktree_prune_init_options(git_worktree_prune_options *opts, unsigned int version);
603 
604 /**@}*/
605 
606 /** @} */
607 GIT_END_DECL
608 
609 #endif
610 
611 #endif
612