rugged 0.25.0b2 → 0.25.0b3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/ext/rugged/extconf.rb +3 -1
  4. data/ext/rugged/rugged.c +1 -1
  5. data/ext/rugged/rugged.h +1 -1
  6. data/ext/rugged/rugged_blob.c +29 -38
  7. data/ext/rugged/rugged_commit.c +215 -78
  8. data/ext/rugged/rugged_rebase.c +18 -11
  9. data/ext/rugged/rugged_remote.c +2 -2
  10. data/ext/rugged/rugged_tree.c +132 -0
  11. data/lib/rugged/version.rb +1 -1
  12. data/vendor/libgit2/CMakeLists.txt +11 -3
  13. data/vendor/libgit2/include/git2.h +1 -0
  14. data/vendor/libgit2/include/git2/blob.h +39 -28
  15. data/vendor/libgit2/include/git2/commit.h +30 -0
  16. data/vendor/libgit2/include/git2/common.h +16 -1
  17. data/vendor/libgit2/include/git2/merge.h +10 -1
  18. data/vendor/libgit2/include/git2/proxy.h +92 -0
  19. data/vendor/libgit2/include/git2/refs.h +11 -0
  20. data/vendor/libgit2/include/git2/remote.h +17 -4
  21. data/vendor/libgit2/include/git2/signature.h +13 -0
  22. data/vendor/libgit2/include/git2/sys/merge.h +177 -0
  23. data/vendor/libgit2/include/git2/sys/remote.h +16 -0
  24. data/vendor/libgit2/include/git2/sys/stream.h +2 -1
  25. data/vendor/libgit2/include/git2/sys/transport.h +3 -1
  26. data/vendor/libgit2/include/git2/tag.h +9 -0
  27. data/vendor/libgit2/include/git2/tree.h +55 -0
  28. data/vendor/libgit2/src/annotated_commit.c +99 -80
  29. data/vendor/libgit2/src/annotated_commit.h +5 -2
  30. data/vendor/libgit2/src/array.h +40 -0
  31. data/vendor/libgit2/src/blame.c +8 -3
  32. data/vendor/libgit2/src/blame_git.c +2 -1
  33. data/vendor/libgit2/src/blob.c +71 -39
  34. data/vendor/libgit2/src/branch.c +2 -1
  35. data/vendor/libgit2/src/checkout.c +66 -42
  36. data/vendor/libgit2/src/commit.c +67 -3
  37. data/vendor/libgit2/src/config_cache.c +2 -1
  38. data/vendor/libgit2/src/config_file.c +32 -27
  39. data/vendor/libgit2/src/curl_stream.c +89 -6
  40. data/vendor/libgit2/src/delta-apply.c +36 -5
  41. data/vendor/libgit2/src/delta-apply.h +12 -0
  42. data/vendor/libgit2/src/describe.c +3 -2
  43. data/vendor/libgit2/src/diff.c +13 -20
  44. data/vendor/libgit2/src/diff_tform.c +5 -3
  45. data/vendor/libgit2/src/filebuf.c +12 -2
  46. data/vendor/libgit2/src/filebuf.h +1 -0
  47. data/vendor/libgit2/src/fnmatch.c +18 -5
  48. data/vendor/libgit2/src/global.c +18 -0
  49. data/vendor/libgit2/src/global.h +1 -0
  50. data/vendor/libgit2/src/ignore.c +11 -3
  51. data/vendor/libgit2/src/index.c +11 -5
  52. data/vendor/libgit2/src/indexer.c +11 -7
  53. data/vendor/libgit2/src/iterator.c +1575 -1468
  54. data/vendor/libgit2/src/iterator.h +52 -69
  55. data/vendor/libgit2/src/merge.c +160 -63
  56. data/vendor/libgit2/src/merge.h +61 -2
  57. data/vendor/libgit2/src/merge_driver.c +397 -0
  58. data/vendor/libgit2/src/merge_driver.h +60 -0
  59. data/vendor/libgit2/src/merge_file.c +11 -49
  60. data/vendor/libgit2/src/netops.c +12 -10
  61. data/vendor/libgit2/src/object.c +3 -6
  62. data/vendor/libgit2/src/object_api.c +19 -1
  63. data/vendor/libgit2/src/odb_loose.c +1 -1
  64. data/vendor/libgit2/src/openssl_stream.c +16 -3
  65. data/vendor/libgit2/src/pack-objects.c +3 -1
  66. data/vendor/libgit2/src/pack.c +5 -9
  67. data/vendor/libgit2/src/path.c +14 -0
  68. data/vendor/libgit2/src/path.h +12 -0
  69. data/vendor/libgit2/src/pathspec.c +1 -1
  70. data/vendor/libgit2/src/posix.c +7 -0
  71. data/vendor/libgit2/src/posix.h +1 -0
  72. data/vendor/libgit2/src/proxy.c +32 -0
  73. data/vendor/libgit2/src/proxy.h +14 -0
  74. data/vendor/libgit2/src/push.c +7 -7
  75. data/vendor/libgit2/src/rebase.c +61 -31
  76. data/vendor/libgit2/src/refdb_fs.c +1 -0
  77. data/vendor/libgit2/src/refs.c +16 -1
  78. data/vendor/libgit2/src/remote.c +20 -6
  79. data/vendor/libgit2/src/repository.c +1 -1
  80. data/vendor/libgit2/src/reset.c +1 -1
  81. data/vendor/libgit2/src/settings.c +23 -1
  82. data/vendor/libgit2/src/signature.c +26 -1
  83. data/vendor/libgit2/src/stransport_stream.c +5 -2
  84. data/vendor/libgit2/src/stream.h +2 -2
  85. data/vendor/libgit2/src/submodule.c +3 -2
  86. data/vendor/libgit2/src/tag.c +8 -2
  87. data/vendor/libgit2/src/transports/http.c +32 -9
  88. data/vendor/libgit2/src/transports/local.c +4 -1
  89. data/vendor/libgit2/src/transports/smart.c +6 -0
  90. data/vendor/libgit2/src/transports/smart.h +1 -0
  91. data/vendor/libgit2/src/transports/smart_protocol.c +61 -17
  92. data/vendor/libgit2/src/transports/winhttp.c +130 -11
  93. data/vendor/libgit2/src/tree.c +329 -98
  94. data/vendor/libgit2/src/tree.h +4 -5
  95. data/vendor/libgit2/src/unix/map.c +5 -0
  96. data/vendor/libgit2/src/win32/map.c +24 -5
  97. data/vendor/libgit2/src/xdiff/xprepare.c +2 -1
  98. metadata +10 -4
  99. data/vendor/libgit2/Makefile.embed +0 -60
