## GgitCloneOptions GgitCloneOptions |

## Synopsis

                        GgitCloneOptions;
    GgitCloneOptions *  ggit_clone_options_copy             (GgitCloneOptions *clone_options);
    void                ggit_clone_options_free             (GgitCloneOptions *clone_options);
    GgitCloneOptions *  ggit_clone_options_new              (void);
    gboolean            ggit_clone_options_get_is_bare      (GgitCloneOptions *options);
    void                ggit_clone_options_set_is_bare      (GgitCloneOptions *options,
                                                             gboolean bare);
    void                ggit_clone_options_set_fetch_progress_callback
                                                            (GgitCloneOptions *options,
                                                             GgitTransferProgressCallback callback,
                                                             gpointer user_data);
    const gchar *       ggit_clone_options_get_remote_name  (GgitCloneOptions *options);
    void                ggit_clone_options_set_remote_name  (GgitCloneOptions *options,
                                                             const gchar *remote_name);
    const gchar *       ggit_clone_options_get_push_url     (GgitCloneOptions *options);
    void                ggit_clone_options_set_push_url     (GgitCloneOptions *options,
                                                             const gchar *push_url);
    const gchar *       ggit_clone_options_get_fetch_spec   (GgitCloneOptions *options);
    void                ggit_clone_options_set_fetch_spec   (GgitCloneOptions *options,
                                                             const gchar *fetch_spec);
    const gchar *       ggit_clone_options_get_push_spec    (GgitCloneOptions *options);
    void                ggit_clone_options_set_push_spec    (GgitCloneOptions *options,
                                                             const gchar *push_spec);
    void                ggit_clone_options_set_cred_acquire_callback
                                                            (GgitCloneOptions *options,
                                                             GgitCredAcquireCallback callback,
                                                             gpointer user_data);
    GgitRemoteDownloadTagsType ggit_clone_options_get_remote_auto_tag
                                                            (GgitCloneOptions *options);
    void                ggit_clone_options_set_remote_auto_tag
                                                            (GgitCloneOptions *options,
                                                             GgitRemoteDownloadTagsType remote_auto_tag);
    const gchar *       ggit_clone_options_get_checkout_branch
                                                            (GgitCloneOptions *options);
    void                ggit_clone_options_set_checkout_branch
                                                            (GgitCloneOptions *options,
                                                             const gchar *checkout_branch);

## Object Hierarchy

      GBoxed
       +----GgitCloneOptions

## Description

## Details

### GgitCloneOptions

    typedef struct _GgitCloneOptions GgitCloneOptions;

Represents the options used when cloning.

### ggit_clone_options_copy ()

    GgitCloneOptions *  ggit_clone_options_copy             (GgitCloneOptions *clone_options);

Copies `clone_options` into a newly allocated GgitCloneOptions.

`clone_options` : | a GgitCloneOptions.
Returns : | a newly allocated GgitCloneOptions. [transfer full]

### ggit_clone_options_free ()

    void                ggit_clone_options_free             (GgitCloneOptions *clone_options);

Frees `clone_options`.

`clone_options` : | a GgitCloneOptions.

### ggit_clone_options_new ()

    GgitCloneOptions *  ggit_clone_options_new              (void);

Creates a new GgitCloneOptions.

Returns : | a newly allocated GgitCloneOptions.

### ggit_clone_options_get_is_bare ()

    gboolean            ggit_clone_options_get_is_bare      (GgitCloneOptions *options);

Gets if the repository will be bare.

`options` : | a GgitCloneOptions.
Returns : | `TRUE` to clone a bare repository.

### ggit_clone_options_set_is_bare ()

    void                ggit_clone_options_set_is_bare      (GgitCloneOptions *options,
                                                             gboolean bare);

Sets whether to clone a bare repository.

`options` : | a GgitCloneOptions.
`bare` : | `TRUE` to clone a bare repository.

### ggit_clone_options_set_fetch_progress_callback ()

    void                ggit_clone_options_set_fetch_progress_callback
                                                            (GgitCloneOptions *options,
                                                             GgitTransferProgressCallback callback,
                                                             gpointer user_data);

Sets the callback for fetch progress. Be aware that this is called inline with network and indexing operations, so performance may be affected.

`options` : | a GgitCloneOptions.
`callback` : | callback for fetch progress. [allow-none][scope call][closure user_data]
`user_data` : | callback user data.

### ggit_clone_options_get_remote_name ()

    const gchar *       ggit_clone_options_get_remote_name  (GgitCloneOptions *options);

Gets the name given to the "origin" remote. The default is "origin".

