rugged 0.28.4.1 → 0.28.5
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/AUTHORS +1 -0
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/src/apply.c +29 -15
- data/vendor/libgit2/src/attrcache.c +1 -1
- data/vendor/libgit2/src/blame.c +1 -1
- data/vendor/libgit2/src/buffer.c +14 -7
- data/vendor/libgit2/src/cherrypick.c +2 -2
- data/vendor/libgit2/src/diff.c +10 -2
- data/vendor/libgit2/src/diff_generate.c +122 -72
- data/vendor/libgit2/src/fetchhead.c +35 -3
- data/vendor/libgit2/src/filebuf.c +5 -9
- data/vendor/libgit2/src/filebuf.h +1 -1
- data/vendor/libgit2/src/fileops.c +1 -0
- data/vendor/libgit2/src/global.c +12 -40
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/ignore.c +6 -3
- data/vendor/libgit2/src/integer.h +28 -0
- data/vendor/libgit2/src/iterator.c +8 -7
- data/vendor/libgit2/src/merge.c +3 -3
- data/vendor/libgit2/src/netops.c +29 -0
- data/vendor/libgit2/src/netops.h +3 -0
- data/vendor/libgit2/src/patch_generate.c +1 -1
- data/vendor/libgit2/src/patch_parse.c +100 -24
- data/vendor/libgit2/src/refdb_fs.c +4 -1
- data/vendor/libgit2/src/refs.c +5 -0
- data/vendor/libgit2/src/repository.c +7 -4
- data/vendor/libgit2/src/revert.c +2 -2
- data/vendor/libgit2/src/sysdir.c +11 -1
- data/vendor/libgit2/src/transaction.c +7 -1
- data/vendor/libgit2/src/transports/smart_pkt.c +1 -1
- data/vendor/libgit2/src/transports/winhttp.c +6 -1
- data/vendor/libgit2/src/unix/posix.h +1 -1
- data/vendor/libgit2/src/win32/thread.c +0 -5
- metadata +3 -4
@@ -794,7 +794,7 @@ static int loose_lock(git_filebuf *file, refdb_fs_backend *backend, const char *
|
|
794
794
|
if (git_buf_joinpath(&ref_path, basedir, name) < 0)
|
795
795
|
return -1;
|
796
796
|
|
797
|
-
filebuf_flags =
|
797
|
+
filebuf_flags = GIT_FILEBUF_CREATE_LEADING_DIRS;
|
798
798
|
if (backend->fsync)
|
799
799
|
filebuf_flags |= GIT_FILEBUF_FSYNC;
|
800
800
|
|
@@ -2080,6 +2080,9 @@ int git_refdb_backend_fs(
|
|
2080
2080
|
backend = git__calloc(1, sizeof(refdb_fs_backend));
|
2081
2081
|
GIT_ERROR_CHECK_ALLOC(backend);
|
2082
2082
|
|
2083
|
+
if (git_refdb_init_backend(&backend->parent, GIT_REFDB_BACKEND_VERSION) < 0)
|
2084
|
+
goto fail;
|
2085
|
+
|
2083
2086
|
backend->repo = repository;
|
2084
2087
|
|
2085
2088
|
if (repository->gitdir) {
|
data/vendor/libgit2/src/refs.c
CHANGED
@@ -140,6 +140,11 @@ int git_reference_delete(git_reference *ref)
|
|
140
140
|
const git_oid *old_id = NULL;
|
141
141
|
const char *old_target = NULL;
|
142
142
|
|
143
|
+
if (!strcmp(ref->name, "HEAD")) {
|
144
|
+
git_error_set(GIT_ERROR_REFERENCE, "cannot delete HEAD");
|
145
|
+
return GIT_ERROR;
|
146
|
+
}
|
147
|
+
|
143
148
|
if (ref->type == GIT_REFERENCE_DIRECT)
|
144
149
|
old_id = &ref->target.oid;
|
145
150
|
else
|
@@ -799,7 +799,7 @@ int git_repository_open_ext(
|
|
799
799
|
unsigned is_worktree;
|
800
800
|
git_buf gitdir = GIT_BUF_INIT, workdir = GIT_BUF_INIT,
|
801
801
|
gitlink = GIT_BUF_INIT, commondir = GIT_BUF_INIT;
|
802
|
-
git_repository *repo;
|
802
|
+
git_repository *repo = NULL;
|
803
803
|
git_config *config = NULL;
|
804
804
|
|
805
805
|
if (flags & GIT_REPOSITORY_OPEN_FROM_ENV)
|
@@ -812,7 +812,7 @@ int git_repository_open_ext(
|
|
812
812
|
&gitdir, &workdir, &gitlink, &commondir, start_path, flags, ceiling_dirs);
|
813
813
|
|
814
814
|
if (error < 0 || !repo_ptr)
|
815
|
-
|
815
|
+
goto cleanup;
|
816
816
|
|
817
817
|
repo = repository_alloc();
|
818
818
|
GIT_ERROR_CHECK_ALLOC(repo);
|
@@ -858,11 +858,14 @@ int git_repository_open_ext(
|
|
858
858
|
cleanup:
|
859
859
|
git_buf_dispose(&gitdir);
|
860
860
|
git_buf_dispose(&workdir);
|
861
|
+
git_buf_dispose(&gitlink);
|
862
|
+
git_buf_dispose(&commondir);
|
861
863
|
git_config_free(config);
|
862
864
|
|
863
865
|
if (error < 0)
|
864
866
|
git_repository_free(repo);
|
865
|
-
|
867
|
+
|
868
|
+
if (repo_ptr)
|
866
869
|
*repo_ptr = repo;
|
867
870
|
|
868
871
|
return error;
|
@@ -2473,7 +2476,7 @@ int git_repository__set_orig_head(git_repository *repo, const git_oid *orig_head
|
|
2473
2476
|
git_oid_fmt(orig_head_str, orig_head);
|
2474
2477
|
|
2475
2478
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_ORIG_HEAD_FILE)) == 0 &&
|
2476
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
2479
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_MERGE_FILE_MODE)) == 0 &&
|
2477
2480
|
(error = git_filebuf_printf(&file, "%.*s\n", GIT_OID_HEXSZ, orig_head_str)) == 0)
|
2478
2481
|
error = git_filebuf_commit(&file);
|
2479
2482
|
|
data/vendor/libgit2/src/revert.c
CHANGED
@@ -29,7 +29,7 @@ static int write_revert_head(
|
|
29
29
|
int error = 0;
|
30
30
|
|
31
31
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_REVERT_HEAD_FILE)) >= 0 &&
|
32
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
32
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) >= 0 &&
|
33
33
|
(error = git_filebuf_printf(&file, "%s\n", commit_oidstr)) >= 0)
|
34
34
|
error = git_filebuf_commit(&file);
|
35
35
|
|
@@ -51,7 +51,7 @@ static int write_merge_msg(
|
|
51
51
|
int error = 0;
|
52
52
|
|
53
53
|
if ((error = git_buf_joinpath(&file_path, repo->gitdir, GIT_MERGE_MSG_FILE)) < 0 ||
|
54
|
-
(error = git_filebuf_open(&file, file_path.ptr,
|
54
|
+
(error = git_filebuf_open(&file, file_path.ptr, GIT_FILEBUF_CREATE_LEADING_DIRS, GIT_REVERT_FILE_MODE)) < 0 ||
|
55
55
|
(error = git_filebuf_printf(&file, "Revert \"%s\"\n\nThis reverts commit %s.\n",
|
56
56
|
commit_msgline, commit_oidstr)) < 0)
|
57
57
|
goto cleanup;
|
data/vendor/libgit2/src/sysdir.c
CHANGED
@@ -82,15 +82,25 @@ static int git_sysdir_guess_global_dirs(git_buf *out)
|
|
82
82
|
#else
|
83
83
|
int error;
|
84
84
|
uid_t uid, euid;
|
85
|
+
const char *sandbox_id;
|
85
86
|
|
86
87
|
uid = getuid();
|
87
88
|
euid = geteuid();
|
88
89
|
|
90
|
+
/**
|
91
|
+
* If APP_SANDBOX_CONTAINER_ID is set, we are running in a
|
92
|
+
* sandboxed environment on macOS.
|
93
|
+
*/
|
94
|
+
sandbox_id = getenv("APP_SANDBOX_CONTAINER_ID");
|
95
|
+
|
89
96
|
/*
|
90
97
|
* In case we are running setuid, use the configuration
|
91
98
|
* of the effective user.
|
99
|
+
*
|
100
|
+
* If we are running in a sandboxed environment on macOS,
|
101
|
+
* we have to get the HOME dir from the password entry file.
|
92
102
|
*/
|
93
|
-
if (uid == euid)
|
103
|
+
if (!sandbox_id && uid == euid)
|
94
104
|
error = git__getenv(out, "HOME");
|
95
105
|
else
|
96
106
|
error = get_passwd_home(out, euid);
|
@@ -339,7 +339,13 @@ int git_transaction_commit(git_transaction *tx)
|
|
339
339
|
return error;
|
340
340
|
}
|
341
341
|
|
342
|
-
if (node->ref_type
|
342
|
+
if (node->ref_type == GIT_REFERENCE_INVALID) {
|
343
|
+
/* ref was locked but not modified */
|
344
|
+
if ((error = git_refdb_unlock(tx->db, node->payload, false, false, NULL, NULL, NULL)) < 0) {
|
345
|
+
return error;
|
346
|
+
}
|
347
|
+
node->committed = true;
|
348
|
+
} else {
|
343
349
|
if ((error = update_target(tx->db, node)) < 0)
|
344
350
|
return error;
|
345
351
|
}
|
@@ -48,6 +48,10 @@
|
|
48
48
|
# define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 0x00000800
|
49
49
|
#endif
|
50
50
|
|
51
|
+
#ifndef HTTP_STATUS_PERMANENT_REDIRECT
|
52
|
+
# define HTTP_STATUS_PERMANENT_REDIRECT 308
|
53
|
+
#endif
|
54
|
+
|
51
55
|
static const char *prefix_https = "https://";
|
52
56
|
static const char *upload_pack_service = "upload-pack";
|
53
57
|
static const char *upload_pack_ls_service_url = "/info/refs?service=git-upload-pack";
|
@@ -1014,7 +1018,8 @@ replay:
|
|
1014
1018
|
HTTP_STATUS_REDIRECT == status_code ||
|
1015
1019
|
(HTTP_STATUS_REDIRECT_METHOD == status_code &&
|
1016
1020
|
get_verb == s->verb) ||
|
1017
|
-
HTTP_STATUS_REDIRECT_KEEP_VERB == status_code
|
1021
|
+
HTTP_STATUS_REDIRECT_KEEP_VERB == status_code ||
|
1022
|
+
HTTP_STATUS_PERMANENT_REDIRECT == status_code)) {
|
1018
1023
|
|
1019
1024
|
/* Check for Windows 7. This workaround is only necessary on
|
1020
1025
|
* Windows Vista and earlier. Windows 7 is version 6.1. */
|
@@ -33,7 +33,7 @@ typedef int GIT_SOCKET;
|
|
33
33
|
# define st_atime_nsec st_atim.tv_nsec
|
34
34
|
# define st_mtime_nsec st_mtim.tv_nsec
|
35
35
|
# define st_ctime_nsec st_ctim.tv_nsec
|
36
|
-
#elif !defined(GIT_USE_STAT_MTIME_NSEC) && defined(
|
36
|
+
#elif !defined(GIT_USE_STAT_MTIME_NSEC) && defined(GIT_USE_NSEC)
|
37
37
|
# error GIT_USE_NSEC defined but unknown struct stat nanosecond type
|
38
38
|
#endif
|
39
39
|
|
@@ -32,8 +32,6 @@ static DWORD WINAPI git_win32__threadproc(LPVOID lpParameter)
|
|
32
32
|
|
33
33
|
thread->result = thread->proc(thread->param);
|
34
34
|
|
35
|
-
git__free_tls_data();
|
36
|
-
|
37
35
|
return CLEAN_THREAD_EXIT;
|
38
36
|
}
|
39
37
|
|
@@ -103,9 +101,6 @@ void git_thread_exit(void *value)
|
|
103
101
|
{
|
104
102
|
assert(GIT_GLOBAL->current_thread);
|
105
103
|
GIT_GLOBAL->current_thread->result = value;
|
106
|
-
|
107
|
-
git__free_tls_data();
|
108
|
-
|
109
104
|
ExitThread(CLEAN_THREAD_EXIT);
|
110
105
|
}
|
111
106
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.28.
|
4
|
+
version: 0.28.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Chacon
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-04-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -606,8 +606,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
606
606
|
- !ruby/object:Gem::Version
|
607
607
|
version: '0'
|
608
608
|
requirements: []
|
609
|
-
|
610
|
-
rubygems_version: 2.7.6.2
|
609
|
+
rubygems_version: 3.1.2
|
611
610
|
signing_key:
|
612
611
|
specification_version: 4
|
613
612
|
summary: Rugged is a Ruby binding to the libgit2 linkable library
|