@@ -24,10 +24,19 @@
24
24
  GIT_BEGIN_DECL
25
25
  # include "inttypes.h"
26
26
  GIT_END_DECL
27
- #else
27
+ /** This check is needed for importing this file in an iOS/OS X framework throws an error in Xcode otherwise.*/
28
+ #elif !defined(__CLANG_INTTYPES_H)
28
29
  # include <inttypes.h>
29
30
  #endif
30
31
 
32
+ #ifdef DOCURIUM
33
+ /*
34
+ * This is so clang's doc parser acknowledges comments on functions
35
+ * with size_t parameters.
36
+ */
37
+ typedef size_t size_t;
38
+ #endif
39
+
31
40
  /** Declare a public function exported for application use. */
32
41
  #if __GNUC__ >= 4
33
42
  # define GIT_EXTERN(type) extern \
@@ -148,6 +157,7 @@ typedef enum {
148
157
  GIT_OPT_SET_SSL_CERT_LOCATIONS,
149
158
  GIT_OPT_SET_USER_AGENT,
150
159
  GIT_OPT_ENABLE_STRICT_OBJECT_CREATION,
160
+ GIT_OPT_SET_SSL_CIPHERS,
151
161
  } git_libgit2_opt_t;
152
162
 
153
163
  /**
@@ -259,6 +269,11 @@ typedef enum {
259
269
  * > example, when this is enabled, the parent(s) and tree inputs
260
270
  * > will be validated when creating a new commit. This defaults
261
271
  * > to disabled.
272
+ * * opts(GIT_OPT_SET_SSL_CIPHERS, const char *ciphers)
273
+ *
274
+ * > Set the SSL ciphers use for HTTPS connections.
275
+ * >
276
+ * > - `ciphers` is the list of ciphers that are eanbled.
262
277
  *
263
278
  * @param option Option key
264
279
  * @param ... value to set the option
@@ -273,7 +273,16 @@ typedef struct {
273
273
  */
