rugged 1.2.0 → 1.3.0
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.
- checksums.yaml +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +1 -1
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +13 -0
- data/vendor/libgit2/include/git2/attr.h +7 -1
- data/vendor/libgit2/include/git2/blob.h +7 -1
- data/vendor/libgit2/include/git2/clone.h +1 -1
- data/vendor/libgit2/include/git2/common.h +19 -1
- data/vendor/libgit2/include/git2/deprecated.h +120 -0
- data/vendor/libgit2/include/git2/diff.h +3 -97
- data/vendor/libgit2/include/git2/email.h +127 -0
- data/vendor/libgit2/include/git2/filter.h +7 -1
- data/vendor/libgit2/include/git2/notes.h +2 -2
- data/vendor/libgit2/include/git2/oidarray.h +5 -8
- data/vendor/libgit2/include/git2/remote.h +4 -4
- data/vendor/libgit2/include/git2/repository.h +12 -10
- data/vendor/libgit2/include/git2/stash.h +1 -1
- data/vendor/libgit2/include/git2/stdint.h +3 -3
- data/vendor/libgit2/include/git2/sys/email.h +45 -0
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +7 -0
- data/vendor/libgit2/src/attr.c +24 -9
- data/vendor/libgit2/src/attr_file.c +23 -15
- data/vendor/libgit2/src/attr_file.h +3 -3
- data/vendor/libgit2/src/blame.c +4 -4
- data/vendor/libgit2/src/blame_git.c +1 -1
- data/vendor/libgit2/src/blob.c +15 -9
- data/vendor/libgit2/src/buffer.c +16 -8
- data/vendor/libgit2/src/buffer.h +2 -1
- data/vendor/libgit2/src/cc-compat.h +1 -7
- data/vendor/libgit2/src/checkout.c +6 -7
- data/vendor/libgit2/src/clone.c +1 -1
- data/vendor/libgit2/src/commit_graph.c +1 -1
- data/vendor/libgit2/src/config.c +1 -1
- data/vendor/libgit2/src/config_file.c +2 -2
- data/vendor/libgit2/src/config_parse.c +1 -1
- data/vendor/libgit2/src/describe.c +1 -1
- data/vendor/libgit2/src/diff.c +41 -173
- data/vendor/libgit2/src/email.c +299 -0
- data/vendor/libgit2/src/email.h +25 -0
- data/vendor/libgit2/src/filter.c +7 -1
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +8 -8
- data/vendor/libgit2/src/ignore.c +2 -2
- data/vendor/libgit2/src/indexer.c +37 -3
- data/vendor/libgit2/src/libgit2.c +23 -0
- data/vendor/libgit2/src/merge.c +7 -4
- data/vendor/libgit2/src/notes.c +31 -31
- data/vendor/libgit2/src/oidarray.c +10 -1
- data/vendor/libgit2/src/path.c +1 -1
- data/vendor/libgit2/src/path.h +1 -1
- data/vendor/libgit2/src/pathspec.c +1 -1
- data/vendor/libgit2/src/refdb_fs.c +1 -1
- data/vendor/libgit2/src/refs.c +2 -2
- data/vendor/libgit2/src/refspec.c +1 -1
- data/vendor/libgit2/src/remote.c +12 -5
- data/vendor/libgit2/src/repository.c +130 -19
- data/vendor/libgit2/src/repository.h +4 -0
- data/vendor/libgit2/src/reset.c +1 -1
- data/vendor/libgit2/src/revparse.c +4 -4
- data/vendor/libgit2/src/stash.c +1 -1
- data/vendor/libgit2/src/streams/openssl_legacy.c +1 -1
- data/vendor/libgit2/src/streams/openssl_legacy.h +1 -1
- data/vendor/libgit2/src/threadstate.c +2 -1
- data/vendor/libgit2/src/trailer.c +1 -1
- data/vendor/libgit2/src/transports/ssh.c +4 -4
- data/vendor/libgit2/src/transports/winhttp.c +1 -1
- data/vendor/libgit2/src/util.c +1 -1
- data/vendor/libgit2/src/util.h +1 -1
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/posix.h +6 -6
- data/vendor/libgit2/src/win32/posix_w32.c +9 -6
- metadata +11 -6
@@ -0,0 +1,45 @@
|
|
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_email_h__
|
8
|
+
#define INCLUDE_sys_git_email_h__
|
9
|
+
|
10
|
+
/**
|
11
|
+
* @file git2/sys/email.h
|
12
|
+
* @brief Advanced git email creation routines
|
13
|
+
* @defgroup git_email Advanced git email creation routines
|
14
|
+
* @ingroup Git
|
15
|
+
* @{
|
16
|
+
*/
|
17
|
+
GIT_BEGIN_DECL
|
18
|
+
|
19
|
+
/**
|
20
|
+
* Create a diff for a commit in mbox format for sending via email.
|
21
|
+
*
|
22
|
+
* @param out buffer to store the e-mail patch in
|
23
|
+
* @param diff the changes to include in the email
|
24
|
+
* @param patch_idx the patch index
|
25
|
+
* @param patch_count the total number of patches that will be included
|
26
|
+
* @param commit_id the commit id for this change
|
27
|
+
* @param summary the commit message for this change
|
28
|
+
* @param body optional text to include above the diffstat
|
29
|
+
* @param author the person who authored this commit
|
30
|
+
* @param opts email creation options
|
31
|
+
*/
|
32
|
+
GIT_EXTERN(int) git_email_create_from_diff(
|
33
|
+
git_buf *out,
|
34
|
+
git_diff *diff,
|
35
|
+
size_t patch_idx,
|
36
|
+
size_t patch_count,
|
37
|
+
const git_oid *commit_id,
|
38
|
+
const char *summary,
|
39
|
+
const char *body,
|
40
|
+
const git_signature *author,
|
41
|
+
const git_email_create_options *opts);
|
42
|
+
|
43
|
+
/** @} */
|
44
|
+
GIT_END_DECL
|
45
|
+
#endif
|
@@ -7,12 +7,12 @@
|
|
7
7
|
#ifndef INCLUDE_git_version_h__
|
8
8
|
#define INCLUDE_git_version_h__
|
9
9
|
|
10
|
-
#define LIBGIT2_VERSION "1.
|
10
|
+
#define LIBGIT2_VERSION "1.3.0"
|
11
11
|
#define LIBGIT2_VER_MAJOR 1
|
12
|
-
#define LIBGIT2_VER_MINOR
|
12
|
+
#define LIBGIT2_VER_MINOR 3
|
13
13
|
#define LIBGIT2_VER_REVISION 0
|
14
14
|
#define LIBGIT2_VER_PATCH 0
|
15
15
|
|
16
|
-
#define LIBGIT2_SOVERSION "1.
|
16
|
+
#define LIBGIT2_SOVERSION "1.3"
|
17
17
|
|
18
18
|
#endif
|
@@ -232,6 +232,13 @@ ENDIF()
|
|
232
232
|
# Optional external dependency: libssh2
|
233
233
|
IF (USE_SSH)
|
234
234
|
FIND_PKGLIBRARIES(LIBSSH2 libssh2)
|
235
|
+
IF (NOT LIBSSH2_FOUND)
|
236
|
+
FIND_PACKAGE(LibSSH2)
|
237
|
+
SET(LIBSSH2_INCLUDE_DIRS ${LIBSSH2_INCLUDE_DIR})
|
238
|
+
GET_FILENAME_COMPONENT(LIBSSH2_LIBRARY_DIRS "${LIBSSH2_LIBRARY}" DIRECTORY)
|
239
|
+
SET(LIBSSH2_LIBRARIES ${LIBSSH2_LIBRARY})
|
240
|
+
SET(LIBSSH2_LDFLAGS "-lssh2")
|
241
|
+
ENDIF()
|
235
242
|
ENDIF()
|
236
243
|
IF (LIBSSH2_FOUND)
|
237
244
|
SET(GIT_SSH 1)
|
data/vendor/libgit2/src/attr.c
CHANGED
@@ -68,7 +68,7 @@ int git_attr_get_ext(
|
|
68
68
|
if (git_repository_is_bare(repo))
|
69
69
|
dir_flag = GIT_DIR_FLAG_FALSE;
|
70
70
|
|
71
|
-
if (git_attr_path__init(&path,
|
71
|
+
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0)
|
72
72
|
return -1;
|
73
73
|
|
74
74
|
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0)
|
@@ -149,7 +149,7 @@ int git_attr_get_many_with_session(
|
|
149
149
|
if (git_repository_is_bare(repo))
|
150
150
|
dir_flag = GIT_DIR_FLAG_FALSE;
|
151
151
|
|
152
|
-
if (git_attr_path__init(&path,
|
152
|
+
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0)
|
153
153
|
return -1;
|
154
154
|
|
155
155
|
if ((error = collect_attr_files(repo, attr_session, opts, pathname, &files)) < 0)
|
@@ -264,7 +264,7 @@ int git_attr_foreach_ext(
|
|
264
264
|
if (git_repository_is_bare(repo))
|
265
265
|
dir_flag = GIT_DIR_FLAG_FALSE;
|
266
266
|
|
267
|
-
if (git_attr_path__init(&path,
|
267
|
+
if (git_attr_path__init(&path, pathname, git_repository_workdir(repo), dir_flag) < 0)
|
268
268
|
return -1;
|
269
269
|
|
270
270
|
if ((error = collect_attr_files(repo, NULL, opts, pathname, &files)) < 0 ||
|
@@ -382,7 +382,7 @@ static int attr_setup(
|
|
382
382
|
{
|
383
383
|
git_buf system = GIT_BUF_INIT, info = GIT_BUF_INIT;
|
384
384
|
git_attr_file_source index_source = { GIT_ATTR_FILE_SOURCE_INDEX, NULL, GIT_ATTR_FILE, NULL };
|
385
|
-
git_attr_file_source head_source = {
|
385
|
+
git_attr_file_source head_source = { GIT_ATTR_FILE_SOURCE_HEAD, NULL, GIT_ATTR_FILE, NULL };
|
386
386
|
git_attr_file_source commit_source = { GIT_ATTR_FILE_SOURCE_COMMIT, NULL, GIT_ATTR_FILE, NULL };
|
387
387
|
git_index *idx = NULL;
|
388
388
|
const char *workdir;
|
@@ -432,7 +432,12 @@ static int attr_setup(
|
|
432
432
|
goto out;
|
433
433
|
|
434
434
|
if ((opts && (opts->flags & GIT_ATTR_CHECK_INCLUDE_COMMIT) != 0)) {
|
435
|
-
|
435
|
+
#ifndef GIT_DEPRECATE_HARD
|
436
|
+
if (opts->commit_id)
|
437
|
+
commit_source.commit_id = opts->commit_id;
|
438
|
+
else
|
439
|
+
#endif
|
440
|
+
commit_source.commit_id = &opts->attr_commit_id;
|
436
441
|
|
437
442
|
if ((error = preload_attr_source(repo, attr_session, &commit_source)) < 0)
|
438
443
|
goto out;
|
@@ -521,8 +526,10 @@ static int attr_decide_sources(
|
|
521
526
|
break;
|
522
527
|
}
|
523
528
|
|
524
|
-
if ((flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0
|
525
|
-
|
529
|
+
if ((flags & GIT_ATTR_CHECK_INCLUDE_HEAD) != 0)
|
530
|
+
srcs[count++] = GIT_ATTR_FILE_SOURCE_HEAD;
|
531
|
+
|
532
|
+
if ((flags & GIT_ATTR_CHECK_INCLUDE_COMMIT) != 0)
|
526
533
|
srcs[count++] = GIT_ATTR_FILE_SOURCE_COMMIT;
|
527
534
|
|
528
535
|
return count;
|
@@ -582,8 +589,14 @@ static int push_one_attr(void *ref, const char *path)
|
|
582
589
|
for (i = 0; !error && i < n_src; ++i) {
|
583
590
|
git_attr_file_source source = { src[i], path, GIT_ATTR_FILE };
|
584
591
|
|
585
|
-
if (src[i] == GIT_ATTR_FILE_SOURCE_COMMIT && info->opts)
|
586
|
-
|
592
|
+
if (src[i] == GIT_ATTR_FILE_SOURCE_COMMIT && info->opts) {
|
593
|
+
#ifndef GIT_DEPRECATE_HARD
|
594
|
+
if (info->opts->commit_id)
|
595
|
+
source.commit_id = info->opts->commit_id;
|
596
|
+
else
|
597
|
+
#endif
|
598
|
+
source.commit_id = &info->opts->attr_commit_id;
|
599
|
+
}
|
587
600
|
|
588
601
|
error = push_attr_source(info->repo, info->attr_session, info->files,
|
589
602
|
&source, allow_macros);
|
@@ -616,6 +629,8 @@ static int collect_attr_files(
|
|
616
629
|
const char *workdir = git_repository_workdir(repo);
|
617
630
|
attr_walk_up_info info = { NULL };
|
618
631
|
|
632
|
+
GIT_ASSERT(!git_path_is_absolute(path));
|
633
|
+
|
619
634
|
if ((error = attr_setup(repo, attr_session, opts)) < 0)
|
620
635
|
return error;
|
621
636
|
|
@@ -163,8 +163,9 @@ int git_attr_file__load(
|
|
163
163
|
|
164
164
|
break;
|
165
165
|
}
|
166
|
+
case GIT_ATTR_FILE_SOURCE_HEAD:
|
166
167
|
case GIT_ATTR_FILE_SOURCE_COMMIT: {
|
167
|
-
if (source->
|
168
|
+
if (source->type == GIT_ATTR_FILE_SOURCE_COMMIT) {
|
168
169
|
if ((error = git_commit_lookup(&commit, repo, source->commit_id)) < 0 ||
|
169
170
|
(error = git_commit_tree(&tree, commit)) < 0)
|
170
171
|
goto cleanup;
|
@@ -234,6 +235,8 @@ int git_attr_file__load(
|
|
234
235
|
file->nonexistent = 1;
|
235
236
|
else if (source->type == GIT_ATTR_FILE_SOURCE_INDEX)
|
236
237
|
git_oid_cpy(&file->cache_data.oid, git_blob_id(blob));
|
238
|
+
else if (source->type == GIT_ATTR_FILE_SOURCE_HEAD)
|
239
|
+
git_oid_cpy(&file->cache_data.oid, git_tree_id(tree));
|
237
240
|
else if (source->type == GIT_ATTR_FILE_SOURCE_COMMIT)
|
238
241
|
git_oid_cpy(&file->cache_data.oid, git_tree_id(tree));
|
239
242
|
else if (source->type == GIT_ATTR_FILE_SOURCE_FILE)
|
@@ -288,22 +291,29 @@ int git_attr_file__out_of_date(
|
|
288
291
|
return (git_oid__cmp(&file->cache_data.oid, &id) != 0);
|
289
292
|
}
|
290
293
|
|
291
|
-
case
|
294
|
+
case GIT_ATTR_FILE_SOURCE_HEAD: {
|
292
295
|
git_tree *tree = NULL;
|
293
|
-
int error;
|
296
|
+
int error = git_repository_head_tree(&tree, repo);
|
294
297
|
|
295
|
-
if (
|
296
|
-
|
298
|
+
if (error < 0)
|
299
|
+
return error;
|
300
|
+
|
301
|
+
error = (git_oid__cmp(&file->cache_data.oid, git_tree_id(tree)) != 0);
|
302
|
+
|
303
|
+
git_tree_free(tree);
|
304
|
+
return error;
|
305
|
+
}
|
297
306
|
|
298
|
-
|
299
|
-
|
307
|
+
case GIT_ATTR_FILE_SOURCE_COMMIT: {
|
308
|
+
git_commit *commit = NULL;
|
309
|
+
git_tree *tree = NULL;
|
310
|
+
int error;
|
300
311
|
|
301
|
-
|
312
|
+
if ((error = git_commit_lookup(&commit, repo, source->commit_id)) < 0)
|
313
|
+
return error;
|
302
314
|
|
303
|
-
|
304
|
-
|
305
|
-
error = git_repository_head_tree(&tree, repo);
|
306
|
-
}
|
315
|
+
error = git_commit_tree(&tree, commit);
|
316
|
+
git_commit_free(commit);
|
307
317
|
|
308
318
|
if (error < 0)
|
309
319
|
return error;
|
@@ -541,7 +551,6 @@ git_attr_assignment *git_attr_rule__lookup_assignment(
|
|
541
551
|
|
542
552
|
int git_attr_path__init(
|
543
553
|
git_attr_path *info,
|
544
|
-
git_repository *repo,
|
545
554
|
const char *path,
|
546
555
|
const char *base,
|
547
556
|
git_dir_flag dir_flag)
|
@@ -551,8 +560,7 @@ int git_attr_path__init(
|
|
551
560
|
/* build full path as best we can */
|
552
561
|
git_buf_init(&info->full, 0);
|
553
562
|
|
554
|
-
if (git_path_join_unrooted(&info->full, path, base, &root) < 0
|
555
|
-
git_path_validate_workdir_buf(repo, &info->full) < 0)
|
563
|
+
if (git_path_join_unrooted(&info->full, path, base, &root) < 0)
|
556
564
|
return -1;
|
557
565
|
|
558
566
|
info->path = info->full.ptr + root;
|
@@ -40,9 +40,10 @@ typedef enum {
|
|
40
40
|
GIT_ATTR_FILE_SOURCE_MEMORY = 0,
|
41
41
|
GIT_ATTR_FILE_SOURCE_FILE = 1,
|
42
42
|
GIT_ATTR_FILE_SOURCE_INDEX = 2,
|
43
|
-
|
43
|
+
GIT_ATTR_FILE_SOURCE_HEAD = 3,
|
44
|
+
GIT_ATTR_FILE_SOURCE_COMMIT = 4,
|
44
45
|
|
45
|
-
GIT_ATTR_FILE_NUM_SOURCES =
|
46
|
+
GIT_ATTR_FILE_NUM_SOURCES = 5
|
46
47
|
} git_attr_file_source_t;
|
47
48
|
|
48
49
|
typedef struct {
|
@@ -226,7 +227,6 @@ typedef enum { GIT_DIR_FLAG_TRUE = 1, GIT_DIR_FLAG_FALSE = 0, GIT_DIR_FLAG_UNKNO
|
|
226
227
|
|
227
228
|
extern int git_attr_path__init(
|
228
229
|
git_attr_path *out,
|
229
|
-
git_repository *repo,
|
230
230
|
const char *path,
|
231
231
|
const char *base,
|
232
232
|
git_dir_flag is_dir);
|
data/vendor/libgit2/src/blame.c
CHANGED
@@ -59,7 +59,7 @@ static bool hunk_starts_at_or_after_line(git_blame_hunk *hunk, size_t line)
|
|
59
59
|
return line <= hunk->final_start_line_number;
|
60
60
|
}
|
61
61
|
|
62
|
-
static git_blame_hunk*
|
62
|
+
static git_blame_hunk *new_hunk(
|
63
63
|
size_t start,
|
64
64
|
size_t lines,
|
65
65
|
size_t orig_start,
|
@@ -84,7 +84,7 @@ static void free_hunk(git_blame_hunk *hunk)
|
|
84
84
|
git__free(hunk);
|
85
85
|
}
|
86
86
|
|
87
|
-
static git_blame_hunk*
|
87
|
+
static git_blame_hunk *dup_hunk(git_blame_hunk *hunk)
|
88
88
|
{
|
89
89
|
git_blame_hunk *newhunk = new_hunk(
|
90
90
|
hunk->final_start_line_number,
|
@@ -122,7 +122,7 @@ static void shift_hunks_by(git_vector *v, size_t start_line, int shift_by)
|
|
122
122
|
}
|
123
123
|
}
|
124
124
|
|
125
|
-
git_blame*
|
125
|
+
git_blame *git_blame__alloc(
|
126
126
|
git_repository *repo,
|
127
127
|
git_blame_options opts,
|
128
128
|
const char *path)
|
@@ -299,7 +299,7 @@ static int index_blob_lines(git_blame *blame)
|
|
299
299
|
return blame->num_lines;
|
300
300
|
}
|
301
301
|
|
302
|
-
static git_blame_hunk*
|
302
|
+
static git_blame_hunk *hunk_from_entry(git_blame__entry *e, git_blame *blame)
|
303
303
|
{
|
304
304
|
git_blame_hunk *h = new_hunk(
|
305
305
|
e->lno+1, e->num_lines, e->s_lno+1, e->suspect->path);
|
data/vendor/libgit2/src/blob.c
CHANGED
@@ -138,12 +138,13 @@ static int write_file_filtered(
|
|
138
138
|
git_object_size_t *size,
|
139
139
|
git_odb *odb,
|
140
140
|
const char *full_path,
|
141
|
-
git_filter_list *fl
|
141
|
+
git_filter_list *fl,
|
142
|
+
git_repository* repo)
|
142
143
|
{
|
143
144
|
int error;
|
144
145
|
git_buf tgt = GIT_BUF_INIT;
|
145
146
|
|
146
|
-
error = git_filter_list_apply_to_file(&tgt, fl,
|
147
|
+
error = git_filter_list_apply_to_file(&tgt, fl, repo, full_path);
|
147
148
|
|
148
149
|
/* Write the file to disk if it was properly filtered */
|
149
150
|
if (!error) {
|
@@ -238,7 +239,7 @@ int git_blob__create_from_paths(
|
|
238
239
|
error = write_file_stream(id, odb, content_path, size);
|
239
240
|
else {
|
240
241
|
/* We need to apply one or more filters */
|
241
|
-
error = write_file_filtered(id, &size, odb, content_path, fl);
|
242
|
+
error = write_file_filtered(id, &size, odb, content_path, fl, repo);
|
242
243
|
|
243
244
|
git_filter_list_free(fl);
|
244
245
|
}
|
@@ -276,21 +277,20 @@ int git_blob_create_from_disk(
|
|
276
277
|
{
|
277
278
|
int error;
|
278
279
|
git_buf full_path = GIT_BUF_INIT;
|
279
|
-
const char *workdir, *hintpath;
|
280
|
+
const char *workdir, *hintpath = NULL;
|
280
281
|
|
281
282
|
if ((error = git_path_prettify(&full_path, path, NULL)) < 0) {
|
282
283
|
git_buf_dispose(&full_path);
|
283
284
|
return error;
|
284
285
|
}
|
285
286
|
|
286
|
-
hintpath = git_buf_cstr(&full_path);
|
287
287
|
workdir = git_repository_workdir(repo);
|
288
288
|
|
289
|
-
if (workdir && !git__prefixcmp(
|
290
|
-
hintpath
|
289
|
+
if (workdir && !git__prefixcmp(full_path.ptr, workdir))
|
290
|
+
hintpath = full_path.ptr + strlen(workdir);
|
291
291
|
|
292
292
|
error = git_blob__create_from_paths(
|
293
|
-
id, NULL, repo, git_buf_cstr(&full_path), hintpath, 0,
|
293
|
+
id, NULL, repo, git_buf_cstr(&full_path), hintpath, 0, !!hintpath);
|
294
294
|
|
295
295
|
git_buf_dispose(&full_path);
|
296
296
|
return error;
|
@@ -448,7 +448,13 @@ int git_blob_filter(
|
|
448
448
|
|
449
449
|
if ((opts.flags & GIT_BLOB_FILTER_ATTRIBUTES_FROM_COMMIT) != 0) {
|
450
450
|
filter_opts.flags |= GIT_FILTER_ATTRIBUTES_FROM_COMMIT;
|
451
|
-
|
451
|
+
|
452
|
+
#ifndef GIT_DEPRECATE_HARD
|
453
|
+
if (opts.commit_id)
|
454
|
+
git_oid_cpy(&filter_opts.attr_commit_id, opts.commit_id);
|
455
|
+
else
|
456
|
+
#endif
|
457
|
+
git_oid_cpy(&filter_opts.attr_commit_id, &opts.attr_commit_id);
|
452
458
|
}
|
453
459
|
|
454
460
|
if (!(error = git_filter_list_load_ext(
|
data/vendor/libgit2/src/buffer.c
CHANGED
@@ -600,6 +600,13 @@ void git_buf_shorten(git_buf *buf, size_t amount)
|
|
600
600
|
git_buf_clear(buf);
|
601
601
|
}
|
602
602
|
|
603
|
+
void git_buf_truncate_at_char(git_buf *buf, char separator)
|
604
|
+
{
|
605
|
+
ssize_t idx = git_buf_find(buf, separator);
|
606
|
+
if (idx >= 0)
|
607
|
+
git_buf_truncate(buf, (size_t)idx);
|
608
|
+
}
|
609
|
+
|
603
610
|
void git_buf_rtruncate_at_char(git_buf *buf, char separator)
|
604
611
|
{
|
605
612
|
ssize_t idx = git_buf_rfind_next(buf, separator);
|
@@ -670,7 +677,7 @@ int git_buf_join_n(git_buf *buf, char separator, int nbuf, ...)
|
|
670
677
|
|
671
678
|
va_start(ap, nbuf);
|
672
679
|
for (i = 0; i < nbuf; ++i) {
|
673
|
-
const char*
|
680
|
+
const char *segment;
|
674
681
|
size_t segment_len;
|
675
682
|
|
676
683
|
segment = va_arg(ap, const char *);
|
@@ -702,7 +709,7 @@ int git_buf_join_n(git_buf *buf, char separator, int nbuf, ...)
|
|
702
709
|
|
703
710
|
va_start(ap, nbuf);
|
704
711
|
for (i = 0; i < nbuf; ++i) {
|
705
|
-
const char*
|
712
|
+
const char *segment;
|
706
713
|
size_t segment_len;
|
707
714
|
|
708
715
|
segment = va_arg(ap, const char *);
|
@@ -1194,25 +1201,26 @@ int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src)
|
|
1194
1201
|
return git_buf_put(tgt, scan, end - scan);
|
1195
1202
|
}
|
1196
1203
|
|
1197
|
-
int git_buf_common_prefix(git_buf *buf, const
|
1204
|
+
int git_buf_common_prefix(git_buf *buf, char *const *const strings, size_t count)
|
1198
1205
|
{
|
1199
1206
|
size_t i;
|
1200
1207
|
const char *str, *pfx;
|
1201
1208
|
|
1202
1209
|
git_buf_clear(buf);
|
1203
1210
|
|
1204
|
-
if (!strings || !
|
1211
|
+
if (!strings || !count)
|
1205
1212
|
return 0;
|
1206
1213
|
|
1207
1214
|
/* initialize common prefix to first string */
|
1208
|
-
if (git_buf_sets(buf, strings
|
1215
|
+
if (git_buf_sets(buf, strings[0]) < 0)
|
1209
1216
|
return -1;
|
1210
1217
|
|
1211
1218
|
/* go through the rest of the strings, truncating to shared prefix */
|
1212
|
-
for (i = 1; i <
|
1219
|
+
for (i = 1; i < count; ++i) {
|
1213
1220
|
|
1214
|
-
for (str = strings
|
1215
|
-
|
1221
|
+
for (str = strings[i], pfx = buf->ptr;
|
1222
|
+
*str && *str == *pfx;
|
1223
|
+
str++, pfx++)
|
1216
1224
|
/* scanning */;
|
1217
1225
|
|
1218
1226
|
git_buf_truncate(buf, pfx - buf->ptr);
|
data/vendor/libgit2/src/buffer.h
CHANGED
@@ -171,6 +171,7 @@ void git_buf_consume_bytes(git_buf *buf, size_t len);
|
|
171
171
|
void git_buf_consume(git_buf *buf, const char *end);
|
172
172
|
void git_buf_truncate(git_buf *buf, size_t len);
|
173
173
|
void git_buf_shorten(git_buf *buf, size_t amount);
|
174
|
+
void git_buf_truncate_at_char(git_buf *buf, char separator);
|
174
175
|
void git_buf_rtruncate_at_char(git_buf *path, char separator);
|
175
176
|
|
176
177
|
/** General join with separator */
|
@@ -323,7 +324,7 @@ extern int git_buf_lf_to_crlf(git_buf *tgt, const git_buf *src);
|
|
323
324
|
*
|
324
325
|
* Buffer will be set to empty if there is no common prefix
|
325
326
|
*/
|
326
|
-
extern int git_buf_common_prefix(git_buf *buf, const
|
327
|
+
extern int git_buf_common_prefix(git_buf *buf, char *const *const strings, size_t count);
|
327
328
|
|
328
329
|
/**
|
329
330
|
* Check if a buffer begins with a UTF BOM
|
@@ -29,12 +29,6 @@
|
|
29
29
|
# endif
|
30
30
|
#endif
|
31
31
|
|
32
|
-
#ifdef __GNUC__
|
33
|
-
# define GIT_TYPEOF(x) (__typeof__(x))
|
34
|
-
#else
|
35
|
-
# define GIT_TYPEOF(x)
|
36
|
-
#endif
|
37
|
-
|
38
32
|
#if defined(__GNUC__)
|
39
33
|
# define GIT_ALIGN(x,size) x __attribute__ ((aligned(size)))
|
40
34
|
#elif defined(_MSC_VER)
|
@@ -46,7 +40,7 @@
|
|
46
40
|
#if defined(__GNUC__)
|
47
41
|
# define GIT_UNUSED(x) \
|
48
42
|
do { \
|
49
|
-
|
43
|
+
__typeof__(x) _unused __attribute__((unused)); \
|
50
44
|
_unused = (x); \
|
51
45
|
} while (0)
|
52
46
|
#else
|
@@ -1520,8 +1520,7 @@ static int blob_content_to_file(
|
|
1520
1520
|
int fd;
|
1521
1521
|
int error = 0;
|
1522
1522
|
|
1523
|
-
|
1524
|
-
hint_path = path;
|
1523
|
+
GIT_ASSERT(hint_path != NULL);
|
1525
1524
|
|
1526
1525
|
if ((error = mkpath2file(data, path, data->opts.dir_mode)) < 0)
|
1527
1526
|
return error;
|
@@ -1789,7 +1788,7 @@ static int checkout_blob(
|
|
1789
1788
|
}
|
1790
1789
|
|
1791
1790
|
error = checkout_write_content(
|
1792
|
-
data, &file->id, fullpath->ptr,
|
1791
|
+
data, &file->id, fullpath->ptr, file->path, file->mode, &st);
|
1793
1792
|
|
1794
1793
|
/* update the index unless prevented */
|
1795
1794
|
if (!error && (data->strategy & GIT_CHECKOUT_DONT_UPDATE_INDEX) == 0)
|
@@ -1975,7 +1974,7 @@ static int checkout_write_entry(
|
|
1975
1974
|
checkout_conflictdata *conflict,
|
1976
1975
|
const git_index_entry *side)
|
1977
1976
|
{
|
1978
|
-
const char *hint_path
|
1977
|
+
const char *hint_path, *suffix;
|
1979
1978
|
git_buf *fullpath;
|
1980
1979
|
struct stat st;
|
1981
1980
|
int error;
|
@@ -1998,10 +1997,10 @@ static int checkout_write_entry(
|
|
1998
1997
|
|
1999
1998
|
if (checkout_path_suffixed(fullpath, suffix) < 0)
|
2000
1999
|
return -1;
|
2001
|
-
|
2002
|
-
hint_path = side->path;
|
2003
2000
|
}
|
2004
2001
|
|
2002
|
+
hint_path = side->path;
|
2003
|
+
|
2005
2004
|
if ((data->strategy & GIT_CHECKOUT_UPDATE_ONLY) != 0 &&
|
2006
2005
|
(error = checkout_safe_for_update_only(data, fullpath->ptr, side->mode)) <= 0)
|
2007
2006
|
return error;
|
@@ -2118,7 +2117,7 @@ static int checkout_write_merge(
|
|
2118
2117
|
filter_session.temp_buf = &data->tmp;
|
2119
2118
|
|
2120
2119
|
if ((error = git_filter_list__load(
|
2121
|
-
&fl, data->repo, NULL,
|
2120
|
+
&fl, data->repo, NULL, result.path,
|
2122
2121
|
GIT_FILTER_TO_WORKTREE, &filter_session)) < 0 ||
|
2123
2122
|
(error = git_filter_list__convert_buf(&out_data, fl, &in_data)) < 0)
|
2124
2123
|
goto done;
|
data/vendor/libgit2/src/clone.c
CHANGED
@@ -265,7 +265,7 @@ static int update_head_to_branch(
|
|
265
265
|
{
|
266
266
|
int retcode;
|
267
267
|
git_buf remote_branch_name = GIT_BUF_INIT;
|
268
|
-
git_reference*
|
268
|
+
git_reference *remote_ref = NULL;
|
269
269
|
git_buf default_branch = GIT_BUF_INIT;
|
270
270
|
|
271
271
|
GIT_ASSERT_ARG(remote);
|
@@ -728,7 +728,7 @@ int git_commit_graph_writer_add_revwalk(git_commit_graph_writer *w, git_revwalk
|
|
728
728
|
git_oid id;
|
729
729
|
git_repository *repo = git_revwalk_repository(walk);
|
730
730
|
git_commit *commit;
|
731
|
-
struct packed_commit*
|
731
|
+
struct packed_commit *packed_commit;
|
732
732
|
|
733
733
|
while ((git_revwalk_next(&id, walk)) == 0) {
|
734
734
|
error = git_commit_lookup(&commit, repo, &id);
|
data/vendor/libgit2/src/config.c
CHANGED
@@ -164,7 +164,7 @@ out:
|
|
164
164
|
return error;
|
165
165
|
}
|
166
166
|
|
167
|
-
static void config_file_clear_includes(config_file_backend*
|
167
|
+
static void config_file_clear_includes(config_file_backend *cfg)
|
168
168
|
{
|
169
169
|
config_file *include;
|
170
170
|
uint32_t i;
|
@@ -1104,7 +1104,7 @@ static int write_on_eof(
|
|
1104
1104
|
/*
|
1105
1105
|
* This is pretty much the parsing, except we write out anything we don't have
|
1106
1106
|
*/
|
1107
|
-
static int config_file_write(config_file_backend *cfg, const char *orig_key, const char *key, const git_regexp *preg, const char*
|
1107
|
+
static int config_file_write(config_file_backend *cfg, const char *orig_key, const char *key, const git_regexp *preg, const char *value)
|
1108
1108
|
|
1109
1109
|
{
|
1110
1110
|
char *orig_section = NULL, *section = NULL, *orig_name, *name, *ldot;
|
@@ -349,7 +349,7 @@ static int parse_multiline_variable(git_config_parser *reader, git_buf *value, i
|
|
349
349
|
}
|
350
350
|
|
351
351
|
/* If it was just a comment, pretend it didn't exist */
|
352
|
-
quote_count = strip_comments(line,
|
352
|
+
quote_count = strip_comments(line, in_quotes);
|
353
353
|
if (line[0] == '\0')
|
354
354
|
goto next;
|
355
355
|
|