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.reflog;
8 9 10 privatestaticimportlibgit2_d.oid;
11 privatestaticimportlibgit2_d.types;
12 13 /**
14 * @file git2/reflog.h
15 * @brief Git reflog management routines
16 * @defgroup git_reflog Git reflog management routines
17 * @ingroup Git
18 * @{
19 */20 extern (C):
21 nothrow @nogc:
22 public:
23 24 /**
25 * Read the reflog for the given reference
26 *
27 * If there is no reflog file for the given
28 * reference yet, an empty reflog object will
29 * be returned.
30 *
31 * The reflog must be freed manually by using
32 * git_reflog_free().
33 *
34 * Params:
35 * out_ = pointer to reflog
36 * repo = the repostiory
37 * name = reference to look up
38 *
39 * Returns: 0 or an error code
40 */41 //GIT_EXTERN42 intgit_reflog_read(libgit2_d.types.git_reflog** out_, libgit2_d.types.git_repository* repo, const (char)* name);
43 44 /**
45 * Write an existing in-memory reflog object back to disk
46 * using an atomic file lock.
47 *
48 * Params:
49 * reflog = an existing reflog object
50 *
51 * Returns: 0 or an error code
52 */53 //GIT_EXTERN54 intgit_reflog_write(libgit2_d.types.git_reflog* reflog);
55 56 /**
57 * Add a new entry to the in-memory reflog.
58 *
59 * `msg` is optional and can be null.
60 *
61 * Params:
62 * reflog = an existing reflog object
63 * id = the OID the reference is now pointing to
64 * committer = the signature of the committer
65 * msg = the reflog message
66 *
67 * Returns: 0 or an error code
68 */69 //GIT_EXTERN70 intgit_reflog_append(libgit2_d.types.git_reflog* reflog, const (libgit2_d.oid.git_oid)* id, const (libgit2_d.types.git_signature)* committer, const (char)* msg);
71 72 /**
73 * Rename a reflog
74 *
75 * The reflog to be renamed is expected to already exist
76 *
77 * The new name will be checked for validity.
78 * See `git_reference_create_symbolic()` for rules about valid names.
79 *
80 * Params:
81 * repo = the repository
82 * old_name = the old name of the reference
83 * name = the new name of the reference
84 *
85 * Returns: 0 on success, git_error_code.GIT_EINVALIDSPEC or an error code
86 */87 //GIT_EXTERN88 intgit_reflog_rename(libgit2_d.types.git_repository* repo, const (char)* old_name, const (char)* name);
89 90 /**
91 * Delete the reflog for the given reference
92 *
93 * Params:
94 * repo = the repository
95 * name = the reflog to delete
96 *
97 * Returns: 0 or an error code
98 */99 //GIT_EXTERN100 intgit_reflog_delete(libgit2_d.types.git_repository* repo, const (char)* name);
101 102 /**
103 * Get the number of log entries in a reflog
104 *
105 * Params:
106 * reflog = the previously loaded reflog
107 *
108 * Returns: the number of log entries
109 */110 //GIT_EXTERN111 size_tgit_reflog_entrycount(libgit2_d.types.git_reflog* reflog);
112 113 /**
114 * Lookup an entry by its index
115 *
116 * Requesting the reflog entry with an index of 0 (zero) will
117 * return the most recently created entry.
118 *
119 * Params:
120 * reflog = a previously loaded reflog
121 * idx = the position of the entry to lookup. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`.
122 *
123 * Returns: the entry; null if not found
124 */125 //GIT_EXTERN126 const (libgit2_d.types.git_reflog_entry)* git_reflog_entry_byindex(const (libgit2_d.types.git_reflog)* reflog, size_tidx);
127 128 /**
129 * Remove an entry from the reflog by its index
130 *
131 * To ensure there's no gap in the log history, set `rewrite_previous_entry`
132 * param value to 1. When deleting entry `n`, member old_oid of entry `n-1`
133 * (if any) will be updated with the value of member new_oid of entry `n+1`.
134 *
135 * Params:
136 * reflog = a previously loaded reflog.
137 * idx = the position of the entry to remove. Should be greater than or equal to 0 (zero) and less than `git_reflog_entrycount()`.
138 * rewrite_previous_entry = 1 to rewrite the history; 0 otherwise.
139 *
140 * Returns: 0 on success, git_error_code.GIT_ENOTFOUND if the entry doesn't exist or an error code.
141 */142 //GIT_EXTERN143 intgit_reflog_drop(libgit2_d.types.git_reflog* reflog, size_tidx, intrewrite_previous_entry);
144 145 /**
146 * Get the old oid
147 *
148 * Params:
149 * entry = a reflog entry
150 *
151 * Returns: the old oid
152 */153 //GIT_EXTERN154 const (libgit2_d.oid.git_oid)* git_reflog_entry_id_old(const (libgit2_d.types.git_reflog_entry)* entry);
155 156 /**
157 * Get the new oid
158 *
159 * Params:
160 * entry = a reflog entry
161 *
162 * Returns: the new oid at this time
163 */164 //GIT_EXTERN165 const (libgit2_d.oid.git_oid)* git_reflog_entry_id_new(const (libgit2_d.types.git_reflog_entry)* entry);
166 167 /**
168 * Get the committer of this entry
169 *
170 * Params:
171 * entry = a reflog entry
172 *
173 * Returns: the committer
174 */175 //GIT_EXTERN176 const (libgit2_d.types.git_signature)* git_reflog_entry_committer(const (libgit2_d.types.git_reflog_entry)* entry);
177 178 /**
179 * Get the log message
180 *
181 * Params:
182 * entry = a reflog entry
183 *
184 * Returns: the log msg
185 */186 //GIT_EXTERN187 const (char)* git_reflog_entry_message(const (libgit2_d.types.git_reflog_entry)* entry);
188 189 /**
190 * Free the reflog
191 *
192 * Params:
193 * reflog = reflog to free
194 */195 //GIT_EXTERN196 voidgit_reflog_free(libgit2_d.types.git_reflog* reflog);
197 198 /** @} */