274
274
  unsigned int recursion_limit;
275
275
 
276
- /** Flags for handling conflicting content. */
276
+ /**
277
+ * Default merge driver to be used when both sides of a merge have
278
+ * changed. The default is the `text` driver.
279
+ */
280
+ const char *default_driver;
281
+
282
+ /**
283
+ * Flags for handling conflicting content, to be used with the standard
284
+ * (`text`) merge driver.
285
+ */
277
286
  git_merge_file_favor_t file_favor;
278
287
 
279
288
  /** see `git_merge_file_flag_t` above */
@@ -0,0 +1,92 @@
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
+ #ifndef INCLUDE_git_proxy_h__
8
+ #define INCLUDE_git_proxy_h__
9
+
10
+ #include "common.h"
11
+ #include "transport.h"
12
+
13
+ GIT_BEGIN_DECL
14
+
15
+ /**
16
+ * The type of proxy to use.
17
+ */
18
+ typedef enum {
19
+ /**
20
+ * Do not attempt to connect through a proxy
21
+ *
22
+ * If built against lbicurl, it itself may attempt to connect
23
+ * to a proxy if the environment variables specify it.
24
+ */
25
+ GIT_PROXY_NONE,
26
+ /**
27
+ * Try to auto-detect the proxy from the git configuration.
28
+ */
29
+ GIT_PROXY_AUTO,
30
+ /**
31
+ * Connect via the URL given in the options
32
+ */
33
+ GIT_PROXY_SPECIFIED,
34
+ } git_proxy_t;
35
+
36
+ /**
37
+ * Options for connecting through a proxy
38
+ *
39
+ * Note that not all types may be supported, depending on the platform
40
+ * and compilation options.
41
+ */
42
+ typedef struct {
43
+ unsigned int version;
44
+
45
+ /**
46
+ * The type of proxy to use, by URL, auto-detect.
47
+ */
48
+ git_proxy_t type;
49
+
50
+ /**
51
+ * The URL of the proxy.
52
+ */
53
+ const char *url;
54
+
55
+ /**
56
+ * This will be called if the remote host requires
57
+ * authentication in order to connect to it.
58
+ *
59
+ * Returning GIT_PASSTHROUGH will make libgit2 behave as
60
+ * though this field isn't set.
61
+ */
62
+ git_cred_acquire_cb credentials;
63
+
64
+ /**
65
+ * If cert verification fails, this will be called to let the
66
+ * user make the final decision of whether to allow the
67
+ * connection to proceed. Returns 1 to allow the connection, 0
68
+ * to disallow it or a negative value to indicate an error.
69
+ */
70
+ git_transport_certificate_check_cb certificate_check;
71
+
72
+ /**
73
+ * Payload to be provided to the credentials and certificate
74
+ * check callbacks.
75
+ */
76
+ void *payload;
77
+ } git_proxy_options;
78
+
79
+ #define GIT_PROXY_OPTIONS_VERSION 1
80
+ #define GIT_PROXY_OPTIONS_INIT {GIT_PROXY_OPTIONS_VERSION}
81
+
82
+ /**
83
+ * Initialize a proxy options structure
84
+ *
85
+ * @param opts the options struct to initialize
86
+ * @param version the version of the struct, use `GIT_PROXY_OPTIONS_VERSION`
87
+ */
88
+ GIT_EXTERN(int) git_proxy_init_options(git_proxy_options *opts, unsigned int version);
89
+
90
+ GIT_END_DECL
91
+
92
+ #endif
@@ -461,6 +461,17 @@ GIT_EXTERN(int) git_reference_foreach_name(
461
461
  git_reference_foreach_name_cb callback,
462
462
  void *payload);
463
463
 
