Support short (raw) oids
This commit is contained in:
parent
ad4b4cc4c5
commit
98013eb44d
@ -42,11 +42,11 @@ py_str_to_git_oid(PyObject *py_str, git_oid *oid)
|
||||
|
||||
/* Case 1: raw sha */
|
||||
if (PyString_Check(py_str)) {
|
||||
hex_or_bin = PyString_AsString(py_str);
|
||||
if (hex_or_bin == NULL)
|
||||
err = PyString_AsStringAndSize(py_str, &hex_or_bin, &len);
|
||||
if (err)
|
||||
return -1;
|
||||
git_oid_fromraw(oid, (const unsigned char*)hex_or_bin);
|
||||
return GIT_OID_HEXSZ;
|
||||
memcpy(oid->id, (const unsigned char*)hex_or_bin, len);
|
||||
return len;
|
||||
}
|
||||
|
||||
/* Case 2: hex sha */
|
||||
|
@ -91,16 +91,14 @@ class RepositoryTest(utils.BareRepoTestCase):
|
||||
def test_contains(self):
|
||||
self.assertRaises(TypeError, lambda: 123 in self.repo)
|
||||
self.assertTrue(A_BIN_SHA in self.repo)
|
||||
self.assertTrue(A_BIN_SHA[:10] in self.repo)
|
||||
self.assertTrue(A_HEX_SHA in self.repo)
|
||||
self.assertTrue(A_HEX_SHA[0:10] in self.repo)
|
||||
self.assertTrue(A_HEX_SHA[:10] in self.repo)
|
||||
self.assertFalse('a' * 40 in self.repo)
|
||||
self.assertFalse('a' * 20 in self.repo)
|
||||
|
||||
def test_iterable(self):
|
||||
l = []
|
||||
for obj in self.repo:
|
||||
l.append(obj)
|
||||
|
||||
l = [ obj for obj in self.repo ]
|
||||
self.assertTrue(A_HEX_SHA in l)
|
||||
|
||||
def test_lookup_blob(self):
|
||||
|
Loading…
x
Reference in New Issue
Block a user