rugged 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rugged/version.rb +1 -1
  3. data/vendor/libgit2/CMakeLists.txt +1 -1
  4. data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +1 -0
  5. data/vendor/libgit2/deps/ntlmclient/compat.h +0 -34
  6. data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +1 -1
  7. data/vendor/libgit2/deps/ntlmclient/ntlm.c +5 -5
  8. data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
  9. data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
  10. data/vendor/libgit2/include/git2/apply.h +2 -0
  11. data/vendor/libgit2/include/git2/blob.h +17 -1
  12. data/vendor/libgit2/include/git2/common.h +5 -0
  13. data/vendor/libgit2/include/git2/config.h +1 -1
  14. data/vendor/libgit2/include/git2/diff.h +1 -1
  15. data/vendor/libgit2/include/git2/index.h +2 -2
  16. data/vendor/libgit2/include/git2/indexer.h +2 -1
  17. data/vendor/libgit2/include/git2/odb.h +15 -20
  18. data/vendor/libgit2/include/git2/refs.h +3 -3
  19. data/vendor/libgit2/include/git2/repository.h +95 -52
  20. data/vendor/libgit2/include/git2/transport.h +1 -1
  21. data/vendor/libgit2/include/git2/tree.h +2 -0
  22. data/vendor/libgit2/include/git2/version.h +2 -2
  23. data/vendor/libgit2/src/blame.c +15 -10
  24. data/vendor/libgit2/src/blob.c +9 -0
  25. data/vendor/libgit2/src/clone.c +42 -21
  26. data/vendor/libgit2/src/config_cache.c +6 -3
  27. data/vendor/libgit2/src/diff_tform.c +2 -2
  28. data/vendor/libgit2/src/index.c +6 -5
  29. data/vendor/libgit2/src/indexer.c +19 -3
  30. data/vendor/libgit2/src/integer.h +15 -0
  31. data/vendor/libgit2/src/merge.c +5 -2
  32. data/vendor/libgit2/src/mwindow.c +3 -1
  33. data/vendor/libgit2/src/odb.c +4 -3
  34. data/vendor/libgit2/src/pack.c +10 -6
  35. data/vendor/libgit2/src/posix.c +32 -9
  36. data/vendor/libgit2/src/posix.h +9 -0
  37. data/vendor/libgit2/src/refdb_fs.c +4 -2
  38. data/vendor/libgit2/src/refs.c +20 -7
  39. data/vendor/libgit2/src/refs.h +1 -1
  40. data/vendor/libgit2/src/refspec.c +48 -32
  41. data/vendor/libgit2/src/remote.c +13 -7
  42. data/vendor/libgit2/src/repository.c +15 -15
  43. data/vendor/libgit2/src/repository.h +1 -1
  44. data/vendor/libgit2/src/thread-utils.h +24 -19
  45. data/vendor/libgit2/src/transports/httpclient.c +9 -4
  46. data/vendor/libgit2/src/transports/winhttp.c +99 -52
  47. data/vendor/libgit2/src/unix/posix.h +3 -0
  48. data/vendor/libgit2/src/win32/posix_w32.c +70 -0
  49. data/vendor/libgit2/src/worktree.c +8 -1
  50. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bbddd8ed7b9186720e00287a27151807d91fb5bae97754109b7889ef9518d9b9
4
- data.tar.gz: 21b205847f5ebeb4acaa10025ccb2703efc89791825df5790960447e7cdf8a57
3
+ metadata.gz: 3a1ceba88401d9f47e851b97baaa27f2604baa0bb47ee81a4616e238c0706867
4
+ data.tar.gz: 514e432c6e411dfe4e185e5cfcd831c5110cf7a1da819390de46045b01446ea3
5
5
  SHA512:
6
- metadata.gz: e5b9bfd98f318ada120b757c77d25509ead843a1902065b26fb5427e3507ee67493679d2e8c6dc622daa50fb31c4cc787d59b030ce450679cec5c4d2e09aacb2
7
- data.tar.gz: 7a6fc974d28c9205662f980c0d2067cb077d4b825798d9781a31fffddb7d0041739b6d68d36fc4cf59082ff8f4fc4e500810a40c54081e1df7f59cabdcbdbebc
6
+ metadata.gz: cb345a0ed8a223c30f86e0878b098d9e88b9d2b096bdb67b3b3fb9c82be6c8b9dd5677224f50b1d765032386eaa3926b331864af5b754bc175cd9a268fd939da
7
+ data.tar.gz: 959b9bb61ab95c6f250a605984846577f74a1b33a9165ca1daa7641f8f1b507f239d5b17bfb4de01180c81eb1e7d3ff3ba5aa6aa40740cb0788753040e5d887d
@@ -4,5 +4,5 @@
4
4
  # For full terms see the included LICENSE file.