464
+ /**
465
+ * Create a copy of an existing reference.
466
+ *
467
+ * Call `git_reference_free` to free the data.
468
+ *
469
+ * @param dest pointer where to store the copy
470
+ * @param source object to copy
471
+ * @return 0 or an error code
472
+ */
473
+ GIT_EXTERN(int) git_reference_dup(git_reference **dest, git_reference *source);
474
+
464
475
  /**
465
476
  * Free the given reference.
466
477
  *
@@ -15,6 +15,7 @@
15
15
  #include "strarray.h"
16
16
  #include "transport.h"
17
17
  #include "pack.h"
18
+ #include "proxy.h"
18
19
 
19
20
  /**
20
21
  * @file git2/remote.h
@@ -241,10 +242,11 @@ GIT_EXTERN(const git_refspec *)git_remote_get_refspec(const git_remote *remote,
241
242
  * @param direction GIT_DIRECTION_FETCH if you want to fetch or
242
243
  * GIT_DIRECTION_PUSH if you want to push
243
244
  * @param callbacks the callbacks to use for this connection
245
+ * @param proxy_opts proxy settings
244
246
  * @param custom_headers extra HTTP headers to use in this connection
245
247
  * @return 0 or an error code
246
248
  */
247
- GIT_EXTERN(int) git_remote_connect(git_remote *remote, git_direction direction, const git_remote_callbacks *callbacks, const git_strarray *custom_headers);
249
+ GIT_EXTERN(int) git_remote_connect(git_remote *remote, git_direction direction, const git_remote_callbacks *callbacks, const git_proxy_options *proxy_opts, const git_strarray *custom_headers);
248
250
 
249
251
  /**
250
252
  * Get the remote repository's reference advertisement list
@@ -376,7 +378,7 @@ struct git_remote_callbacks {
376
378
  /**
377
379
  * Textual progress from the remote. Text send over the
378
380
  * progress side-band will be passed to this function (this is
379
- * the 'counting objects' output.
381
+ * the 'counting objects' output).
380
382
  */
381
383
  git_transport_message_cb sideband_progress;
382
384
 
@@ -548,6 +550,11 @@ typedef struct {
548
550
  */
549
551
  git_remote_autotag_option_t download_tags;
550
552
 
553
+ /**
554
+ * Proxy options to use, by default no proxy is used.
555
+ */
556
+ git_proxy_options proxy_opts;
557
+
551
558
  /**
552
559
  * Extra headers for this fetch operation
553
560
  */
@@ -555,7 +562,8 @@ typedef struct {
555
562
  } git_fetch_options;
556
563
 
557
564
  #define GIT_FETCH_OPTIONS_VERSION 1
558
- #define GIT_FETCH_OPTIONS_INIT { GIT_FETCH_OPTIONS_VERSION, GIT_REMOTE_CALLBACKS_INIT, GIT_FETCH_PRUNE_UNSPECIFIED, 1 }
565
+ #define GIT_FETCH_OPTIONS_INIT { GIT_FETCH_OPTIONS_VERSION, GIT_REMOTE_CALLBACKS_INIT, GIT_FETCH_PRUNE_UNSPECIFIED, 1, \
566
+ GIT_REMOTE_DOWNLOAD_TAGS_UNSPECIFIED, GIT_PROXY_OPTIONS_INIT }
559
567
 
560
568
  /**
561
569
  * Initializes a `git_fetch_options` with default values. Equivalent to
@@ -592,6 +600,11 @@ typedef struct {
592
600
  */
593
601
  git_remote_callbacks callbacks;
594
602
 
603
+ /**
604
+ * Proxy options to use, by default no proxy is used.
605
+ */
606
+ git_proxy_options proxy_opts;
607
+
595
608
  /**
596
609
  * Extra headers for this push operation
597
610
  */
@@ -599,7 +612,7 @@ typedef struct {
599
612
  } git_push_options;
600
613
 
601
614
  #define GIT_PUSH_OPTIONS_VERSION 1
602
- #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 0, GIT_REMOTE_CALLBACKS_INIT }
615
+ #define GIT_PUSH_OPTIONS_INIT { GIT_PUSH_OPTIONS_VERSION, 0, GIT_REMOTE_CALLBACKS_INIT, GIT_PROXY_OPTIONS_INIT }
603
616
 
604
617
  /**
605
618
  * Initializes a `git_push_options` with default values. Equivalent to
@@ -62,6 +62,19 @@ GIT_EXTERN(int) git_signature_now(git_signature **out, const char *name, const c
62
62
  */
63
63
  GIT_EXTERN(int) git_signature_default(git_signature **out, git_repository *repo);
64
64
 
