rugged 0.17.0b1 → 0.17.0b2
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.
- data/Rakefile +1 -1
- data/ext/rugged/rugged.c +3 -3
- data/ext/rugged/rugged.h +1 -7
- data/ext/rugged/rugged_blob.c +1 -0
- data/ext/rugged/rugged_commit.c +0 -2
- data/ext/rugged/rugged_config.c +0 -1
- data/ext/rugged/rugged_object.c +44 -4
- data/ext/rugged/rugged_tag.c +5 -6
- data/ext/rugged/vendor/libgit2-dist.tar.gz +0 -0
- data/ext/rugged/vendor/libgit2-dist/include/git2/refspec.h +8 -0
- data/ext/rugged/vendor/libgit2-dist/src/ignore.c +2 -0
- data/ext/rugged/vendor/libgit2-dist/src/posix.h +1 -0
- data/ext/rugged/vendor/libgit2-dist/src/repository.c +3 -0
- data/ext/rugged/vendor/libgit2-dist/src/revparse.c +0 -5
- data/ext/rugged/vendor/libgit2-dist/src/revwalk.c +21 -15
- data/ext/rugged/vendor/libgit2-dist/tests-clar/repo/init.c +16 -2
- data/ext/rugged/vendor/libgit2-dist/tests-clar/status/ignore.c +14 -0
- data/lib/rugged/commit.rb +1 -5
- data/lib/rugged/repository.rb +14 -0
- data/lib/rugged/version.rb +1 -1
- data/test/blob_test.rb +1 -1
- data/test/commit_test.rb +1 -1
- data/test/config_test.rb +2 -2
- data/test/index_test.rb +2 -2
- data/test/lib_test.rb +1 -1
- data/test/object_test.rb +14 -1
- data/test/reference_test.rb +1 -1
- data/test/remote_test.rb +1 -1
- data/test/repo_pack_test.rb +1 -1
- data/test/repo_test.rb +1 -1
- data/test/tag_test.rb +1 -1
- data/test/test_helper.rb +43 -57
- data/test/tree_test.rb +1 -1
- data/test/walker_test.rb +1 -1
- metadata +8 -9
data/Rakefile
CHANGED
data/ext/rugged/rugged.c
CHANGED
@@ -42,7 +42,7 @@ const char *RUGGED_ERROR_NAMES[] = {
|
|
42
42
|
"IndexerError", /* GITERR_INDEXER, */
|
43
43
|
};
|
44
44
|
|
45
|
-
#define RUGGED_ERROR_COUNT ((sizeof(RUGGED_ERROR_NAMES)/sizeof(RUGGED_ERROR_NAMES[0])))
|
45
|
+
#define RUGGED_ERROR_COUNT (int)((sizeof(RUGGED_ERROR_NAMES)/sizeof(RUGGED_ERROR_NAMES[0])))
|
46
46
|
|
47
47
|
VALUE rb_mRugged;
|
48
48
|
VALUE rb_eRuggedError;
|
@@ -67,7 +67,7 @@ static VALUE rb_git_hex_to_raw(VALUE self, VALUE hex)
|
|
67
67
|
Check_Type(hex, T_STRING);
|
68
68
|
rugged_exception_check(git_oid_fromstr(&oid, StringValueCStr(hex)));
|
69
69
|
|
70
|
-
return rugged_str_ascii(oid.id, 20);
|
70
|
+
return rugged_str_ascii((const char *)oid.id, 20);
|
71
71
|
}
|
72
72
|
|
73
73
|
/*
|
@@ -90,7 +90,7 @@ static VALUE rb_git_raw_to_hex(VALUE self, VALUE raw)
|
|
90
90
|
if (RSTRING_LEN(raw) != GIT_OID_RAWSZ)
|
91
91
|
rb_raise(rb_eTypeError, "Invalid buffer size for an OID");
|
92
92
|
|
93
|
-
git_oid_fromraw(&oid, RSTRING_PTR(raw));
|
93
|
+
git_oid_fromraw(&oid, (const unsigned char *)RSTRING_PTR(raw));
|
94
94
|
git_oid_fmt(out, &oid);
|
95
95
|
|
96
96
|
return rugged_str_new(out, 40, NULL);
|
data/ext/rugged/rugged.h
CHANGED
@@ -80,7 +80,7 @@ static inline void rugged_set_owner(VALUE object, VALUE owner)
|
|
80
80
|
|
81
81
|
static inline VALUE rugged_owner(VALUE object)
|
82
82
|
{
|
83
|
-
rb_iv_get(object, "@owner");
|
83
|
+
return rb_iv_get(object, "@owner");
|
84
84
|
}
|
85
85
|
|
86
86
|
extern void rugged_exception_raise(int errorcode);
|
@@ -105,15 +105,9 @@ static inline int rugged_parse_bool(VALUE boolean)
|
|
105
105
|
# define rugged_str_new2(str, enc) rb_enc_str_new(str, strlen(str), enc)
|
106
106
|
# define rugged_str_ascii(str, len) rb_enc_str_new(str, len, rb_ascii8bit_encoding());
|
107
107
|
|
108
|
-
static VALUE rugged_str_repoenc(const char *str, long len, VALUE rb_repo)
|
109
|
-
{
|
110
|
-
VALUE rb_enc = rb_iv_get(rb_repo, "@encoding");
|
111
|
-
return rb_enc_str_new(str, len, NIL_P(rb_enc) ? NULL : rb_to_encoding(rb_enc));
|
112
|
-
}
|
113
108
|
#else
|
114
109
|
# define rugged_str_new(str, len, rb_enc) rb_str_new(str, len)
|
115
110
|
# define rugged_str_new2(str, rb_enc) rb_str_new2(str)
|
116
|
-
# define rugged_str_repoenc(str, len, repo) rb_str_new(str, len)
|
117
111
|
# define rugged_str_ascii(str, len) rb_str_new(str, len)
|
118
112
|
#endif
|
119
113
|
|
data/ext/rugged/rugged_blob.c
CHANGED
data/ext/rugged/rugged_commit.c
CHANGED
@@ -173,7 +173,6 @@ static VALUE rb_git_commit_tree_oid_GET(VALUE self)
|
|
173
173
|
{
|
174
174
|
git_commit *commit;
|
175
175
|
const git_oid *tree_oid;
|
176
|
-
int error;
|
177
176
|
|
178
177
|
Data_Get_Struct(self, git_commit, commit);
|
179
178
|
|
@@ -233,7 +232,6 @@ static VALUE rb_git_commit_parent_oids_GET(VALUE self)
|
|
233
232
|
const git_oid *parent_oid;
|
234
233
|
unsigned int n, parent_count;
|
235
234
|
VALUE ret_arr;
|
236
|
-
int error;
|
237
235
|
|
238
236
|
Data_Get_Struct(self, git_commit, commit);
|
239
237
|
|
data/ext/rugged/rugged_config.c
CHANGED
data/ext/rugged/rugged_object.c
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
* The MIT License
|
3
3
|
*
|
4
4
|
* Copyright (c) 2011 GitHub, Inc
|
5
|
-
*
|
5
|
+
*
|
6
6
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
* of this software and associated documentation files (the "Software"), to deal
|
8
8
|
* in the Software without restriction, including without limitation the rights
|
9
9
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
10
|
* copies of the Software, and to permit persons to whom the Software is
|
11
11
|
* furnished to do so, subject to the following conditions:
|
12
|
-
*
|
12
|
+
*
|
13
13
|
* The above copyright notice and this permission notice shall be included in
|
14
14
|
* all copies or substantial portions of the Software.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
17
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
18
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
@@ -164,7 +164,7 @@ static git_otype class2otype(VALUE klass)
|
|
164
164
|
|
165
165
|
if (klass == rb_cRuggedTree)
|
166
166
|
return GIT_OBJ_TREE;
|
167
|
-
|
167
|
+
|
168
168
|
return GIT_OBJ_BAD;
|
169
169
|
}
|
170
170
|
|
@@ -207,6 +207,44 @@ VALUE rb_git_object_lookup(VALUE klass, VALUE rb_repo, VALUE rb_hex)
|
|
207
207
|
return rugged_object_new(rb_repo, object);
|
208
208
|
}
|
209
209
|
|
210
|
+
static VALUE rugged_object_rev_parse(VALUE klass, VALUE rb_repo, VALUE rb_spec, int as_obj)
|
211
|
+
{
|
212
|
+
git_object *object;
|
213
|
+
const char *spec;
|
214
|
+
int error;
|
215
|
+
git_repository *repo;
|
216
|
+
VALUE ret;
|
217
|
+
|
218
|
+
Check_Type(rb_spec, T_STRING);
|
219
|
+
spec = RSTRING_PTR(rb_spec);
|
220
|
+
|
221
|
+
if (!rb_obj_is_instance_of(rb_repo, rb_cRuggedRepo))
|
222
|
+
rb_raise(rb_eTypeError, "Expecting a Rugged Repository");
|
223
|
+
|
224
|
+
Data_Get_Struct(rb_repo, git_repository, repo);
|
225
|
+
|
226
|
+
error = git_revparse_single(&object, repo, spec);
|
227
|
+
rugged_exception_check(error);
|
228
|
+
|
229
|
+
if (as_obj) {
|
230
|
+
return rugged_object_new(rb_repo, object);
|
231
|
+
}
|
232
|
+
|
233
|
+
ret = rugged_create_oid(git_object_id(object));
|
234
|
+
git_object_free(object);
|
235
|
+
return ret;
|
236
|
+
}
|
237
|
+
|
238
|
+
VALUE rb_git_object_rev_parse(VALUE klass, VALUE rb_repo, VALUE rb_spec)
|
239
|
+
{
|
240
|
+
return rugged_object_rev_parse(klass, rb_repo, rb_spec, 1);
|
241
|
+
}
|
242
|
+
|
243
|
+
VALUE rb_git_object_rev_parse_oid(VALUE klass, VALUE rb_repo, VALUE rb_spec)
|
244
|
+
{
|
245
|
+
return rugged_object_rev_parse(klass, rb_repo, rb_spec, 0);
|
246
|
+
}
|
247
|
+
|
210
248
|
static VALUE rb_git_object_equal(VALUE self, VALUE other)
|
211
249
|
{
|
212
250
|
git_object *a, *b;
|
@@ -247,6 +285,8 @@ void Init_rugged_object()
|
|
247
285
|
{
|
248
286
|
rb_cRuggedObject = rb_define_class_under(rb_mRugged, "Object", rb_cObject);
|
249
287
|
rb_define_singleton_method(rb_cRuggedObject, "lookup", rb_git_object_lookup, 2);
|
288
|
+
rb_define_singleton_method(rb_cRuggedObject, "rev_parse", rb_git_object_rev_parse, 2);
|
289
|
+
rb_define_singleton_method(rb_cRuggedObject, "rev_parse_oid", rb_git_object_rev_parse_oid, 2);
|
250
290
|
rb_define_singleton_method(rb_cRuggedObject, "new", rb_git_object_lookup, 2);
|
251
291
|
|
252
292
|
rb_define_method(rb_cRuggedObject, "read_raw", rb_git_object_read_raw, 0);
|
data/ext/rugged/rugged_tag.c
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
* The MIT License
|
3
3
|
*
|
4
4
|
* Copyright (c) 2011 GitHub, Inc
|
5
|
-
*
|
5
|
+
*
|
6
6
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
* of this software and associated documentation files (the "Software"), to deal
|
8
8
|
* in the Software without restriction, including without limitation the rights
|
9
9
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
10
10
|
* copies of the Software, and to permit persons to whom the Software is
|
11
11
|
* furnished to do so, subject to the following conditions:
|
12
|
-
*
|
12
|
+
*
|
13
13
|
* The above copyright notice and this permission notice shall be included in
|
14
14
|
* all copies or substantial portions of the Software.
|
15
|
-
*
|
15
|
+
*
|
16
16
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
17
17
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
18
18
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
@@ -35,7 +35,7 @@ VALUE rb_cRuggedTag;
|
|
35
35
|
*
|
36
36
|
* Return the +object+ pointed at by this tag, as a <tt>Rugged::Object</tt>
|
37
37
|
* instance.
|
38
|
-
*
|
38
|
+
*
|
39
39
|
* tag.target #=> #<Rugged::Commit:0x108828918>
|
40
40
|
*/
|
41
41
|
static VALUE rb_git_tag_target_GET(VALUE self)
|
@@ -61,13 +61,12 @@ static VALUE rb_git_tag_target_GET(VALUE self)
|
|
61
61
|
* Return the oid pointed at by this tag, as a <tt>String</tt>
|
62
62
|
* instance.
|
63
63
|
*
|
64
|
-
* tag.
|
64
|
+
* tag.target_oid #=> "2cb831a8aea28b2c1b9c63385585b864e4d3bad1"
|
65
65
|
*/
|
66
66
|
static VALUE rb_git_tag_target_oid_GET(VALUE self)
|
67
67
|
{
|
68
68
|
git_tag *tag;
|
69
69
|
const git_oid *target_oid;
|
70
|
-
int error;
|
71
70
|
|
72
71
|
Data_Get_Struct(self, git_tag, tag);
|
73
72
|
|
Binary file
|
@@ -19,6 +19,14 @@
|
|
19
19
|
*/
|
20
20
|
GIT_BEGIN_DECL
|
21
21
|
|
22
|
+
/**
|
23
|
+
* Parse a refspec string and create a refspec object
|
24
|
+
*
|
25
|
+
* @param refspec pointer to the refspec structure to be used
|
26
|
+
* @param str the refspec as a string
|
27
|
+
*/
|
28
|
+
GIT_EXTERN(int) git_refspec_parse(git_refspec *refspec, const char *str);
|
29
|
+
|
22
30
|
/**
|
23
31
|
* Get the source specifier
|
24
32
|
*
|
@@ -66,6 +66,7 @@ typedef int GIT_SOCKET;
|
|
66
66
|
#else
|
67
67
|
|
68
68
|
typedef SOCKET GIT_SOCKET;
|
69
|
+
struct timezone;
|
69
70
|
extern struct tm * p_localtime_r (const time_t *timer, struct tm *result);
|
70
71
|
extern struct tm * p_gmtime_r (const time_t *timer, struct tm *result);
|
71
72
|
extern int p_gettimeofday(struct timeval *tv, struct timezone *tz);
|
@@ -718,6 +718,9 @@ static int repo_init_config(const char *git_dir, bool is_bare, bool is_reinit)
|
|
718
718
|
SET_REPO_CONFIG(int32, "core.repositoryformatversion", GIT_REPO_VERSION);
|
719
719
|
SET_REPO_CONFIG(bool, "core.filemode", is_chmod_supported(git_buf_cstr(&cfg_path)));
|
720
720
|
|
721
|
+
if (!is_bare)
|
722
|
+
SET_REPO_CONFIG(bool, "core.logallrefupdates", true);
|
723
|
+
|
721
724
|
if (!is_reinit && is_filesystem_case_insensitive(git_dir))
|
722
725
|
SET_REPO_CONFIG(bool, "core.ignorecase", true);
|
723
726
|
/* TODO: what other defaults? */
|
@@ -13,8 +13,6 @@
|
|
13
13
|
|
14
14
|
#include "git2.h"
|
15
15
|
|
16
|
-
GIT_BEGIN_DECL
|
17
|
-
|
18
16
|
typedef enum {
|
19
17
|
REVPARSE_STATE_INIT,
|
20
18
|
REVPARSE_STATE_CARET,
|
@@ -748,6 +746,3 @@ int git_revparse_single(git_object **out, git_repository *repo, const char *spec
|
|
748
746
|
git_buf_free(&stepbuffer);
|
749
747
|
return retcode;
|
750
748
|
}
|
751
|
-
|
752
|
-
|
753
|
-
GIT_END_DECL
|
@@ -169,14 +169,23 @@ static commit_object *commit_lookup(git_revwalk *walk, const git_oid *oid)
|
|
169
169
|
return commit;
|
170
170
|
}
|
171
171
|
|
172
|
+
static int commit_error(commit_object *commit, const char *msg)
|
173
|
+
{
|
174
|
+
char commit_oid[GIT_OID_HEXSZ + 1];
|
175
|
+
git_oid_fmt(commit_oid, &commit->oid);
|
176
|
+
commit_oid[GIT_OID_HEXSZ] = '\0';
|
177
|
+
|
178
|
+
giterr_set(GITERR_ODB, "Failed to parse commit %s - %s", commit_oid, msg);
|
179
|
+
|
180
|
+
return -1;
|
181
|
+
}
|
182
|
+
|
172
183
|
static int commit_quick_parse(git_revwalk *walk, commit_object *commit, git_rawobj *raw)
|
173
184
|
{
|
174
185
|
const size_t parent_len = strlen("parent ") + GIT_OID_HEXSZ + 1;
|
175
|
-
|
176
186
|
unsigned char *buffer = raw->data;
|
177
187
|
unsigned char *buffer_end = buffer + raw->len;
|
178
188
|
unsigned char *parents_start;
|
179
|
-
|
180
189
|
int i, parents = 0;
|
181
190
|
int commit_time;
|
182
191
|
|
@@ -207,21 +216,18 @@ static int commit_quick_parse(git_revwalk *walk, commit_object *commit, git_rawo
|
|
207
216
|
|
208
217
|
commit->out_degree = (unsigned short)parents;
|
209
218
|
|
210
|
-
if ((buffer = memchr(buffer, '\n', buffer_end - buffer)) == NULL)
|
211
|
-
|
212
|
-
return -1;
|
213
|
-
}
|
219
|
+
if ((buffer = memchr(buffer, '\n', buffer_end - buffer)) == NULL)
|
220
|
+
return commit_error(commit, "object is corrupted");
|
214
221
|
|
215
|
-
buffer = memchr(buffer, '
|
216
|
-
|
217
|
-
|
218
|
-
return -1;
|
219
|
-
}
|
222
|
+
if ((buffer = memchr(buffer, '<', buffer_end - buffer)) == NULL ||
|
223
|
+
(buffer = memchr(buffer, '>', buffer_end - buffer)) == NULL)
|
224
|
+
return commit_error(commit, "malformed author information");
|
220
225
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
226
|
+
while (*buffer == '>' || git__isspace(*buffer))
|
227
|
+
buffer++;
|
228
|
+
|
229
|
+
if (git__strtol32(&commit_time, (char *)buffer, NULL, 10) < 0)
|
230
|
+
return commit_error(commit, "cannot parse commit time");
|
225
231
|
|
226
232
|
commit->time = (time_t)commit_time;
|
227
233
|
commit->parsed = 1;
|
@@ -166,14 +166,14 @@ void test_repo_init__additional_templates(void)
|
|
166
166
|
git_buf_free(&path);
|
167
167
|
}
|
168
168
|
|
169
|
-
static void
|
169
|
+
static void assert_config_entry_on_init_bytype(const char *config_key, int expected_value, bool is_bare)
|
170
170
|
{
|
171
171
|
git_config *config;
|
172
172
|
int current_value;
|
173
173
|
|
174
174
|
cl_set_cleanup(&cleanup_repository, "config_entry");
|
175
175
|
|
176
|
-
cl_git_pass(git_repository_init(&_repo, "config_entry/test.git",
|
176
|
+
cl_git_pass(git_repository_init(&_repo, "config_entry/test.git", is_bare));
|
177
177
|
git_repository_config(&config, _repo);
|
178
178
|
|
179
179
|
if (expected_value >= 0) {
|
@@ -189,6 +189,14 @@ static void assert_config_entry_on_init(const char *config_key, int expected_val
|
|
189
189
|
git_config_free(config);
|
190
190
|
}
|
191
191
|
|
192
|
+
static void assert_config_entry_on_init(const char *config_key, int expected_value)
|
193
|
+
{
|
194
|
+
assert_config_entry_on_init_bytype(config_key, expected_value, true);
|
195
|
+
git_repository_free(_repo);
|
196
|
+
|
197
|
+
assert_config_entry_on_init_bytype(config_key, expected_value, false);
|
198
|
+
}
|
199
|
+
|
192
200
|
void test_repo_init__detect_filemode(void)
|
193
201
|
{
|
194
202
|
#ifdef GIT_WIN32
|
@@ -233,3 +241,9 @@ void test_repo_init__reinit_doesnot_overwrite_ignorecase(void)
|
|
233
241
|
|
234
242
|
git_config_free(config);
|
235
243
|
}
|
244
|
+
|
245
|
+
void test_repo_init__sets_logAllRefUpdates_according_to_type_of_repository(void)
|
246
|
+
{
|
247
|
+
assert_config_entry_on_init_bytype("core.logallrefupdates", GIT_ENOTFOUND, true);
|
248
|
+
assert_config_entry_on_init_bytype("core.logallrefupdates", true, false);
|
249
|
+
}
|
@@ -131,3 +131,17 @@ void test_status_ignore__empty_repo_with_gitignore_rewrite(void)
|
|
131
131
|
cl_assert(ignored);
|
132
132
|
}
|
133
133
|
|
134
|
+
void test_status_ignore__ignore_pattern_contains_space(void)
|
135
|
+
{
|
136
|
+
unsigned int flags;
|
137
|
+
const mode_t mode = 0777;
|
138
|
+
|
139
|
+
g_repo = cl_git_sandbox_init("empty_standard_repo");
|
140
|
+
cl_git_rewritefile("empty_standard_repo/.gitignore", "foo bar.txt\n");
|
141
|
+
|
142
|
+
cl_git_pass(git_futils_mkdir_r("empty_standard_repo/foo", NULL, mode));
|
143
|
+
cl_git_mkfile("empty_standard_repo/foo/look-ma.txt", "I'm not going to be ignored!");
|
144
|
+
|
145
|
+
cl_git_pass(git_status_file(&flags, g_repo, "foo/look-ma.txt"));
|
146
|
+
cl_assert(flags == GIT_STATUS_WT_NEW);
|
147
|
+
}
|
data/lib/rugged/commit.rb
CHANGED
@@ -2,7 +2,7 @@ module Rugged
|
|
2
2
|
class Commit
|
3
3
|
|
4
4
|
def inspect
|
5
|
-
"#<Rugged::Commit:#{object_id} {message: #{message.inspect}, tree: #{tree.inspect}, parents: #{
|
5
|
+
"#<Rugged::Commit:#{object_id} {message: #{message.inspect}, tree: #{tree.inspect}, parents: #{parent_oids.inspect}>"
|
6
6
|
end
|
7
7
|
|
8
8
|
# The time when this commit was made effective. This is the same value
|
@@ -22,10 +22,6 @@ module Rugged
|
|
22
22
|
:parents => parents,
|
23
23
|
}
|
24
24
|
end
|
25
|
-
|
26
|
-
def parent_ids
|
27
|
-
parents.map { |parent| parent.oid }
|
28
|
-
end
|
29
25
|
|
30
26
|
def modify(new_args, update_ref=nil)
|
31
27
|
args = self.to_hash.merge(new_args)
|
data/lib/rugged/repository.rb
CHANGED
@@ -47,6 +47,20 @@ module Rugged
|
|
47
47
|
Rugged::Object.lookup(self, oid)
|
48
48
|
end
|
49
49
|
|
50
|
+
# Look up an object by a revision string.
|
51
|
+
#
|
52
|
+
# Returns one of the four classes that inherit from Rugged::Object.
|
53
|
+
def rev_parse(spec)
|
54
|
+
Rugged::Object.rev_parse(self, spec)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Look up an object by a revision string.
|
58
|
+
#
|
59
|
+
# Returns the oid of the matched object as a String
|
60
|
+
def rev_parse_oid(spec)
|
61
|
+
Rugged::Object.rev_parse_oid(self, spec)
|
62
|
+
end
|
63
|
+
|
50
64
|
# Look up a single reference by name.
|
51
65
|
#
|
52
66
|
# Example:
|
data/lib/rugged/version.rb
CHANGED
data/test/blob_test.rb
CHANGED
data/test/commit_test.rb
CHANGED
data/test/config_test.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
|
3
3
|
context "Rugged::Config tests" do
|
4
4
|
setup do
|
5
|
-
@repo = Rugged::Repository.new(
|
5
|
+
@repo = Rugged::Repository.new(temp_repo('testrepo.git'))
|
6
6
|
end
|
7
7
|
|
8
8
|
test "can read the config file from repo" do
|
data/test/index_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
require 'base64'
|
3
3
|
require 'tempfile'
|
4
4
|
require 'fileutils'
|
@@ -75,7 +75,7 @@ context "Rugged::Index reading stuff" do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
test "can update entries" do
|
78
|
-
now = Time.now
|
78
|
+
now = Time.at Time.now.to_i
|
79
79
|
e = @index.get_entry(0)
|
80
80
|
|
81
81
|
e[:oid] = "12ea3153a78002a988bb92f4123e7e831fd1138a"
|
data/test/lib_test.rb
CHANGED
data/test/object_test.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require "test_helper"
|
2
2
|
require 'base64'
|
3
3
|
|
4
4
|
context "Rugged::Object stuff" do
|
@@ -30,4 +30,17 @@ context "Rugged::Object stuff" do
|
|
30
30
|
assert obj.read_raw
|
31
31
|
end
|
32
32
|
|
33
|
+
test "can lookup an object by revision string" do
|
34
|
+
obj = @repo.rev_parse("v1.0")
|
35
|
+
assert "0c37a5391bbff43c37f0d0371823a5509eed5b1d", obj.oid
|
36
|
+
obj = @repo.rev_parse("v1.0^1")
|
37
|
+
assert "8496071c1b46c854b31185ea97743be6a8774479", obj.oid
|
38
|
+
end
|
39
|
+
|
40
|
+
test "can lookup just an object's oid by revision string" do
|
41
|
+
oid = @repo.rev_parse_oid("v1.0")
|
42
|
+
assert "0c37a5391bbff43c37f0d0371823a5509eed5b1d", oid
|
43
|
+
obj = @repo.rev_parse_oid("v1.0^1")
|
44
|
+
assert "8496071c1b46c854b31185ea97743be6a8774479", oid
|
45
|
+
end
|
33
46
|
end
|
data/test/reference_test.rb
CHANGED
data/test/remote_test.rb
CHANGED
data/test/repo_pack_test.rb
CHANGED
data/test/repo_test.rb
CHANGED
data/test/tag_test.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,75 +1,61 @@
|
|
1
|
-
dir = File.dirname(File.expand_path(__FILE__))
|
2
|
-
$LOAD_PATH.unshift dir + '/../lib'
|
3
|
-
$TEST_DIR = File.dirname(File.expand_path(__FILE__))
|
4
|
-
$TESTING = true
|
5
|
-
require 'test/unit'
|
6
1
|
require 'tempfile'
|
2
|
+
require 'tmpdir'
|
7
3
|
require 'rubygems'
|
4
|
+
require 'minitest/autorun'
|
8
5
|
require 'rugged'
|
9
6
|
require 'pp'
|
10
7
|
|
11
|
-
|
12
|
-
|
13
|
-
# http://gist.github.com/25455
|
14
|
-
# chris@ozmm.org
|
15
|
-
#
|
16
|
-
def context(*args, &block)
|
17
|
-
return super unless (name = args.first) && block
|
18
|
-
require 'test/unit'
|
19
|
-
klass = Class.new(defined?(ActiveSupport::TestCase) ? ActiveSupport::TestCase : Test::Unit::TestCase) do
|
20
|
-
def self.test(name, &block)
|
21
|
-
define_method("test_#{name.gsub(/\W/,'_')}", &block) if block
|
22
|
-
end
|
23
|
-
def self.xtest(*args) end
|
24
|
-
def self.setup(&block) define_method(:setup, &block) end
|
25
|
-
def self.teardown(&block) define_method(:teardown, &block) end
|
26
|
-
end
|
27
|
-
(class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') }
|
28
|
-
klass.class_eval &block
|
29
|
-
($contexts ||= []) << klass # make sure klass doesn't get GC'd
|
30
|
-
klass
|
31
|
-
end
|
8
|
+
# backwards compat with test/spec/mini 3
|
9
|
+
alias :context :describe
|
32
10
|
|
33
|
-
|
34
|
-
|
35
|
-
|
11
|
+
module Rugged
|
12
|
+
class TestCase < MiniTest::Spec
|
13
|
+
TEST_DIR = File.dirname(File.expand_path(__FILE__))
|
36
14
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
end
|
15
|
+
class << self
|
16
|
+
# backwards compat with test/spec/mini 3
|
17
|
+
alias :setup :before
|
18
|
+
alias :teardown :after
|
19
|
+
alias :test :it
|
20
|
+
end
|
43
21
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
file.unlink
|
48
|
-
Dir.mkdir(dir)
|
49
|
-
dir
|
50
|
-
end
|
22
|
+
# backwards compat with test/unit
|
23
|
+
alias :assert_not_nil :refute_nil
|
24
|
+
alias :assert_raise :assert_raises
|
51
25
|
|
52
|
-
|
26
|
+
private
|
53
27
|
|
54
|
-
|
28
|
+
def temp_repo(repo)
|
29
|
+
dir = Dir.mktmpdir 'dir'
|
30
|
+
repo_dir = File.join(TEST_DIR, (File.join('fixtures', repo, '.')))
|
31
|
+
`git clone #{repo_dir} #{dir}`
|
32
|
+
dir
|
33
|
+
end
|
55
34
|
|
56
|
-
|
57
|
-
|
35
|
+
def rm_loose(oid)
|
36
|
+
base_path = File.join(@path, "objects", oid[0, 2])
|
58
37
|
|
59
|
-
|
38
|
+
file = File.join(base_path, oid[2, 38])
|
39
|
+
dir_contents = File.join(base_path, "*")
|
60
40
|
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
41
|
+
File.delete(file)
|
42
|
+
|
43
|
+
if Dir[dir_contents].empty?
|
44
|
+
Dir.delete(base_path)
|
45
|
+
end
|
46
|
+
end
|
65
47
|
|
66
|
-
def with_default_encoding(encoding, &block)
|
67
|
-
|
48
|
+
def with_default_encoding(encoding, &block)
|
49
|
+
old_encoding = Encoding.default_internal
|
68
50
|
|
69
|
-
|
70
|
-
|
51
|
+
new_encoding = Encoding.find(encoding)
|
52
|
+
Encoding.default_internal = new_encoding
|
71
53
|
|
72
|
-
|
54
|
+
yield new_encoding
|
73
55
|
|
74
|
-
|
56
|
+
Encoding.default_internal = old_encoding
|
57
|
+
end
|
58
|
+
end
|
75
59
|
end
|
60
|
+
|
61
|
+
MiniTest::Spec.register_spec_type(/./, Rugged::TestCase)
|
data/test/tree_test.rb
CHANGED
data/test/walker_test.rb
CHANGED
metadata
CHANGED
@@ -1,31 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rugged
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 355
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 17
|
9
9
|
- 0
|
10
10
|
- b
|
11
|
-
-
|
12
|
-
version: 0.17.
|
11
|
+
- 2
|
12
|
+
version: 0.17.0b2
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
|
-
-
|
15
|
+
- Scott Chacon
|
16
|
+
- Vicent Marti
|
16
17
|
autorequire:
|
17
18
|
bindir: bin
|
18
19
|
cert_chain: []
|
19
20
|
|
20
|
-
date: 2012-06-
|
21
|
-
default_executable:
|
21
|
+
date: 2012-06-15 00:00:00 Z
|
22
22
|
dependencies: []
|
23
23
|
|
24
24
|
description: |
|
25
25
|
Rugged is a Ruby bindings to the libgit2 linkable C Git library. This is
|
26
26
|
for testing and using the libgit2 library in a language that is awesome.
|
27
27
|
|
28
|
-
email:
|
28
|
+
email: schacon@gmail.com
|
29
29
|
executables: []
|
30
30
|
|
31
31
|
extensions:
|
@@ -454,7 +454,6 @@ files:
|
|
454
454
|
- ext/rugged/vendor/libgit2-dist/tests-clar/status/status_helpers.h
|
455
455
|
- ext/rugged/vendor/libgit2-dist.tar.gz
|
456
456
|
- ext/rugged/extconf.rb
|
457
|
-
has_rdoc: true
|
458
457
|
homepage: http://github.com/libgit2/rugged
|
459
458
|
licenses: []
|
460
459
|
|
@@ -486,7 +485,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
486
485
|
requirements: []
|
487
486
|
|
488
487
|
rubyforge_project:
|
489
|
-
rubygems_version: 1.
|
488
|
+
rubygems_version: 1.8.17
|
490
489
|
signing_key:
|
491
490
|
specification_version: 3
|
492
491
|
summary: Rugged is a Ruby binding to the libgit2 linkable library
|