5
5
 
6
6
  module Rugged
7
- Version = VERSION = '1.1.0'
7
+ Version = VERSION = '1.1.1'
8
8
  end
@@ -13,7 +13,7 @@
13
13
 
14
14
  CMAKE_MINIMUM_REQUIRED(VERSION 3.5.1)
15
15
 
16
- project(libgit2 VERSION "1.1.0" LANGUAGES C)
16
+ project(libgit2 VERSION "1.1.1" LANGUAGES C)
17
17
 
18
18
  # Add find modules to the path
19
19
  set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${libgit2_SOURCE_DIR}/cmake/")
@@ -16,6 +16,7 @@ ELSEIF(USE_HTTPS STREQUAL "OpenSSL")
16
16
  SET(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c")
17
17
  ELSEIF(USE_HTTPS STREQUAL "mbedTLS")
18
18
  ADD_DEFINITIONS(-DCRYPT_MBEDTLS)
19
+ INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIR})
19
20
  SET(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c")
20
21
  ELSE()
21
22
  MESSAGE(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${USE_HTTPS}) for NTLM crypto")
@@ -21,40 +21,6 @@
21
21
  # include <stdbool.h>
22
22
  #endif
23
23
 
24
- #if defined(_WIN32) || defined(__APPLE__)
25
- /* winsock and macOS > 10.9 have htonll already */
26
- #elif defined(__linux__)
27
- /* See man page endian(3) */
28
- # include <endian.h>
29
- # define htonll htobe64
30
- #elif defined(__NetBSD__) || defined(__OpenBSD__)
31
- /* See man page htobe64(3) */
32
- # include <endian.h>
33
- # define htonll htobe64
34
- #elif defined(__FreeBSD__)
35
- /* See man page bwaps64(9) */
36
- # include <sys/endian.h>
37
- # define htonll htobe64
38
- #elif defined(sun) || defined(__sun)
39
- /* See man page byteorder(3SOCKET) */
40
- # include <sys/types.h>
41
- # include <netinet/in.h>
42
- # include <inttypes.h>
43
-
44
- # if !defined(htonll)
45
- # if defined(_BIG_ENDIAN)
46
- # define htonll(x) (x)
47
- # else
48
- # define htonll(x) ((((uint64_t)htonl(x)) << 32) + htonl((uint64_t)(x) >> 32))
49
- # endif
50
- # endif
51
- #elif defined(__HAIKU__)
52
- # include <ByteOrder.h>
53
- # define htonll B_HOST_TO_BENDIAN_INT64
54
- #else
55
- # error "Please implement htonll for your platform"
56
- #endif
57
-
58
24
  #ifndef MIN
59
25
  # define MIN(x, y) (((x) < (y)) ? (x) : (y))
60
26
  #endif
@@ -71,7 +71,7 @@ static inline void HMAC_CTX_free(HMAC_CTX *ctx)
71
71
  static inline int HMAC_CTX_reset(HMAC_CTX *ctx)
72
72
  {
73
73
  HMAC_CTX_cleanup(ctx);
74
- memzero(ctx, sizeof(HMAC_CTX));
74
+ ntlm_memzero(ctx, sizeof(HMAC_CTX));
75
75
  return 1;
76
76
  }
77
77
 
@@ -132,10 +132,10 @@ int ntlm_client_set_hostname(
132
132
  static void free_credentials(ntlm_client *ntlm)
133
133
  {
134
134
  if (ntlm->password)
135
- memzero(ntlm->password, strlen(ntlm->password));
135
+ ntlm_memzero(ntlm->password, strlen(ntlm->password));
136
136
 
137
137
  if (ntlm->password_utf16)
138
- memzero(ntlm->password_utf16, ntlm->password_utf16_len);
138
+ ntlm_memzero(ntlm->password_utf16, ntlm->password_utf16_len);
139
139
 
140
140
  free(ntlm->username);
141
141
  free(ntlm->username_upper);
@@ -1125,7 +1125,7 @@ static bool generate_lm2_response(ntlm_client *ntlm,
1125
1125
  size_t lm2_len = 16;
1126
1126
  uint64_t local_nonce;
1127
1127
 
1128
- local_nonce = htonll(ntlm->nonce);
1128
+ local_nonce = ntlm_htonll(ntlm->nonce);
1129
1129
 
1130
1130
  if (!ntlm_hmac_ctx_reset(ntlm->hmac_ctx) ||
1131
1131
  !ntlm_hmac_md5_init(ntlm->hmac_ctx,
@@ -1197,8 +1197,8 @@ static bool generate_ntlm2_response(ntlm_client *ntlm)
1197
1197
 
1198
1198
  /* the blob's integer values are in network byte order */
1199
1199
  signature = htonl(0x01010000);
1200
- timestamp = htonll(ntlm->timestamp);
1201
- nonce = htonll(ntlm->nonce);
1200
+ timestamp = ntlm_htonll(ntlm->timestamp);
1201
+ nonce = ntlm_htonll(ntlm->nonce);
1202
1202
 
1203
1203
  /* construct the blob */
1204
1204
  memcpy(&blob[0], &signature, 4);
@@ -8,14 +8,28 @@
8
8
 
9
9
  #include <stdlib.h>
10
10
  #include <stdint.h>
11
+ #include <arpa/inet.h>
11
12
 
12
13
  #include "compat.h"
13
14
  #include "util.h"
14
15
 
15
- void memzero(void *data, size_t size)
16
+ void ntlm_memzero(void *data, size_t size)
16
17
  {
17
18
  volatile uint8_t *scan = (volatile uint8_t *)data;
18
19
 
19
20
  while (size--)
20
21
  *scan++ = 0x0;
21
22
  }
23
+
24
+ uint64_t ntlm_htonll(uint64_t value)
25
+ {
26
+ static union {
27
+ uint32_t i;
28
+ char c[8];
29
+ } test = { 0x01020304 };
30
+
31
+ if (test.c[0] == 0x01)
32
+ return value;
33
+ else
34
+ return ((uint64_t)htonl(value) << 32) | htonl((uint64_t)value >> 32);
35
+ }
@@ -9,6 +9,7 @@
9
9
  #ifndef PRIVATE_UTIL_H__
10
10
  #define PRIVATE_UTIL_H__
11
11
 
12
- extern void memzero(void *data, size_t size);
12
+ extern void ntlm_memzero(void *data, size_t size);
13
+ extern uint64_t ntlm_htonll(uint64_t value);
13
14
 
14
15
  #endif /* PRIVATE_UTIL_H__ */
@@ -100,6 +100,7 @@ GIT_EXTERN(int) git_apply_options_init(git_apply_options *opts, unsigned int ver
100
100
  * @param preimage the tree to apply the diff to
101
101
  * @param diff the diff to apply
102
102
  * @param options the options for the apply (or null for defaults)
103
+ * @return 0 or an error code
103
104
  */
104
105
  GIT_EXTERN(int) git_apply_to_tree(
105
106
  git_index **out,
@@ -137,6 +138,7 @@ typedef enum {
137
138
  * @param diff the diff to apply
138
139
  * @param location the location to apply (workdir, index or both)
139
140
  * @param options the options for the apply (or null for defaults)
141
+ * @return 0 or an error code
140
142
  */
141
143
  GIT_EXTERN(int) git_apply(
142
144
  git_repository *repo,
@@ -118,6 +118,10 @@ typedef enum {
118
118
 
119
119
  /**
120
120
  * The options used when applying filter options to a file.
121
+ *
122
+ * Initialize with `GIT_BLOB_FILTER_OPTIONS_INIT`. Alternatively, you can
123
+ * use `git_blob_filter_options_init`.
124
+ *
121
125
  */
122
126
  typedef struct {
123
127
  int version;
@@ -129,6 +133,18 @@ typedef struct {
129
133
  #define GIT_BLOB_FILTER_OPTIONS_VERSION 1
130
134
  #define GIT_BLOB_FILTER_OPTIONS_INIT {GIT_BLOB_FILTER_OPTIONS_VERSION, GIT_BLOB_FILTER_CHECK_FOR_BINARY}
131
135
 
136
+ /**
137
+ * Initialize git_blob_filter_options structure
138
+ *
139
+ * Initializes a `git_blob_filter_options` with default values. Equivalent
140
+ * to creating an instance with `GIT_BLOB_FILTER_OPTIONS_INIT`.
141
+ *
142
+ * @param opts The `git_blob_filter_options` struct to initialize.
143
+ * @param version The struct version; pass `GIT_BLOB_FILTER_OPTIONS_VERSION`.
144
+ * @return Zero on success; -1 on failure.
145
+ */
146
+ GIT_EXTERN(int) git_blob_filter_options_init(git_blob_filter_options *opts, unsigned int version);
147
+
132
148
  /**
133
149
  * Get a buffer with the filtered content of a blob.
134
150
  *
@@ -229,7 +245,7 @@ GIT_EXTERN(int) git_blob_create_from_stream_commit(
229
245
  * Write an in-memory buffer to the ODB as a blob
230
246
  *
231
247
  * @param id return the id of the written blob
232
- * @param repo repository where to blob will be written
248
+ * @param repo repository where the blob will be written
233
249
  * @param buffer data to be written into the blob
234
250
  * @param len length of the data
235
251
  * @return 0 or an error code
@@ -356,6 +356,11 @@ typedef enum {
356
356
  * >
357
357
  * > - `ciphers` is the list of ciphers that are eanbled.
358
358
  *
359
+ * * opts(GIT_OPT_GET_USER_AGENT, git_buf *out)
360
+ *
361
+ * > Get the value of the User-Agent header.
362
+ * > The User-Agent is written to the `out` buffer.
363
+ *
359
364
  * * opts(GIT_OPT_ENABLE_OFS_DELTA, int enabled)
360
365
  *
361
366
  * > Enable or disable the use of "offset deltas" when creating packfiles,
@@ -263,7 +263,7 @@ GIT_EXTERN(int) git_config_open_level(
263
263
  *
264
264
  * Git allows you to store your global configuration at
265
265
  * `$HOME/.gitconfig` or `$XDG_CONFIG_HOME/git/config`. For backwards
266
- * compatability, the XDG file shouldn't be used unless the use has
266
+ * compatibility, the XDG file shouldn't be used unless the use has
267
267
  * created it explicitly. With this function you'll open the correct
268
268
  * one to write to.
269
269
  *
@@ -998,7 +998,7 @@ GIT_EXTERN(size_t) git_diff_num_deltas(const git_diff *diff);
998
998
  /**
999
999
  * Query how many diff deltas are there in a diff filtered by type.
1000
1000
  *
1001
- * This works just like `git_diff_entrycount()` with an extra parameter
1001
+ * This works just like `git_diff_num_deltas()` with an extra parameter
1002
1002
  * that is a `git_delta_t` and returns just the count of how many deltas
1003
1003
  * match that particular type.
1004
1004
  *
@@ -349,7 +349,7 @@ GIT_EXTERN(int) git_index_write_tree(git_oid *out, git_index *index);
349
349
  *
350
350
  * The index must not contain any file in conflict.
351
351
  *
352
- * @param out Pointer where to store OID of the the written tree
352
+ * @param out Pointer where to store OID of the written tree
353
353
  * @param index Index to write
354
354
  * @param repo Repository where to write the tree
355
355
  * @return 0 on success, GIT_EUNMERGED when the index is not clean
@@ -702,7 +702,7 @@ GIT_EXTERN(int) git_index_update_all(
702
702
  * @param at_pos the address to which the position of the index entry is written (optional)
703
703
  * @param index an existing index object
704
704
  * @param path path to search
705
- * @return a zero-based position in the index if found; GIT_ENOTFOUND otherwise
705
+ * @return 0 with valid value in at_pos; an error code otherwise
706
706
  */
707
707
  GIT_EXTERN(int) git_index_find(size_t *at_pos, git_index *index, const char *path);
708
708
 
@@ -51,7 +51,7 @@ typedef struct git_indexer_progress {
51
51
  * Type for progress callbacks during indexing. Return a value less
52
52
  * than zero to cancel the indexing or download.
53
53
  *
54
- * @param stats Structure containing information about the state of the tran sfer
54
+ * @param stats Structure containing information about the state of the transfer
55
55
  * @param payload Payload provided by caller
56
56
  */
57
57
  typedef int GIT_CALLBACK(git_indexer_progress_cb)(const git_indexer_progress *stats, void *payload);
@@ -64,6 +64,7 @@ typedef struct git_indexer_options {
64
64
 
65
65
  /** progress_cb function to call with progress information */
66
66
  git_indexer_progress_cb progress_cb;
67
+
67
68
  /** progress_cb_payload payload for the progress callback */
68
69
  void *progress_cb_payload;
69
70
 
@@ -70,7 +70,7 @@ GIT_EXTERN(int) git_odb_open(git_odb **out, const char *objects_dir);
70
70
  *
71
71
  * @param odb database to add the backend to
72
72
  * @param path path to the objects folder for the alternate
73
- * @return 0 on success; error code otherwise
73
+ * @return 0 on success, error code otherwise
74
74
  */
75
75
  GIT_EXTERN(int) git_odb_add_disk_alternate(git_odb *odb, const char *path);
76
76
 
@@ -94,9 +94,8 @@ GIT_EXTERN(void) git_odb_free(git_odb *db);
94
94
  * @param out pointer where to store the read object
95
95
  * @param db database to search for the object in.
96
96
  * @param id identity of the object to read.
97
- * @return
98
- * - 0 if the object was read;
99
- * - GIT_ENOTFOUND if the object is not in the database.
97
+ * @return 0 if the object was read, GIT_ENOTFOUND if the object is
98
+ * not in the database.
100
99
  */
101
100
  GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *id);
102
101
 
@@ -122,10 +121,9 @@ GIT_EXTERN(int) git_odb_read(git_odb_object **out, git_odb *db, const git_oid *i
122
121
  * @param db database to search for the object in.
123
122
  * @param short_id a prefix of the id of the object to read.
124
123
  * @param len the length of the prefix
125
- * @return
126
- * - 0 if the object was read;
127
- * - GIT_ENOTFOUND if the object is not in the database.
128
- * - GIT_EAMBIGUOUS if the prefix is ambiguous (several objects match the prefix)
124
+ * @return 0 if the object was read, GIT_ENOTFOUND if the object is not in the
125
+ * database. GIT_EAMBIGUOUS if the prefix is ambiguous
126
+ * (several objects match the prefix)
129
127
  */
130
128
  GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **out, git_odb *db, const git_oid *short_id, size_t len);
131
129
 
@@ -143,9 +141,8 @@ GIT_EXTERN(int) git_odb_read_prefix(git_odb_object **out, git_odb *db, const git
143
141
  * @param type_out pointer where to store the type
144
142
  * @param db database to search for the object in.
145
143
  * @param id identity of the object to read.
146
- * @return
147
- * - 0 if the object was read;
148
- * - GIT_ENOTFOUND if the object is not in the database.
144
+ * @return 0 if the object was read, GIT_ENOTFOUND if the object is not
145
+ * in the database.
149
146
  */
150
147
  GIT_EXTERN(int) git_odb_read_header(size_t *len_out, git_object_t *type_out, git_odb *db, const git_oid *id);
151
148
 
@@ -154,9 +151,7 @@ GIT_EXTERN(int) git_odb_read_header(size_t *len_out, git_object_t *type_out, git
154
151
  *
155
152
  * @param db database to be searched for the given object.
156
153
  * @param id the object to search for.
157
- * @return
158
- * - 1, if the object was found
159
- * - 0, otherwise
154
+ * @return 1 if the object was found, 0 otherwise
160
155
  */
161
156
  GIT_EXTERN(int) git_odb_exists(git_odb *db, const git_oid *id);
162
157
 
@@ -305,7 +300,7 @@ GIT_EXTERN(int) git_odb_open_wstream(git_odb_stream **out, git_odb *db, git_obje
305
300
  * @param stream the stream
306
301
  * @param buffer the data to write
307
302
  * @param len the buffer's length
308
- * @return 0 if the write succeeded; error code otherwise
303
+ * @return 0 if the write succeeded, error code otherwise
309
304
  */
310
305
  GIT_EXTERN(int) git_odb_stream_write(git_odb_stream *stream, const char *buffer, size_t len);
311
306
 
@@ -320,7 +315,7 @@ GIT_EXTERN(int) git_odb_stream_write(git_odb_stream *stream, const char *buffer,
320
315
  *
321
316
  * @param out pointer to store the resulting object's id
322
317
  * @param stream the stream
323
- * @return 0 on success; an error code otherwise
318
+ * @return 0 on success, an error code otherwise
324
319
  */
325
320
  GIT_EXTERN(int) git_odb_stream_finalize_write(git_oid *out, git_odb_stream *stream);
326
321
 
@@ -362,7 +357,7 @@ GIT_EXTERN(void) git_odb_stream_free(git_odb_stream *stream);
362
357
  * @param type pointer where to store the type of the object
363
358
  * @param db object database where the stream will read from
364
359
  * @param oid oid of the object the stream will read from
365
- * @return 0 if the stream was created; error code otherwise
360
+ * @return 0 if the stream was created, error code otherwise
366
361
  */
367
362
  GIT_EXTERN(int) git_odb_open_rstream(
368
363
  git_odb_stream **out,
@@ -501,7 +496,7 @@ GIT_EXTERN(git_object_t) git_odb_object_type(git_odb_object *object);
501
496
  * @param odb database to add the backend to
502
497
  * @param backend pointer to a git_odb_backend instance
503
498
  * @param priority Value for ordering the backends queue
504
- * @return 0 on success; error code otherwise
499
+ * @return 0 on success, error code otherwise
505
500
  */
506
501
  GIT_EXTERN(int) git_odb_add_backend(git_odb *odb, git_odb_backend *backend, int priority);
507
502
 
@@ -522,7 +517,7 @@ GIT_EXTERN(int) git_odb_add_backend(git_odb *odb, git_odb_backend *backend, int
522
517
  * @param odb database to add the backend to
523
518
  * @param backend pointer to a git_odb_backend instance
524
519
  * @param priority Value for ordering the backends queue
525
- * @return 0 on success; error code otherwise
520
+ * @return 0 on success, error code otherwise
526
521
  */
527
522
  GIT_EXTERN(int) git_odb_add_alternate(git_odb *odb, git_odb_backend *backend, int priority);
528
523
 
@@ -540,7 +535,7 @@ GIT_EXTERN(size_t) git_odb_num_backends(git_odb *odb);
540
535
  * @param out output pointer to ODB backend at pos
541
536
  * @param odb object database
542
537
  * @param pos index into object database backend list
543
- * @return 0 on success; GIT_ENOTFOUND if pos is invalid; other errors < 0
538
+ * @return 0 on success, GIT_ENOTFOUND if pos is invalid, other errors < 0
544
539
  */
545
540
  GIT_EXTERN(int) git_odb_get_backend(git_odb_backend **out, git_odb *odb, size_t pos);
546
541
 
@@ -169,7 +169,7 @@ GIT_EXTERN(int) git_reference_symbolic_create(git_reference **out, git_repositor
169
169
  *
170
170
  * The message for the reflog will be ignored if the reference does
171
171
  * not belong in the standard set (HEAD, branches and remote-tracking
172
- * branches) and and it does not have a reflog.
172
+ * branches) and it does not have a reflog.
173
173
  *
174
174
  * @param out Pointer to the newly created reference
175
175
  * @param repo Repository where that reference will live
@@ -206,7 +206,7 @@ GIT_EXTERN(int) git_reference_create(git_reference **out, git_repository *repo,
206
206
  *
207
207
  * The message for the reflog will be ignored if the reference does
208
208
  * not belong in the standard set (HEAD, branches and remote-tracking
209
- * branches) and and it does not have a reflog.
209
+ * branches) and it does not have a reflog.
210
210
  *
211
211
  * It will return GIT_EMODIFIED if the reference's value at the time
212
212
  * of updating does not match the one passed through `current_id`
@@ -318,7 +318,7 @@ GIT_EXTERN(git_repository *) git_reference_owner(const git_reference *ref);
318
318
  *
319
319
  * The message for the reflog will be ignored if the reference does
320
320
  * not belong in the standard set (HEAD, branches and remote-tracking
321
- * branches) and and it does not have a reflog.
321
+ * branches) and it does not have a reflog.
322
322
  *
323
323
  * @param out Pointer to the newly created reference
324
324
  * @param ref The reference
@@ -219,36 +219,54 @@ GIT_EXTERN(int) git_repository_init(
219
219
  *
220
220
  * These flags configure extra behaviors to `git_repository_init_ext`.
221
221
  * In every case, the default behavior is the zero value (i.e. flag is
222
- * not set). Just OR the flag values together for the `flags` parameter
223
- * when initializing a new repo. Details of individual values are:
224
- *
225
- * * BARE - Create a bare repository with no working directory.
226
- * * NO_REINIT - Return an GIT_EEXISTS error if the repo_path appears to
227
- * already be an git repository.
228
- * * NO_DOTGIT_DIR - Normally a "/.git/" will be appended to the repo
229
- * path for non-bare repos (if it is not already there), but
230
- * passing this flag prevents that behavior.
231
- * * MKDIR - Make the repo_path (and workdir_path) as needed. Init is
232
- * always willing to create the ".git" directory even without this
233
- * flag. This flag tells init to create the trailing component of
234
- * the repo and workdir paths as needed.
235
- * * MKPATH - Recursively make all components of the repo and workdir
236
- * paths as necessary.
237
- * * EXTERNAL_TEMPLATE - libgit2 normally uses internal templates to
238
- * initialize a new repo. This flags enables external templates,
239
- * looking the "template_path" from the options if set, or the
240
- * `init.templatedir` global config if not, or falling back on
241
- * "/usr/share/git-core/templates" if it exists.
242
- * * GIT_REPOSITORY_INIT_RELATIVE_GITLINK - If an alternate workdir is
243
- * specified, use relative paths for the gitdir and core.worktree.
222
+ * not set). Just OR the flag values together for the `flags` parameter
223
+ * when initializing a new repo.
244
224
  */
245
225
  typedef enum {
226
+ /**
227
+ * Create a bare repository with no working directory.
228
+ */
246
229
  GIT_REPOSITORY_INIT_BARE = (1u << 0),
230
+
231
+ /**
232
+ * Return an GIT_EEXISTS error if the repo_path appears to already be
233
+ * an git repository.
234
+ */
247
235
  GIT_REPOSITORY_INIT_NO_REINIT = (1u << 1),
236
+
237
+ /**
238
+ * Normally a "/.git/" will be appended to the repo path for
239
+ * non-bare repos (if it is not already there), but passing this flag
240
+ * prevents that behavior.
241
+ */
248
242
  GIT_REPOSITORY_INIT_NO_DOTGIT_DIR = (1u << 2),
243
+
244
+ /**
245
+ * Make the repo_path (and workdir_path) as needed. Init is always willing
246
+ * to create the ".git" directory even without this flag. This flag tells
247
+ * init to create the trailing component of the repo and workdir paths
248
+ * as needed.
249
+ */
249
250
  GIT_REPOSITORY_INIT_MKDIR = (1u << 3),
251
+
252
+ /**
253
+ * Recursively make all components of the repo and workdir paths as
254
+ * necessary.
255
+ */
250
256
  GIT_REPOSITORY_INIT_MKPATH = (1u << 4),
257
+
258
+ /**
259
+ * libgit2 normally uses internal templates to initialize a new repo.
260
+ * This flags enables external templates, looking the "template_path" from
261
+ * the options if set, or the `init.templatedir` global config if not,
262
+ * or falling back on "/usr/share/git-core/templates" if it exists.
263
+ */
251
264
  GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE = (1u << 5),
265
+
266
+ /**
267
+ * If an alternate workdir is specified, use relative paths for the gitdir
268
+ * and core.worktree.
269
+ */
252
270
  GIT_REPOSITORY_INIT_RELATIVE_GITLINK = (1u << 6),
253
271
  } git_repository_init_flag_t;
254
272
 
@@ -257,17 +275,23 @@ typedef enum {
257
275
  *
258
276
  * Set the mode field of the `git_repository_init_options` structure
259
277
  * either to the custom mode that you would like, or to one of the
260
- * following modes:
261
- *
262
- * * SHARED_UMASK - Use permissions configured by umask - the default.
263
- * * SHARED_GROUP - Use "--shared=group" behavior, chmod'ing the new repo
264
- * to be group writable and "g+sx" for sticky group assignment.
265
- * * SHARED_ALL - Use "--shared=all" behavior, adding world readability.
266
- * * Anything else - Set to custom value.
278
+ * defined modes.
267
279
  */
268
280
  typedef enum {
281
+ /**
282
+ * Use permissions configured by umask - the default.
283
+ */
269
284
  GIT_REPOSITORY_INIT_SHARED_UMASK = 0,
285
+
286
+ /**
287
+ * Use "--shared=group" behavior, chmod'ing the new repo to be group
288
+ * writable and "g+sx" for sticky group assignment.
289
+ */
270
290
  GIT_REPOSITORY_INIT_SHARED_GROUP = 0002775,
291
+
292
+ /**
293
+ * Use "--shared=all" behavior, adding world readability.
294
+ */
271
295
  GIT_REPOSITORY_INIT_SHARED_ALL = 0002777,
272
296
  } git_repository_init_mode_t;
273
297
 
@@ -275,38 +299,57 @@ typedef enum {
275
299
  * Extended options structure for `git_repository_init_ext`.
276
300
  *
277
301
  * This contains extra options for `git_repository_init_ext` that enable
278
- * additional initialization features. The fields are:
279
- *
280
- * * flags - Combination of GIT_REPOSITORY_INIT flags above.
281
- * * mode - Set to one of the standard GIT_REPOSITORY_INIT_SHARED_...
282
- * constants above, or to a custom value that you would like.
283
- * * workdir_path - The path to the working dir or NULL for default (i.e.
284
- * repo_path parent on non-bare repos). IF THIS IS RELATIVE PATH,
285
- * IT WILL BE EVALUATED RELATIVE TO THE REPO_PATH. If this is not
286
- * the "natural" working directory, a .git gitlink file will be
287
- * created here linking to the repo_path.
288
- * * description - If set, this will be used to initialize the "description"
289
- * file in the repository, instead of using the template content.
290
- * * template_path - When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set,
291
- * this contains the path to use for the template directory. If
292
- * this is NULL, the config or default directory options will be
293
- * used instead.
294
- * * initial_head - The name of the head to point HEAD at. If NULL, then
295
- * this will be treated as "master" and the HEAD ref will be set
296
- * to "refs/heads/master". If this begins with "refs/" it will be
297
- * used verbatim; otherwise "refs/heads/" will be prefixed.
298
- * * origin_url - If this is non-NULL, then after the rest of the
299
- * repository initialization is completed, an "origin" remote
300
- * will be added pointing to this URL.
302
+ * additional initialization features.
301
303
  */
302
304
  typedef struct {
303
305
  unsigned int version;
306
+
307
+ /**
308
+ * Combination of GIT_REPOSITORY_INIT flags above.
309
+ */
304
310
  uint32_t flags;
311
+
312
+ /**
313
+ * Set to one of the standard GIT_REPOSITORY_INIT_SHARED_... constants
314
+ * above, or to a custom value that you would like.
315
+ */
305
316
  uint32_t mode;
317
+
318
+ /**
319
+ * The path to the working dir or NULL for default (i.e. repo_path parent
320
+ * on non-bare repos). IF THIS IS RELATIVE PATH, IT WILL BE EVALUATED
321
+ * RELATIVE TO THE REPO_PATH. If this is not the "natural" working
322
+ * directory, a .git gitlink file will be created here linking to the
323
+ * repo_path.
324
+ */
306
325
  const char *workdir_path;
326
+
327
+ /**
328
+ * If set, this will be used to initialize the "description" file in the
329
+ * repository, instead of using the template content.
330
+ */
307
331
  const char *description;
332
+
333
+ /**
334
+ * When GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE is set, this contains
335
+ * the path to use for the template directory. If this is NULL, the config
336
+ * or default directory options will be used instead.
337
+ */
308
338
  const char *template_path;
339
+
340
+ /**
341
+ * The name of the head to point HEAD at. If NULL, then this will be
342
+ * treated as "master" and the HEAD ref will be set to "refs/heads/master".
343
+ * If this begins with "refs/" it will be used verbatim;
344
+ * otherwise "refs/heads/" will be prefixed.
345
+ */
309
346
  const char *initial_head;
347
+
348
+ /**
349
+ * If this is non-NULL, then after the rest of the repository
350
+ * initialization is completed, an "origin" remote will be added
351
+ * pointing to this URL.
352
+ */
310
353
  const char *origin_url;
311
354
  } git_repository_init_options;
312
355