65
+ /**
66
+ * Create a new signature by parsing the given buffer, which is
67
+ * expected to be in the format "Real Name <email> timestamp tzoffset",
68
+ * where `timestamp` is the number of seconds since the Unix epoch and
69
+ * `tzoffset` is the timezone offset in `hhmm` format (note the lack
70
+ * of a colon separator).
71
+ *
72
+ * @param out new signature
73
+ * @param buf signature string
74
+ * @return 0 on success, or an error code
75
+ */
76
+ GIT_EXTERN(int) git_signature_from_buffer(git_signature **out, const char *buf);
77
+
65
78
  /**
66
79
  * Create a copy of an existing signature. All internal strings are also
67
80
  * duplicated.
@@ -0,0 +1,177 @@
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
+ #ifndef INCLUDE_sys_git_merge_h__
8
+ #define INCLUDE_sys_git_merge_h__
9
+
10
+ /**
11
+ * @file git2/sys/merge.h
12
+ * @brief Git merge driver backend and plugin routines
13
+ * @defgroup git_backend Git custom backend APIs
14
+ * @ingroup Git
15
+ * @{
16
+ */
17
+ GIT_BEGIN_DECL
18
+
19
+ typedef struct git_merge_driver git_merge_driver;
20
+
21
+ /**
22
+ * Look up a merge driver by name
23
+ *
24
+ * @param name The name of the merge driver
25
+ * @return Pointer to the merge driver object or NULL if not found
26
+ */
27
+ GIT_EXTERN(git_merge_driver *) git_merge_driver_lookup(const char *name);
28
+
29
+ #define GIT_MERGE_DRIVER_TEXT "text"
30
+ #define GIT_MERGE_DRIVER_BINARY "binary"
31
+ #define GIT_MERGE_DRIVER_UNION "union"
32
+
33
+ /**
34
+ * A merge driver source represents the file to be merged
35
+ */
36
+ typedef struct git_merge_driver_source git_merge_driver_source;
37
+
38
+ /** Get the repository that the source data is coming from. */
39
+ GIT_EXTERN(git_repository *) git_merge_driver_source_repo(
40
+ const git_merge_driver_source *src);
41
+
42
+ /** Gets the ancestor of the file to merge. */
43
+ GIT_EXTERN(git_index_entry *) git_merge_driver_source_ancestor(
44
+ const git_merge_driver_source *src);
45
+
46
+ /** Gets the ours side of the file to merge. */
47
+ GIT_EXTERN(git_index_entry *) git_merge_driver_source_ours(
48
+ const git_merge_driver_source *src);
49
+
50
+ /** Gets the theirs side of the file to merge. */
51
+ GIT_EXTERN(git_index_entry *) git_merge_driver_source_theirs(
52
+ const git_merge_driver_source *src);
53
+
54
+ /** Gets the merge file options that the merge was invoked with */
55
+ GIT_EXTERN(git_merge_file_options *) git_merge_driver_source_file_options(
56
+ const git_merge_driver_source *src);
57
+
58
+
59
+ /**
60
+ * Initialize callback on merge driver
61
+ *
62
+ * Specified as `driver.initialize`, this is an optional callback invoked
63
+ * before a merge driver is first used. It will be called once at most
64
+ * per library lifetime.
65
+ *
66
+ * If non-NULL, the merge driver's `initialize` callback will be invoked
67
+ * right before the first use of the driver, so you can defer expensive
68
+ * initialization operations (in case libgit2 is being used in a way that
69
+ * doesn't need the merge driver).
70
+ */
71
+ typedef int (*git_merge_driver_init_fn)(git_merge_driver *self);
72
+
73
+ /**
74
+ * Shutdown callback on merge driver
75
+ *
76
+ * Specified as `driver.shutdown`, this is an optional callback invoked
77
+ * when the merge driver is unregistered or when libgit2 is shutting down.
78
+ * It will be called once at most and should release resources as needed.
79
+ * This may be called even if the `initialize` callback was not made.
80
+ *
81
+ * Typically this function will free the `git_merge_driver` object itself.
82
+ */
83
+ typedef void (*git_merge_driver_shutdown_fn)(git_merge_driver *self);
84
+
85
+ /**
86
+ * Callback to perform the merge.
87
+ *
88
+ * Specified as `driver.apply`, this is the callback that actually does the
89
+ * merge. If it can successfully perform a merge, it should populate
90
+ * `path_out` with a pointer to the filename to accept, `mode_out` with
91
+ * the resultant mode, and `merged_out` with the buffer of the merged file
92
+ * and then return 0. If the driver returns `GIT_PASSTHROUGH`, then the
93
+ * default merge driver should instead be run. It can also return
94
+ * `GIT_EMERGECONFLICT` if the driver is not able to produce a merge result,
95
+ * and the file will remain conflicted. Any other errors will fail and
96
+ * return to the caller.
97
+ *
98
+ * The `filter_name` contains the name of the filter that was invoked, as
99
+ * specified by the file's attributes.
100
+ *
101
+ * The `src` contains the data about the file to be merged.
102
+ */
103
+ typedef int (*git_merge_driver_apply_fn)(
104
+ git_merge_driver *self,
105
+ const char **path_out,
106
+ uint32_t *mode_out,
107
+ git_buf *merged_out,
108
+ const char *filter_name,
109
+ const git_merge_driver_source *src);
110
+
111
+ /**
112
+ * Merge driver structure used to register custom merge drivers.
113
+ *
114
+ * To associate extra data with a driver, allocate extra data and put the
115
+ * `git_merge_driver` struct at the start of your data buffer, then cast
116
+ * the `self` pointer to your larger structure when your callback is invoked.
117
+ */
118
+ struct git_merge_driver {
119
+ /** The `version` should be set to `GIT_MERGE_DRIVER_VERSION`. */
120
+ unsigned int version;
121
+
122
+ /** Called when the merge driver is first used for any file. */
123
+ git_merge_driver_init_fn initialize;
124
+
125
+ /** Called when the merge driver is unregistered from the system. */
126
+ git_merge_driver_shutdown_fn shutdown;
127
+
128
+ /**
129
+ * Called to merge the contents of a conflict. If this function
130
+ * returns `GIT_PASSTHROUGH` then the default (`text`) merge driver
131
+ * will instead be invoked. If this function returns
132
+ * `GIT_EMERGECONFLICT` then the file will remain conflicted.
133
+ */
134
+ git_merge_driver_apply_fn apply;
135
+ };
136
+
137
+ #define GIT_MERGE_DRIVER_VERSION 1
138
+
139
+ /**
140
+ * Register a merge driver under a given name.
141
+ *
142
+ * As mentioned elsewhere, the initialize callback will not be invoked
143
+ * immediately. It is deferred until the driver is used in some way.
144
+ *
145
+ * Currently the merge driver registry is not thread safe, so any
146
+ * registering or deregistering of merge drivers must be done outside of
147
+ * any possible usage of the drivers (i.e. during application setup or
148
+ * shutdown).
149
+ *
150
+ * @param name The name of this driver to match an attribute. Attempting
151
+ * to register with an in-use name will return GIT_EEXISTS.
152
+ * @param driver The merge driver definition. This pointer will be stored
153
+ * as is by libgit2 so it must be a durable allocation (either
154
+ * static or on the heap).
155
+ * @return 0 on successful registry, error code <0 on failure
156
+ */
157
+ GIT_EXTERN(int) git_merge_driver_register(
158
+ const char *name, git_merge_driver *driver);
159
+
160
+ /**
161
+ * Remove the merge driver with the given name.
162
+ *
163
+ * Attempting to remove the builtin libgit2 merge drivers is not permitted
164
+ * and will return an error.
165
+ *
166
+ * Currently the merge driver registry is not thread safe, so any
167
+ * registering or deregistering of drivers must be done outside of any
168
+ * possible usage of the drivers (i.e. during application setup or shutdown).
169
+ *
170
+ * @param name The name under which the merge driver was registered
171
+ * @return 0 on success, error code <0 on failure
172
+ */
173
+ GIT_EXTERN(int) git_merge_driver_unregister(const char *name);
174
+
175
+ /** @} */
176
+ GIT_END_DECL
177
+ #endif
@@ -0,0 +1,16 @@
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
+
8
+ #ifndef INCLUDE_sys_git_transport_h
9
+ #define INCLUDE_sys_git_transport_h
10
+
11
+ #include "git2/net.h"
12
+ #include "git2/types.h"
13
+
14
+ GIT_BEGIN_DECL
15
+
16
+ GIT_END_DECL