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 modulelibgit2_d.transaction;
8 9 10 privatestaticimportlibgit2_d.oid;
11 privatestaticimportlibgit2_d.types;
12 13 /**
14 * @file git2/transaction.h
15 * @brief Git transactional reference routines
16 * @defgroup git_transaction Git transactional reference routines
17 * @ingroup Git
18 * @{
19 */20 extern (C):
21 nothrow @nogc:
22 public:
23 24 /**
25 * Create a new transaction object
26 *
27 * This does not lock anything, but sets up the transaction object to
28 * know from which repository to lock.
29 *
30 * Params:
31 * out_ = the resulting transaction
32 * repo = the repository in which to lock
33 *
34 * Returns: 0 or an error code
35 */36 //GIT_EXTERN37 intgit_transaction_new(libgit2_d.types.git_transaction** out_, libgit2_d.types.git_repository* repo);
38 39 /**
40 * Lock a reference
41 *
42 * Lock the specified reference. This is the first step to updating a
43 * reference.
44 *
45 * Params:
46 * tx = the transaction
47 * refname = the reference to lock
48 *
49 * Returns: 0 or an error message
50 */51 //GIT_EXTERN52 intgit_transaction_lock_ref(libgit2_d.types.git_transaction* tx, const (char)* refname);
53 54 /**
55 * Set the target of a reference
56 *
57 * Set the target of the specified reference. This reference must be
58 * locked.
59 *
60 * Params:
61 * tx = the transaction
62 * refname = reference to update
63 * target = target to set the reference to
64 * sig = signature to use in the reflog; pass null to read the identity from the config
65 * msg = message to use in the reflog
66 *
67 * Returns: 0, git_error_code.GIT_ENOTFOUND if the reference is not among the locked ones, or an error code
68 */69 //GIT_EXTERN70 intgit_transaction_set_target(libgit2_d.types.git_transaction* tx, const (char)* refname, const (libgit2_d.oid.git_oid)* target, const (libgit2_d.types.git_signature)* sig, const (char)* msg);
71 72 /**
73 * Set the target of a reference
74 *
75 * Set the target of the specified reference. This reference must be
76 * locked.
77 *
78 * Params:
79 * tx = the transaction
80 * refname = reference to update
81 * target = target to set the reference to
82 * sig = signature to use in the reflog; pass null to read the identity from the config
83 * msg = message to use in the reflog
84 *
85 * Returns: 0, git_error_code.GIT_ENOTFOUND if the reference is not among the locked ones, or an error code
86 */87 //GIT_EXTERN88 intgit_transaction_set_symbolic_target(libgit2_d.types.git_transaction* tx, const (char)* refname, const (char)* target, const (libgit2_d.types.git_signature)* sig, const (char)* msg);
89 90 /**
91 * Set the reflog of a reference
92 *
93 * Set the specified reference's reflog. If this is combined with
94 * setting the target, that update won't be written to the reflog.
95 *
96 * Params:
97 * tx = the transaction
98 * refname = the reference whose reflog to set
99 * reflog = the reflog as it should be written out
100 *
101 * Returns: 0, git_error_code.GIT_ENOTFOUND if the reference is not among the locked ones, or an error code
102 */103 //GIT_EXTERN104 intgit_transaction_set_reflog(libgit2_d.types.git_transaction* tx, const (char)* refname, const (libgit2_d.types.git_reflog)* reflog);
105 106 /**
107 * Remove a reference
108 *
109 * Params:
110 * tx = the transaction
111 * refname = the reference to remove
112 *
113 * Returns: 0, git_error_code.GIT_ENOTFOUND if the reference is not among the locked ones, or an error code
114 */115 //GIT_EXTERN116 intgit_transaction_remove(libgit2_d.types.git_transaction* tx, const (char)* refname);
117 118 /**
119 * Commit the changes from the transaction
120 *
121 * Perform the changes that have been queued. The updates will be made
122 * one by one, and the first failure will stop the processing.
123 *
124 * Params:
125 * tx = the transaction
126 *
127 * Returns: 0 or an error code
128 */129 //GIT_EXTERN130 intgit_transaction_commit(libgit2_d.types.git_transaction* tx);
131 132 /**
133 * Free the resources allocated by this transaction
134 *
135 * If any references remain locked, they will be unlocked without any
136 * changes made to them.
137 *
138 * Params:
139 * tx = the transaction
140 */141 //GIT_EXTERN142 voidgit_transaction_free(libgit2_d.types.git_transaction* tx);
143 144 /** @} */