rugged 0.25.0b2 → 0.25.0b3

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 (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