New DiffDelta.status_char()
This commit is contained in:
30
src/diff.c
30
src/diff.c
@@ -91,7 +91,7 @@ wrap_diff_delta(const git_diff_delta *delta)
|
|||||||
|
|
||||||
py_delta = PyObject_New(DiffDelta, &DiffDeltaType);
|
py_delta = PyObject_New(DiffDelta, &DiffDeltaType);
|
||||||
if (py_delta) {
|
if (py_delta) {
|
||||||
py_delta->status = git_diff_status_char(delta->status);
|
py_delta->status = delta->status;
|
||||||
py_delta->flags = delta->flags;
|
py_delta->flags = delta->flags;
|
||||||
py_delta->similarity = delta->similarity;
|
py_delta->similarity = delta->similarity;
|
||||||
py_delta->nfiles = delta->nfiles;
|
py_delta->nfiles = delta->nfiles;
|
||||||
@@ -222,6 +222,25 @@ PyTypeObject DiffFileType = {
|
|||||||
0, /* tp_new */
|
0, /* tp_new */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
PyDoc_STRVAR(DiffDelta_status_char__doc__,
|
||||||
|
"status_char()\n"
|
||||||
|
"\n"
|
||||||
|
"Return the single character abbreviation for a delta status code."
|
||||||
|
);
|
||||||
|
|
||||||
|
PyObject *
|
||||||
|
DiffDelta_status_char(DiffDelta *self)
|
||||||
|
{
|
||||||
|
char status = git_diff_status_char(self->status);
|
||||||
|
|
||||||
|
#if PY_MAJOR_VERSION == 2
|
||||||
|
return Py_BuildValue("c", status);
|
||||||
|
#else
|
||||||
|
return Py_BuildValue("C", status);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(DiffDelta_is_binary__doc__, "True if binary data, False if not.");
|
PyDoc_STRVAR(DiffDelta_is_binary__doc__, "True if binary data, False if not.");
|
||||||
|
|
||||||
PyObject *
|
PyObject *
|
||||||
@@ -241,8 +260,13 @@ DiffDelta_dealloc(DiffDelta *self)
|
|||||||
PyObject_Del(self);
|
PyObject_Del(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyMethodDef DiffDelta_methods[] = {
|
||||||
|
METHOD(DiffDelta, status_char, METH_NOARGS),
|
||||||
|
{NULL}
|
||||||
|
};
|
||||||
|
|
||||||
PyMemberDef DiffDelta_members[] = {
|
PyMemberDef DiffDelta_members[] = {
|
||||||
MEMBER(DiffDelta, status, T_CHAR, "A GIT_DELTA_* constant."),
|
MEMBER(DiffDelta, status, T_UINT, "A GIT_DELTA_* constant."),
|
||||||
MEMBER(DiffDelta, flags, T_UINT, "Combination of GIT_DIFF_FLAG_* flags."),
|
MEMBER(DiffDelta, flags, T_UINT, "Combination of GIT_DIFF_FLAG_* flags."),
|
||||||
MEMBER(DiffDelta, similarity, T_USHORT, "For renamed and copied."),
|
MEMBER(DiffDelta, similarity, T_USHORT, "For renamed and copied."),
|
||||||
MEMBER(DiffDelta, nfiles, T_USHORT, "Number of files in the delta."),
|
MEMBER(DiffDelta, nfiles, T_USHORT, "Number of files in the delta."),
|
||||||
@@ -286,7 +310,7 @@ PyTypeObject DiffDeltaType = {
|
|||||||
0, /* tp_weaklistoffset */
|
0, /* tp_weaklistoffset */
|
||||||
0, /* tp_iter */
|
0, /* tp_iter */
|
||||||
0, /* tp_iternext */
|
0, /* tp_iternext */
|
||||||
0, /* tp_methods */
|
DiffDelta_methods, /* tp_methods */
|
||||||
DiffDelta_members, /* tp_members */
|
DiffDelta_members, /* tp_members */
|
||||||
DiffDelta_getseters, /* tp_getset */
|
DiffDelta_getseters, /* tp_getset */
|
||||||
0, /* tp_base */
|
0, /* tp_base */
|
||||||
|
14
src/pygit2.c
14
src/pygit2.c
@@ -341,11 +341,23 @@ moduleinit(PyObject* m)
|
|||||||
/* --break-rewrites=/M */
|
/* --break-rewrites=/M */
|
||||||
ADD_CONSTANT_INT(m, GIT_DIFF_FIND_AND_BREAK_REWRITES)
|
ADD_CONSTANT_INT(m, GIT_DIFF_FIND_AND_BREAK_REWRITES)
|
||||||
|
|
||||||
/* DiffFile.flags */
|
/* DiffDelta and DiffFile flags */
|
||||||
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_BINARY)
|
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_BINARY)
|
||||||
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_NOT_BINARY)
|
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_NOT_BINARY)
|
||||||
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_VALID_ID)
|
ADD_CONSTANT_INT(m, GIT_DIFF_FLAG_VALID_ID)
|
||||||
|
|
||||||
|
/* DiffDelta.status */
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_UNMODIFIED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_ADDED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_DELETED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_MODIFIED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_RENAMED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_COPIED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_IGNORED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_UNTRACKED)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_TYPECHANGE)
|
||||||
|
ADD_CONSTANT_INT(m, GIT_DELTA_UNREADABLE)
|
||||||
|
|
||||||
/* Config */
|
/* Config */
|
||||||
ADD_CONSTANT_INT(m, GIT_CONFIG_LEVEL_LOCAL);
|
ADD_CONSTANT_INT(m, GIT_CONFIG_LEVEL_LOCAL);
|
||||||
ADD_CONSTANT_INT(m, GIT_CONFIG_LEVEL_GLOBAL);
|
ADD_CONSTANT_INT(m, GIT_CONFIG_LEVEL_GLOBAL);
|
||||||
|
@@ -33,6 +33,7 @@ import unittest
|
|||||||
import pygit2
|
import pygit2
|
||||||
from pygit2 import GIT_DIFF_INCLUDE_UNMODIFIED
|
from pygit2 import GIT_DIFF_INCLUDE_UNMODIFIED
|
||||||
from pygit2 import GIT_DIFF_IGNORE_WHITESPACE, GIT_DIFF_IGNORE_WHITESPACE_EOL
|
from pygit2 import GIT_DIFF_IGNORE_WHITESPACE, GIT_DIFF_IGNORE_WHITESPACE_EOL
|
||||||
|
from pygit2 import GIT_DELTA_RENAMED
|
||||||
from . import utils
|
from . import utils
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
@@ -282,9 +283,11 @@ class DiffTest(utils.BareRepoTestCase):
|
|||||||
#~ --find-copies-harder during rename transformion...
|
#~ --find-copies-harder during rename transformion...
|
||||||
diff = commit_a.tree.diff_to_tree(commit_b.tree,
|
diff = commit_a.tree.diff_to_tree(commit_b.tree,
|
||||||
GIT_DIFF_INCLUDE_UNMODIFIED)
|
GIT_DIFF_INCLUDE_UNMODIFIED)
|
||||||
self.assertAll(lambda x: x.delta.status != 'R', diff)
|
self.assertAll(lambda x: x.delta.status != GIT_DELTA_RENAMED, diff)
|
||||||
|
self.assertAll(lambda x: x.delta.status_char() != 'R', diff)
|
||||||
diff.find_similar()
|
diff.find_similar()
|
||||||
self.assertAny(lambda x: x.delta.status == 'R', diff)
|
self.assertAny(lambda x: x.delta.status == GIT_DELTA_RENAMED, diff)
|
||||||
|
self.assertAny(lambda x: x.delta.status_char() == 'R', diff)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Reference in New Issue
Block a user