diff --git a/src/reference.c b/src/reference.c index 52c3618..c48167c 100644 --- a/src/reference.c +++ b/src/reference.c @@ -378,72 +378,6 @@ Reference_log(Reference *self) return (PyObject*)iter; } -PyDoc_STRVAR(Reference_log_append__doc__, - "log_append(oid, committer, message[, encoding])\n" - "\n" - "Append a reflog entry to the reference. If the oid is None then keep\n" - "the current reference's oid. The message parameter may be None."); - -PyObject * -Reference_log_append(Reference *self, PyObject *args) -{ - git_signature *committer; - const char *message = NULL; - git_reflog *reflog; - git_oid oid; - const git_oid *ref_oid; - int err; - PyObject *py_oid = NULL; - Signature *py_committer; - PyObject *py_message = NULL; - char *encoding = NULL; - git_repository *repo; - - CHECK_REFERENCE(self); - - /* Input parameters */ - if (!PyArg_ParseTuple(args, "OO!O|s", &py_oid, - &SignatureType, &py_committer, - &py_message, &encoding)) - return NULL; - - if (py_oid == Py_None) - ref_oid = git_reference_target(self->reference); - else { - err = py_oid_to_git_oid_expand(self->repo->repo, py_oid, &oid); - if (err < 0) - return NULL; - ref_oid = &oid; - } - - if (py_message != Py_None) { - message = py_str_to_c_str(py_message, encoding); - if (message == NULL) - return NULL; - } - - /* Go */ - repo = git_reference_owner(self->reference); - err = git_reflog_read(&reflog, repo, git_reference_name(self->reference)); - if (err < 0) { - free((void *)message); - return NULL; - } - - committer = (git_signature *)py_committer->signature; - err = git_reflog_append(reflog, ref_oid, committer, message); - if (!err) - err = git_reflog_write(reflog); - - git_reflog_free(reflog); - free((void *)message); - - if (err < 0) - return NULL; - - Py_RETURN_NONE; -} - PyDoc_STRVAR(Reference_get_object__doc__, "get_object() -> object\n" "\n" @@ -557,7 +491,6 @@ PyMethodDef Reference_methods[] = { METHOD(Reference, rename, METH_O), METHOD(Reference, resolve, METH_NOARGS), METHOD(Reference, log, METH_NOARGS), - METHOD(Reference, log_append, METH_VARARGS), METHOD(Reference, get_object, METH_NOARGS), METHOD(Reference, set_target, METH_VARARGS | METH_KEYWORDS), {NULL} diff --git a/test/test_reflog.py b/test/test_reflog.py deleted file mode 100644 index 1251c2b..0000000 --- a/test/test_reflog.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: UTF-8 -*- -# -# Copyright 2010-2014 The pygit2 contributors -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License, version 2, -# as published by the Free Software Foundation. -# -# In addition to the permissions in the GNU General Public License, -# the authors give you unlimited permission to link the compiled -# version of this file into combinations with other programs, -# and to distribute those combinations without any restriction -# coming from the use of this file. (The General Public License -# restrictions do apply in other respects; for example, they cover -# modification of the file, and distribution when not linked into -# a combined executable.) -# -# This file is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; see the file COPYING. If not, write to -# the Free Software Foundation, 51 Franklin Street, Fifth Floor, -# Boston, MA 02110-1301, USA. - -"""Tests for reference log.""" - -from __future__ import absolute_import -from __future__ import unicode_literals - -from pygit2 import Signature -from . import utils - - -class ReflogTest(utils.RepoTestCase): - - def test_log_append(self): - repo = self.repo - master = repo.lookup_reference("refs/heads/master") - signature = Signature('xtao', 'xutao@douban.com') - master.log_append(None, signature, 'reflog') - self.assertTrue('reflog' in [entry.message for entry in master.log()])