This file is indexed.

/usr/include/git2/clone.h is in libgit2-dev 0.19.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
/*
 * Copyright (C) the libgit2 contributors. All rights reserved.
 *
 * This file is part of libgit2, distributed under the GNU GPL v2 with
 * a Linking Exception. For full terms see the included COPYING file.
 */
#ifndef INCLUDE_git_clone_h__
#define INCLUDE_git_clone_h__

#include "common.h"
#include "types.h"
#include "indexer.h"
#include "checkout.h"
#include "remote.h"


/**
 * @file git2/clone.h
 * @brief Git cloning routines
 * @defgroup git_clone Git cloning routines
 * @ingroup Git
 * @{
 */
GIT_BEGIN_DECL

/**
 * Clone options structure
 *
 * Use zeros to indicate default settings.  It's easiest to use the
 * `GIT_CLONE_OPTIONS_INIT` macro:
 *
 *		git_clone_options opts = GIT_CLONE_OPTIONS_INIT;
 *
 * - `checkout_opts` is options for the checkout step.  To disable checkout,
 *   set the `checkout_strategy` to GIT_CHECKOUT_DEFAULT.
 * - `bare` should be set to zero to create a standard repo, non-zero for
 *   a bare repo
 * - `fetch_progress_cb` is optional callback for fetch progress. Be aware that
 *   this is called inline with network and indexing operations, so performance
 *   may be affected.
 * - `fetch_progress_payload` is payload for fetch_progress_cb
 *
 *   ** "origin" remote options: **
 * - `remote_name` is the name given to the "origin" remote.  The default is
 *   "origin".
 * - `pushurl` is a URL to be used for pushing.  NULL means use the fetch url.
 * - `fetch_spec` is the fetch specification to be used for fetching.  NULL
 *   results in the same behavior as GIT_REMOTE_DEFAULT_FETCH.
 * - `push_spec` is the fetch specification to be used for pushing.  NULL means
 *   use the same spec as for fetching.
 * - `cred_acquire_cb` is a callback to be used if credentials are required
 *   during the initial fetch.
 * - `cred_acquire_payload` is the payload for the above callback.
 * - `transport_flags` is flags used to create transport if no transport is
 *   provided.
 * - `transport` is a custom transport to be used for the initial fetch.  NULL
 *   means use the transport autodetected from the URL.
 * - `remote_callbacks` may be used to specify custom progress callbacks for
 *   the origin remote before the fetch is initiated.
 * - `remote_autotag` may be used to specify the autotag setting before the
 *   initial fetch.  The default is GIT_REMOTE_DOWNLOAD_TAGS_ALL.
 * - `checkout_branch` gives the name of the branch to checkout. NULL means
 *   use the remote's HEAD.
 */

typedef struct git_clone_options {
	unsigned int version;

	git_checkout_opts checkout_opts;
	int bare;
	git_transfer_progress_callback fetch_progress_cb;
	void *fetch_progress_payload;

	const char *remote_name;
	const char *pushurl;
	const char *fetch_spec;
	const char *push_spec;
	git_cred_acquire_cb cred_acquire_cb;
	void *cred_acquire_payload;
    git_transport_flags_t transport_flags;
	git_transport *transport;
	git_remote_callbacks *remote_callbacks;
	git_remote_autotag_option_t remote_autotag;
	const char* checkout_branch;
} git_clone_options;

#define GIT_CLONE_OPTIONS_VERSION 1
#define GIT_CLONE_OPTIONS_INIT {GIT_CLONE_OPTIONS_VERSION, {GIT_CHECKOUT_OPTS_VERSION, GIT_CHECKOUT_SAFE_CREATE}}

/**
 * Clone a remote repository, and checkout the branch pointed to by the remote
 * HEAD.
 *
 * @param out pointer that will receive the resulting repository object
 * @param url the remote repository to clone
 * @param local_path local directory to clone to
 * @param options configuration options for the clone.  If NULL, the function
 * works as though GIT_OPTIONS_INIT were passed.
 * @return 0 on success, GIT_ERROR otherwise (use giterr_last for information
 * about the error)
 */
GIT_EXTERN(int) git_clone(
		git_repository **out,
		const char *url,
		const char *local_path,
		const git_clone_options *options);

/** @} */
GIT_END_DECL
#endif