Welcome to mirror list, hosted at ThFree Co, Russian Federation.

branch.h « git2 « include - github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e2432bcfcee38f01c1861c6e385ec5c484ef040a (plain)
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
111
112
113
114
115
116
117
118
119
120
121
122
/*
 * Copyright (C) 2009-2012 the libgit2 contributors
 *
 * 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_branch_h__
#define INCLUDE_git_branch_h__

#include "common.h"
#include "types.h"

/**
 * @file git2/branch.h
 * @brief Git branch parsing routines
 * @defgroup git_branch Git branch management
 * @ingroup Git
 * @{
 */
GIT_BEGIN_DECL

/**
 * Create a new branch pointing at a target commit
 *
 * A new direct reference will be created pointing to
 * this target commit. If `force` is true and a reference
 * already exists with the given name, it'll be replaced.
 *
 * @param oid_out Pointer where to store the OID of the target commit.
 *
 * @param repo Repository where to store the branch.
 *
 * @param branch_name Name for the branch; this name is
 * validated for consistency. It should also not conflict with
 * an already existing branch name.
 *
 * @param target Object to which this branch should point. This object
 * must belong to the given `repo` and can either be a git_commit or a
 * git_tag. When a git_tag is being passed, it should be dereferencable
 * to a git_commit which oid will be used as the target of the branch.
 *
 * @param force Overwrite existing branch.
 *
 * @return 0 or an error code.
 * A proper reference is written in the refs/heads namespace
 * pointing to the provided target commit.
 */
GIT_EXTERN(int) git_branch_create(
		git_oid *oid_out,
		git_repository *repo,
		const char *branch_name,
		const git_object *target,
		int force);

/**
 * Delete an existing branch reference.
 *
 * @param repo Repository where lives the branch.
 *
 * @param branch_name Name of the branch to be deleted;
 * this name is validated for consistency.
 *
 * @param branch_type Type of the considered branch. This should
 * be valued with either GIT_BRANCH_LOCAL or GIT_BRANCH_REMOTE.
 *
 * @return 0 on success, GIT_ENOTFOUND if the branch
 * doesn't exist or an error code.
 */
GIT_EXTERN(int) git_branch_delete(
		git_repository *repo,
		const char *branch_name,
		git_branch_t branch_type);

/**
 * Fill a list with all the branches in the Repository
 *
 * The string array will be filled with the names of the
 * matching branches; these values are owned by the user and
 * should be free'd manually when no longer needed, using
 * `git_strarray_free`.
 *
 * @param branch_names Pointer to a git_strarray structure
 * where the branch names will be stored.
 *
 * @param repo Repository where to find the branches.
 *
 * @param list_flags Filtering flags for the branch
 * listing. Valid values are GIT_BRANCH_LOCAL, GIT_BRANCH_REMOTE
 * or a combination of the two.
 *
 * @return 0 or an error code.
 */
GIT_EXTERN(int) git_branch_list(
		git_strarray *branch_names,
		git_repository *repo,
		unsigned int list_flags);

/**
 * Move/rename an existing branch reference.
 *
 * @param repo Repository where lives the branch.
 *
 * @param old_branch_name Current name of the branch to be moved;
 * this name is validated for consistency.
 *
 * @param new_branch_name Target name of the branch once the move
 * is performed; this name is validated for consistency.
 *
 * @param force Overwrite existing branch.
 *
 * @return 0 on success, GIT_ENOTFOUND if the branch
 * doesn't exist or an error code.
 */
GIT_EXTERN(int) git_branch_move(
		git_repository *repo,
		const char *old_branch_name,
		const char *new_branch_name,
		int force);

/** @} */
GIT_END_DECL
#endif