`options` : | a GgitCloneOptions.
Returns : | the name given to the "origin" remote. The default is "origin".

### ggit_clone_options_set_remote_name ()

    void                ggit_clone_options_set_remote_name  (GgitCloneOptions *options,
                                                             const gchar *remote_name);

Sets the name given to the "origin" remote.

`options` : | a GgitCloneOptions.
`remote_name` : | the name given to the "origin" remote. [allow-none]

### ggit_clone_options_get_push_url ()

    const gchar *       ggit_clone_options_get_push_url     (GgitCloneOptions *options);

Gets the URL to be used for pushing or `NULL`.

`options` : | a GgitCloneOptions.
Returns : | the URL to be used for pushing or `NULL`.

### ggit_clone_options_set_push_url ()

    void                ggit_clone_options_set_push_url     (GgitCloneOptions *options,
                                                             const gchar *push_url);

Sets the URL to be used for pushing. `NULL` means use the fetch url.

`options` : | a GgitCloneOptions.
`push_url` : | the URL to be used for pushing. `NULL` means use the fetch url. [allow-none]

### ggit_clone_options_get_fetch_spec ()

    const gchar *       ggit_clone_options_get_fetch_spec   (GgitCloneOptions *options);

Gets the fetch specification to be used or `NULL`.

`options` : | a GgitCloneOptions.
Returns : | the fetch specification to be used for fetching or `NULL`.

### ggit_clone_options_set_fetch_spec ()

    void                ggit_clone_options_set_fetch_spec   (GgitCloneOptions *options,
                                                             const gchar *fetch_spec);

Sets the fetch specification to be used for fetching. `NULL` results in the same behavior as `GGIT_REMOTE_DEFAULT_FETCH`.

`options` : | a GgitCloneOptions.
`fetch_spec` : | the fetch specification to be used for fetching or `NULL`. [allow-none]

### ggit_clone_options_get_push_spec ()

    const gchar *       ggit_clone_options_get_push_spec    (GgitCloneOptions *options);

Gets the fetch specification to be used for pushing or `NULL`.

`options` : | a GgitCloneOptions.
Returns : | the fetch specification to be used for pushing or `NULL`.

### ggit_clone_options_set_push_spec ()

    void                ggit_clone_options_set_push_spec    (GgitCloneOptions *options,
                                                             const gchar *push_spec);

Sets fetch specification to be used for pushing. `NULL` means use the same spec as for fetching.

`options` : | a GgitCloneOptions.
`push_spec` : | the fetch specification to be used for pushing or `NULL`. [allow-none]

### ggit_clone_options_set_cred_acquire_callback ()

    void                ggit_clone_options_set_cred_acquire_callback
                                                            (GgitCloneOptions *options,
                                                             GgitCredAcquireCallback callback,
                                                             gpointer user_data);

Sets the callback to be used if credentials are required during the initial fetch.

`options` : | a GgitCloneOptions.
`callback` : | callback if credentials are required. [allow-none][scope call][closure user_data]
`user_data` : | callback user data.

### ggit_clone_options_get_remote_auto_tag ()

    GgitRemoteDownloadTagsType ggit_clone_options_get_remote_auto_tag
                                                            (GgitCloneOptions *options);

Gets the auto tag setting before the initial fetch. The default is `GGIT_REMOTE_DOWNLOAD_TAGS_ALL`.

`options` : | a GgitCloneOptions.
Returns : | a GgitRemoteDownloadTagsType

### ggit_clone_options_set_remote_auto_tag ()

    void                ggit_clone_options_set_remote_auto_tag
                                                            (GgitCloneOptions *options,
                                                             GgitRemoteDownloadTagsType remote_auto_tag);

Specifies the auto tag setting before the initial fetch.

`options` : | a GgitCloneOptions.
`remote_auto_tag` : | a GgitRemoteDownloadTagsType.

### ggit_clone_options_get_checkout_branch ()

    const gchar *       ggit_clone_options_get_checkout_branch
                                                            (GgitCloneOptions *options);

Gets the name of the branch to checkout or `NULL`.

`options` : | a GgitCloneOptions.
Returns : | the name of the branch to checkout or `NULL`.

### ggit_clone_options_set_checkout_branch ()

    void                ggit_clone_options_set_checkout_branch
                                                            (GgitCloneOptions *options,
                                                             const gchar *checkout_branch);

Gives the name of the branch to checkout. `NULL` means use the remote's HEAD.

`options` : | a GgitCloneOptions.
`checkout_branch` : | the name of the branch to checkout or `NULL`. [allow-none]