rugged 0.25.0b1 → 0.25.0b2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/rugged/rugged_rebase.c +74 -22
- data/lib/rugged/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4f92aa719b09c0bc6b851086d77eaceaee7d652c
|
4
|
+
data.tar.gz: e87ded2043f332eae518cdfd4405f7e05cf40413
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3bcc955d28541daed191f26bc4ae37a336bd0cb2a701da8a31990255920e1b87f2d0d20081bf41cda7ec4af1094acab9b08ca4c531e94dba74cc8f84a6cedb45
|
7
|
+
data.tar.gz: 79d06e428b8d9b03a3d132530e88e7b85e3c4865959ce553c5751a23c10cacca27308edb43b655a7982dbd296d107b6deba0dcfebb9ffe94cfa3a9b09e0d87c0
|
data/ext/rugged/rugged_rebase.c
CHANGED
@@ -27,6 +27,8 @@
|
|
27
27
|
extern VALUE rb_mRugged;
|
28
28
|
extern VALUE rb_cRuggedIndex;
|
29
29
|
extern VALUE rb_cRuggedRepo;
|
30
|
+
extern VALUE rb_cRuggedCommit;
|
31
|
+
extern VALUE rb_cRuggedReference;
|
30
32
|
|
31
33
|
VALUE rb_cRuggedRebase;
|
32
34
|
|
@@ -67,6 +69,63 @@ VALUE rugged_rebase_new(VALUE klass, VALUE owner, git_rebase *rebase)
|
|
67
69
|
return rb_rebase;
|
68
70
|
}
|
69
71
|
|
72
|
+
struct get_annotated_commit_args {
|
73
|
+
git_annotated_commit **annotated_commit;
|
74
|
+
VALUE rb_repo;
|
75
|
+
VALUE rb_value;
|
76
|
+
};
|
77
|
+
|
78
|
+
static void get_annotated_commit(git_annotated_commit **annotated_commit, VALUE rb_repo, VALUE rb_value)
|
79
|
+
{
|
80
|
+
git_repository *repo;
|
81
|
+
int error;
|
82
|
+
|
83
|
+
rugged_check_repo(rb_repo);
|
84
|
+
Data_Get_Struct(rb_repo, git_repository, repo);
|
85
|
+
|
86
|
+
if (rb_obj_is_kind_of(rb_value, rb_cRuggedCommit)) {
|
87
|
+
const git_commit * commit;
|
88
|
+
const git_oid * oid;
|
89
|
+
|
90
|
+
Data_Get_Struct(rb_value, git_commit, commit);
|
91
|
+
|
92
|
+
oid = git_commit_id(commit);
|
93
|
+
error = git_annotated_commit_lookup(annotated_commit, repo, oid);
|
94
|
+
} else if (rb_obj_is_kind_of(rb_value, rb_cRuggedReference)) {
|
95
|
+
const git_reference * ref;
|
96
|
+
|
97
|
+
Data_Get_Struct(rb_value, git_reference, ref);
|
98
|
+
|
99
|
+
error = git_annotated_commit_from_ref(annotated_commit, repo, ref);
|
100
|
+
} else if (TYPE(rb_value) == T_STRING) {
|
101
|
+
error = git_annotated_commit_from_revspec(annotated_commit, repo, StringValueCStr(rb_value));
|
102
|
+
} else {
|
103
|
+
rb_raise(rb_eTypeError, "Expecting a Rugged::Reference, Rugged::Commit or String instance");
|
104
|
+
}
|
105
|
+
|
106
|
+
rugged_exception_check(error);
|
107
|
+
}
|
108
|
+
|
109
|
+
static void get_annotated_commit_wrapper(struct get_annotated_commit_args *args)
|
110
|
+
{
|
111
|
+
get_annotated_commit(args->annotated_commit, args->rb_repo, args->rb_value);
|
112
|
+
}
|
113
|
+
|
114
|
+
static int rugged_get_annotated_commit(
|
115
|
+
git_annotated_commit ** annotated_commit, VALUE rb_repo, VALUE rb_value)
|
116
|
+
{
|
117
|
+
struct get_annotated_commit_args args;
|
118
|
+
int exception;
|
119
|
+
|
120
|
+
args.annotated_commit = annotated_commit;
|
121
|
+
args.rb_repo = rb_repo;
|
122
|
+
args.rb_value = rb_value;
|
123
|
+
|
124
|
+
rb_protect((VALUE (*)(VALUE))get_annotated_commit_wrapper, (VALUE)&args, &exception);
|
125
|
+
|
126
|
+
return exception;
|
127
|
+
}
|
128
|
+
|
70
129
|
/*
|
71
130
|
* call-seq:
|
72
131
|
* Rebase.new(repo, branch, upstream[, onto][, options]) -> Rebase
|
@@ -100,9 +159,8 @@ VALUE rugged_rebase_new(VALUE klass, VALUE owner, git_rebase *rebase)
|
|
100
159
|
*/
|
101
160
|
static VALUE rb_git_rebase_new(int argc, VALUE* argv, VALUE klass)
|
102
161
|
{
|
103
|
-
int error;
|
104
|
-
|
105
|
-
git_rebase *rebase;
|
162
|
+
int error = 0, exception = 0;
|
163
|
+
git_rebase *rebase = NULL;
|
106
164
|
git_repository *repo;
|
107
165
|
git_annotated_commit *branch = NULL, *upstream = NULL, *onto = NULL;
|
108
166
|
VALUE rb_repo, rb_branch, rb_upstream, rb_onto, rb_options;
|
@@ -110,24 +168,20 @@ static VALUE rb_git_rebase_new(int argc, VALUE* argv, VALUE klass)
|
|
110
168
|
|
111
169
|
rb_scan_args(argc, argv, "31:", &rb_repo, &rb_branch, &rb_upstream, &rb_onto, &rb_options);
|
112
170
|
Data_Get_Struct(rb_repo, git_repository, repo);
|
113
|
-
str_branch = rugged_refname_from_string_or_ref(rb_branch);
|
114
|
-
str_upstream = rugged_refname_from_string_or_ref(rb_upstream);
|
115
|
-
Check_Type(rb_branch, T_STRING);
|
116
|
-
Check_Type(rb_upstream, T_STRING);
|
117
|
-
if (!NIL_P(rb_onto))
|
118
|
-
str_onto = rugged_refname_from_string_or_ref(rb_onto);
|
119
171
|
|
120
|
-
|
172
|
+
if ((exception = rugged_get_annotated_commit(&branch, rb_repo, rb_branch)))
|
173
|
+
goto cleanup;
|
121
174
|
|
122
|
-
if ((
|
123
|
-
(error = git_annotated_commit_from_revspec(&upstream, repo, str_upstream)) < 0)
|
175
|
+
if ((exception = rugged_get_annotated_commit(&upstream, rb_repo, rb_upstream)))
|
124
176
|
goto cleanup;
|
125
177
|
|
126
178
|
if (!NIL_P(rb_onto)) {
|
127
|
-
if ((
|
179
|
+
if ((exception = rugged_get_annotated_commit(&onto, rb_repo, rb_onto)))
|
128
180
|
goto cleanup;
|
129
181
|
}
|
130
182
|
|
183
|
+
parse_rebase_options(&options, rb_options);
|
184
|
+
|
131
185
|
error = git_rebase_init(&rebase, repo, branch, upstream, onto, &options);
|
132
186
|
|
133
187
|
cleanup:
|
@@ -135,7 +189,11 @@ cleanup:
|
|
135
189
|
git_annotated_commit_free(upstream);
|
136
190
|
git_annotated_commit_free(onto);
|
137
191
|
|
138
|
-
|
192
|
+
if (error) {
|
193
|
+
rugged_exception_check(error);
|
194
|
+
} else if (exception) {
|
195
|
+
rb_jump_tag(exception);
|
196
|
+
}
|
139
197
|
|
140
198
|
return rugged_rebase_new(klass, rb_repo, rebase);
|
141
199
|
}
|
@@ -237,6 +295,8 @@ static VALUE rb_git_rebase_commit(int argc, VALUE *argv, VALUE self)
|
|
237
295
|
Data_Get_Struct(self, git_rebase, rebase);
|
238
296
|
rb_scan_args(argc, argv, ":", &rb_options);
|
239
297
|
|
298
|
+
Check_Type(rb_options, T_HASH);
|
299
|
+
|
240
300
|
rb_author = rb_hash_aref(rb_options, CSTR2SYM("author"));
|
241
301
|
rb_committer = rb_hash_aref(rb_options, CSTR2SYM("committer"));
|
242
302
|
rb_message = rb_hash_aref(rb_options, CSTR2SYM("message"));
|
@@ -345,11 +405,3 @@ void Init_rugged_rebase(void)
|
|
345
405
|
rb_define_method(rb_cRuggedRebase, "abort", rb_git_rebase_abort, 0);
|
346
406
|
rb_define_method(rb_cRuggedRebase, "finish", rb_git_rebase_finish, 1);
|
347
407
|
}
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
data/lib/rugged/version.rb
CHANGED
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.25.
|
4
|
+
version: 0.25.0b2
|
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: 2016-
|
12
|
+
date: 2016-04-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake-compiler
|
@@ -532,7 +532,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
532
532
|
version: 1.3.1
|
533
533
|
requirements: []
|
534
534
|
rubyforge_project:
|
535
|
-
rubygems_version: 2.
|
535
|
+
rubygems_version: 2.4.5
|
536
536
|
signing_key:
|
537
537
|
specification_version: 4
|
538
538
|
summary: Rugged is a Ruby binding to the libgit2 linkable library
|