Preparing for release
This commit is contained in:
51
README.rst
51
README.rst
@@ -79,6 +79,43 @@ Authors
|
|||||||
Changelog
|
Changelog
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
0.20.2 (2014-02-XX)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
- New ``Blob.diff(...)`` and ``Blob.diff_to_buffer(...)``
|
||||||
|
`#307 <https://github.com/libgit2/pygit2/pull/307>`_
|
||||||
|
|
||||||
|
- New ``Repository.default_signature``
|
||||||
|
`#310 <https://github.com/libgit2/pygit2/pull/310>`_
|
||||||
|
|
||||||
|
- New ``Commit.tree_id`` and ``Commit.parent_ids``
|
||||||
|
`#730 <https://github.com/libgit2/pygit2/issues/73>`_
|
||||||
|
|
||||||
|
|
||||||
|
- New rich comparison between tree entries
|
||||||
|
- New ``Config`` iterator replaces ``Config.foreach``
|
||||||
|
- New type ``Refspec``
|
||||||
|
- New ``Remote.push_url``
|
||||||
|
- New ``Remote.add_push`` and ``Remote.add_fetch``
|
||||||
|
- New ``Remote.fetch_refspecs`` replaces ``Remote.get_fetch_refspecs()`` and
|
||||||
|
``Remote.set_fetch_refspecs(...)``
|
||||||
|
- New ``Remote.push_refspecs`` replaces ``Remote.get_push_refspecs()`` and
|
||||||
|
``Remote.set_push_refspecs(...)``
|
||||||
|
- Now *path* in ``Tree`` works
|
||||||
|
- New ``str(Oid)`` deprecates ``Oid.hex``
|
||||||
|
- New ``Object.id`` deprecates ``Object.oid``
|
||||||
|
- New ``TreeEntry.id`` deprecates ``TreeEntry.oid``
|
||||||
|
- New ``Remote.progress``, ``Remote.transfer_progress`` and
|
||||||
|
``Remote.update_tips``
|
||||||
|
- New type ``TransferProgress``
|
||||||
|
- Now possible to create ``IndexEntry(...)``
|
||||||
|
- Now ``IndexEntry.path``, ``IndexEntry.oid`` and ``IndexEntry.mode`` are
|
||||||
|
writable
|
||||||
|
- Now ``Index.add(...)`` accepts an ``IndexEntry`` too
|
||||||
|
- Now ``Index.write_tree(...)`` is able to write to a different repository
|
||||||
|
- Support pypy
|
||||||
|
|
||||||
|
|
||||||
0.20.1 (2013-12-24)
|
0.20.1 (2013-12-24)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
@@ -117,18 +154,10 @@ Changelog
|
|||||||
- Upgrade to libgit2 v0.20.0:
|
- Upgrade to libgit2 v0.20.0:
|
||||||
`#288 <https://github.com/libgit2/pygit2/pull/288>`_
|
`#288 <https://github.com/libgit2/pygit2/pull/288>`_
|
||||||
|
|
||||||
Rename ``Repository.head_is_orphaned`` to ``Repository.head_is_unborn``
|
- New ``Repository.head_is_unborn`` replaces ``Repository.head_is_orphaned``
|
||||||
|
|
||||||
Prototype of ``pygit2.clone_repository(...)`` changed::
|
- Changed ``pygit2.clone_repository(...)``. Drop ``push_url``, ``fetch_spec``
|
||||||
|
and ``push_spec`` parameters. Add ``ignore_cert_errors``.
|
||||||
# Before
|
|
||||||
pygit2.clone_repository(url, path, bare=False, remote_name='origin',
|
|
||||||
push_url=None, fetch_spec=None, push_spec=None,
|
|
||||||
checkout_branch=None)
|
|
||||||
|
|
||||||
# Now
|
|
||||||
pygit2.clone_repository(url, path, bare=False, ignore_cert_errors=False,
|
|
||||||
remote_name='origin', checkout_branch=None)
|
|
||||||
|
|
||||||
- New ``Patch.additions`` and ``Patch.deletions``:
|
- New ``Patch.additions`` and ``Patch.deletions``:
|
||||||
`#275 <https://github.com/libgit2/pygit2/pull/275>`_
|
`#275 <https://github.com/libgit2/pygit2/pull/275>`_
|
||||||
|
@@ -14,13 +14,12 @@ The Config type
|
|||||||
.. automethod:: pygit2.Config.get_multivar
|
.. automethod:: pygit2.Config.get_multivar
|
||||||
.. automethod:: pygit2.Config.set_multivar
|
.. automethod:: pygit2.Config.set_multivar
|
||||||
|
|
||||||
|
.. method:: for (name, value) in Config
|
||||||
|
|
||||||
|
The :class:`Config` class has an iterator which can be used to loop
|
||||||
|
through all the entries in the configuration. Each element is a tuple
|
||||||
|
containing the name and the value of each configuration variable. Be
|
||||||
|
aware that this may return multiple versions of each entry if they are
|
||||||
|
set multiple times in the configuration files.
|
||||||
|
|
||||||
The :class:`Config` Mapping interface.
|
The :class:`Config` Mapping interface.
|
||||||
|
|
||||||
Iterator
|
|
||||||
=========
|
|
||||||
|
|
||||||
The :class:`Config` class has an iterator which can be used to loop
|
|
||||||
through all the entries in the configuration. Each element is a tuple
|
|
||||||
containing the name and the value of each configuration variable. Be
|
|
||||||
aware that this may return multiple versions of each entry if they are
|
|
||||||
set multiple times in the configuration files.
|
|
||||||
|
@@ -79,8 +79,6 @@ New objects are created using an specific API we will see later.
|
|||||||
This is the common interface for all Git objects:
|
This is the common interface for all Git objects:
|
||||||
|
|
||||||
.. autoattribute:: pygit2.Object.id
|
.. autoattribute:: pygit2.Object.id
|
||||||
.. autoattribute:: pygit2.Object.oid
|
|
||||||
.. autoattribute:: pygit2.Object.hex
|
|
||||||
.. autoattribute:: pygit2.Object.type
|
.. autoattribute:: pygit2.Object.type
|
||||||
.. automethod:: pygit2.Object.read_raw
|
.. automethod:: pygit2.Object.read_raw
|
||||||
|
|
||||||
@@ -112,6 +110,9 @@ This is their API:
|
|||||||
|
|
||||||
.. autoattribute:: pygit2.Blob.is_binary
|
.. autoattribute:: pygit2.Blob.is_binary
|
||||||
|
|
||||||
|
.. automethod:: pygit2.Blob.diff
|
||||||
|
.. automethod:: pygit2.Blob.diff_to_buffer
|
||||||
|
|
||||||
|
|
||||||
Creating blobs
|
Creating blobs
|
||||||
--------------
|
--------------
|
||||||
@@ -172,11 +173,12 @@ Tree entries
|
|||||||
|
|
||||||
.. autoattribute:: pygit2.TreeEntry.name
|
.. autoattribute:: pygit2.TreeEntry.name
|
||||||
.. autoattribute:: pygit2.TreeEntry.id
|
.. autoattribute:: pygit2.TreeEntry.id
|
||||||
.. autoattribute:: pygit2.TreeEntry.oid
|
|
||||||
.. autoattribute:: pygit2.TreeEntry.hex
|
.. autoattribute:: pygit2.TreeEntry.hex
|
||||||
.. autoattribute:: pygit2.TreeEntry.filemode
|
.. autoattribute:: pygit2.TreeEntry.filemode
|
||||||
|
|
||||||
:class:`TreeEntry` supports comparison against other tree entries.
|
.. method:: cmp(TreeEntry, TreeEntry)
|
||||||
|
|
||||||
|
Rich comparison between tree entries.
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
|
@@ -65,7 +65,7 @@ And the other way around, from an Oid object we can get the hexadecimal and raw
|
|||||||
forms. You can use the built-in `str()` (or `unicode()` in python 2) to get the
|
forms. You can use the built-in `str()` (or `unicode()` in python 2) to get the
|
||||||
hexadecimal representation of the Oid.
|
hexadecimal representation of the Oid.
|
||||||
|
|
||||||
.. autoattribute:: pygit2.Oid.hex
|
.. automethod:: str(pygit2.Oid)
|
||||||
.. autoattribute:: pygit2.Oid.raw
|
.. autoattribute:: pygit2.Oid.raw
|
||||||
|
|
||||||
The Oid type supports:
|
The Oid type supports:
|
||||||
|
@@ -19,14 +19,12 @@ The Remote type
|
|||||||
.. autoattribute:: pygit2.Remote.progress
|
.. autoattribute:: pygit2.Remote.progress
|
||||||
.. autoattribute:: pygit2.Remote.transfer_progress
|
.. autoattribute:: pygit2.Remote.transfer_progress
|
||||||
.. autoattribute:: pygit2.Remote.update_tips
|
.. autoattribute:: pygit2.Remote.update_tips
|
||||||
.. automethod:: pygit2.Remote.get_push_refspecs
|
|
||||||
.. automethod:: pygit2.Remote.get_fetch_refspecs
|
|
||||||
.. automethod:: pygit2.Remote.set_push_refspecs
|
|
||||||
.. automethod:: pygit2.Remote.set_fetch_refspecs
|
|
||||||
.. automethod:: pygit2.Remote.get_refspec
|
.. automethod:: pygit2.Remote.get_refspec
|
||||||
.. automethod:: pygit2.Remote.fetch
|
.. automethod:: pygit2.Remote.fetch
|
||||||
.. automethod:: pygit2.Remote.push
|
.. automethod:: pygit2.Remote.push
|
||||||
.. automethod:: pygit2.Remote.save
|
.. automethod:: pygit2.Remote.save
|
||||||
|
.. automethod:: pygit2.Remote.add_push
|
||||||
|
.. automethod:: pygit2.Remote.add_fetch
|
||||||
|
|
||||||
The TransferProgress type
|
The TransferProgress type
|
||||||
===========================
|
===========================
|
||||||
|
69
src/remote.c
69
src/remote.c
@@ -43,9 +43,9 @@ extern PyTypeObject TransferProgressType;
|
|||||||
Refspec *
|
Refspec *
|
||||||
wrap_refspec(const Remote *owner, const git_refspec *refspec)
|
wrap_refspec(const Remote *owner, const git_refspec *refspec)
|
||||||
{
|
{
|
||||||
Refspec *spec;
|
Refspec *spec;
|
||||||
|
|
||||||
spec = PyObject_New(Refspec, &RefspecType);
|
spec = PyObject_New(Refspec, &RefspecType);
|
||||||
if (!spec)
|
if (!spec)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@@ -258,7 +258,7 @@ PyDoc_STRVAR(Refspec__doc__, "Refspec object.");
|
|||||||
PyTypeObject RefspecType = {
|
PyTypeObject RefspecType = {
|
||||||
PyVarObject_HEAD_INIT(NULL, 0)
|
PyVarObject_HEAD_INIT(NULL, 0)
|
||||||
"_pygit2.Refspec", /* tp_name */
|
"_pygit2.Refspec", /* tp_name */
|
||||||
sizeof(Refspec), /* tp_basicsize */
|
sizeof(Refspec), /* tp_basicsize */
|
||||||
0, /* tp_itemsize */
|
0, /* tp_itemsize */
|
||||||
(destructor)Refspec_dealloc, /* tp_dealloc */
|
(destructor)Refspec_dealloc, /* tp_dealloc */
|
||||||
0, /* tp_print */
|
0, /* tp_print */
|
||||||
@@ -331,7 +331,7 @@ PyMemberDef TransferProgress_members[] = {
|
|||||||
RMEMBER(TransferProgress, indexed_deltas, T_UINT, "Deltas which have been indexed"),
|
RMEMBER(TransferProgress, indexed_deltas, T_UINT, "Deltas which have been indexed"),
|
||||||
/* FIXME: technically this is unsigned, but there's no value for size_t here. */
|
/* FIXME: technically this is unsigned, but there's no value for size_t here. */
|
||||||
RMEMBER(TransferProgress, received_bytes, T_PYSSIZET, "Number of bytes received up to now"),
|
RMEMBER(TransferProgress, received_bytes, T_PYSSIZET, "Number of bytes received up to now"),
|
||||||
{NULL},
|
{NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
PyDoc_STRVAR(TransferProgress__doc__, "Progress downloading and indexing data during a fetch");
|
PyDoc_STRVAR(TransferProgress__doc__, "Progress downloading and indexing data during a fetch");
|
||||||
@@ -639,59 +639,6 @@ Remote_push_refspecs__set__(Remote *self, PyObject *py_list)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_get_fetch_refspecs__doc__,
|
|
||||||
"Fetch refspecs.\n"
|
|
||||||
"This function is deprecated, please use the fetch_refspecs attribute"
|
|
||||||
"\n");
|
|
||||||
|
|
||||||
|
|
||||||
PyObject *
|
|
||||||
Remote_get_fetch_refspecs(Remote *self)
|
|
||||||
{
|
|
||||||
return Remote_fetch_refspecs__get__(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_get_push_refspecs__doc__, "Push refspecs");
|
|
||||||
|
|
||||||
|
|
||||||
PyObject *
|
|
||||||
Remote_get_push_refspecs(Remote *self)
|
|
||||||
{
|
|
||||||
return Remote_push_refspecs__get__(self);
|
|
||||||
}
|
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_set_fetch_refspecs__doc__,
|
|
||||||
"set_fetch_refspecs([str])\n"
|
|
||||||
"This function is deprecated, please use the push_refspecs attribute"
|
|
||||||
"\n");
|
|
||||||
|
|
||||||
|
|
||||||
PyObject *
|
|
||||||
Remote_set_fetch_refspecs(Remote *self, PyObject *args)
|
|
||||||
{
|
|
||||||
if (Remote_fetch_refspecs__set__(self, args) < 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_set_push_refspecs__doc__,
|
|
||||||
"set_push_refspecs([str])\n"
|
|
||||||
"This function is deprecated, please use the push_refspecs attribute"
|
|
||||||
"\n");
|
|
||||||
|
|
||||||
|
|
||||||
PyObject *
|
|
||||||
Remote_set_push_refspecs(Remote *self, PyObject *args)
|
|
||||||
{
|
|
||||||
if (Remote_push_refspecs__set__(self, args) < 0)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
Py_RETURN_NONE;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
PyDoc_STRVAR(Remote_url__doc__, "Url of the remote");
|
PyDoc_STRVAR(Remote_url__doc__, "Url of the remote");
|
||||||
|
|
||||||
@@ -699,7 +646,7 @@ PyDoc_STRVAR(Remote_url__doc__, "Url of the remote");
|
|||||||
PyObject *
|
PyObject *
|
||||||
Remote_url__get__(Remote *self)
|
Remote_url__get__(Remote *self)
|
||||||
{
|
{
|
||||||
const char *url;
|
const char *url;
|
||||||
|
|
||||||
url = git_remote_url(self->remote);
|
url = git_remote_url(self->remote);
|
||||||
if (!url)
|
if (!url)
|
||||||
@@ -735,7 +682,7 @@ PyDoc_STRVAR(Remote_push_url__doc__, "Push url of the remote");
|
|||||||
PyObject *
|
PyObject *
|
||||||
Remote_push_url__get__(Remote *self)
|
Remote_push_url__get__(Remote *self)
|
||||||
{
|
{
|
||||||
const char *url;
|
const char *url;
|
||||||
|
|
||||||
url = git_remote_pushurl(self->remote);
|
url = git_remote_pushurl(self->remote);
|
||||||
if (!url)
|
if (!url)
|
||||||
@@ -976,10 +923,6 @@ PyMethodDef Remote_methods[] = {
|
|||||||
METHOD(Remote, push, METH_VARARGS),
|
METHOD(Remote, push, METH_VARARGS),
|
||||||
METHOD(Remote, add_push, METH_VARARGS),
|
METHOD(Remote, add_push, METH_VARARGS),
|
||||||
METHOD(Remote, add_fetch, METH_VARARGS),
|
METHOD(Remote, add_fetch, METH_VARARGS),
|
||||||
METHOD(Remote, get_fetch_refspecs, METH_NOARGS),
|
|
||||||
METHOD(Remote, set_fetch_refspecs, METH_O),
|
|
||||||
METHOD(Remote, get_push_refspecs, METH_NOARGS),
|
|
||||||
METHOD(Remote, set_push_refspecs, METH_O),
|
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -201,9 +201,11 @@ Tree_len(Tree *self)
|
|||||||
int
|
int
|
||||||
Tree_contains(Tree *self, PyObject *py_name)
|
Tree_contains(Tree *self, PyObject *py_name)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
git_tree_entry *entry;
|
git_tree_entry *entry;
|
||||||
char *name = py_path_to_c_str(py_name);
|
char *name;
|
||||||
|
|
||||||
|
name = py_path_to_c_str(py_name);
|
||||||
if (name == NULL)
|
if (name == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@@ -92,53 +92,49 @@ class RepositoryTest(utils.RepoTestCase):
|
|||||||
self.assertEqual(True, refspec.force)
|
self.assertEqual(True, refspec.force)
|
||||||
self.assertEqual(ORIGIN_REFSPEC, refspec.string)
|
self.assertEqual(ORIGIN_REFSPEC, refspec.string)
|
||||||
|
|
||||||
self.assertEqual(list, type(remote.get_fetch_refspecs()))
|
self.assertEqual(list, type(remote.fetch_refspecs))
|
||||||
self.assertEqual(1, len(remote.get_fetch_refspecs()))
|
self.assertEqual(1, len(remote.fetch_refspecs))
|
||||||
self.assertEqual(ORIGIN_REFSPEC, remote.get_fetch_refspecs()[0])
|
self.assertEqual(ORIGIN_REFSPEC, remote.fetch_refspecs[0])
|
||||||
|
|
||||||
self.assertTrue(refspec.src_matches('refs/heads/master'))
|
self.assertTrue(refspec.src_matches('refs/heads/master'))
|
||||||
self.assertTrue(refspec.dst_matches('refs/remotes/origin/master'))
|
self.assertTrue(refspec.dst_matches('refs/remotes/origin/master'))
|
||||||
self.assertEqual('refs/remotes/origin/master', refspec.transform('refs/heads/master'))
|
self.assertEqual('refs/remotes/origin/master', refspec.transform('refs/heads/master'))
|
||||||
self.assertEqual('refs/heads/master', refspec.rtransform('refs/remotes/origin/master'))
|
self.assertEqual('refs/heads/master', refspec.rtransform('refs/remotes/origin/master'))
|
||||||
|
|
||||||
self.assertEqual(list, type(remote.get_push_refspecs()))
|
self.assertEqual(list, type(remote.push_refspecs))
|
||||||
self.assertEqual(0, len(remote.get_push_refspecs()))
|
self.assertEqual(0, len(remote.push_refspecs))
|
||||||
|
|
||||||
push_specs = remote.push_refspecs
|
push_specs = remote.push_refspecs
|
||||||
self.assertEqual(list, type(push_specs))
|
self.assertEqual(list, type(push_specs))
|
||||||
self.assertEqual(0, len(push_specs))
|
self.assertEqual(0, len(push_specs))
|
||||||
|
|
||||||
remote.set_fetch_refspecs(['+refs/*:refs/remotes/*'])
|
remote.fetch_refspecs = ['+refs/*:refs/remotes/*']
|
||||||
self.assertEqual('+refs/*:refs/remotes/*',
|
self.assertEqual('+refs/*:refs/remotes/*', remote.fetch_refspecs[0])
|
||||||
remote.get_fetch_refspecs()[0])
|
|
||||||
|
|
||||||
fetch_specs = remote.fetch_refspecs
|
fetch_specs = remote.fetch_refspecs
|
||||||
self.assertEqual(list, type(fetch_specs))
|
self.assertEqual(list, type(fetch_specs))
|
||||||
self.assertEqual(1, len(fetch_specs))
|
self.assertEqual(1, len(fetch_specs))
|
||||||
self.assertEqual('+refs/*:refs/remotes/*', fetch_specs[0])
|
self.assertEqual('+refs/*:refs/remotes/*', fetch_specs[0])
|
||||||
|
|
||||||
remote.set_fetch_refspecs([
|
remote.fetch_refspecs = ['+refs/*:refs/remotes/*',
|
||||||
'+refs/*:refs/remotes/*',
|
'+refs/test/*:refs/test/remotes/*']
|
||||||
'+refs/test/*:refs/test/remotes/*'
|
self.assertEqual('+refs/*:refs/remotes/*', remote.fetch_refspecs[0])
|
||||||
])
|
|
||||||
self.assertEqual('+refs/*:refs/remotes/*',
|
|
||||||
remote.get_fetch_refspecs()[0])
|
|
||||||
self.assertEqual('+refs/test/*:refs/test/remotes/*',
|
self.assertEqual('+refs/test/*:refs/test/remotes/*',
|
||||||
remote.get_fetch_refspecs()[1])
|
remote.fetch_refspecs[1])
|
||||||
|
|
||||||
remote.set_push_refspecs([
|
remote.push_refspecs = ['+refs/*:refs/remotes/*',
|
||||||
'+refs/*:refs/remotes/*',
|
'+refs/test/*:refs/test/remotes/*']
|
||||||
'+refs/test/*:refs/test/remotes/*'
|
|
||||||
])
|
|
||||||
|
|
||||||
self.assertRaises(TypeError, setattr, remote, 'push_refspecs', '+refs/*:refs/*')
|
self.assertRaises(TypeError, setattr, remote, 'push_refspecs',
|
||||||
self.assertRaises(TypeError, setattr, remote, 'fetch_refspecs', '+refs/*:refs/*')
|
'+refs/*:refs/*')
|
||||||
self.assertRaises(TypeError, setattr, remote, 'fetch_refspecs', ['+refs/*:refs/*', 5])
|
self.assertRaises(TypeError, setattr, remote, 'fetch_refspecs',
|
||||||
|
'+refs/*:refs/*')
|
||||||
|
self.assertRaises(TypeError, setattr, remote, 'fetch_refspecs',
|
||||||
|
['+refs/*:refs/*', 5])
|
||||||
|
|
||||||
self.assertEqual('+refs/*:refs/remotes/*',
|
self.assertEqual('+refs/*:refs/remotes/*', remote.push_refspecs[0])
|
||||||
remote.get_push_refspecs()[0])
|
|
||||||
self.assertEqual('+refs/test/*:refs/test/remotes/*',
|
self.assertEqual('+refs/test/*:refs/test/remotes/*',
|
||||||
remote.get_push_refspecs()[1])
|
remote.push_refspecs[1])
|
||||||
|
|
||||||
|
|
||||||
def test_remote_list(self):
|
def test_remote_list(self):
|
||||||
@@ -169,10 +165,10 @@ class RepositoryTest(utils.RepoTestCase):
|
|||||||
remote = self.repo.create_remote('test_add_refspec', REMOTE_URL)
|
remote = self.repo.create_remote('test_add_refspec', REMOTE_URL)
|
||||||
remote.add_push('refs/heads/*:refs/heads/test_refspec/*')
|
remote.add_push('refs/heads/*:refs/heads/test_refspec/*')
|
||||||
self.assertEqual('refs/heads/*:refs/heads/test_refspec/*',
|
self.assertEqual('refs/heads/*:refs/heads/test_refspec/*',
|
||||||
remote.get_push_refspecs()[0])
|
remote.push_refspecs[0])
|
||||||
remote.add_fetch('+refs/heads/*:refs/remotes/test_refspec/*')
|
remote.add_fetch('+refs/heads/*:refs/remotes/test_refspec/*')
|
||||||
self.assertEqual('+refs/heads/*:refs/remotes/test_refspec/*',
|
self.assertEqual('+refs/heads/*:refs/remotes/test_refspec/*',
|
||||||
remote.get_fetch_refspecs()[1])
|
remote.fetch_refspecs[1])
|
||||||
|
|
||||||
def test_remote_callback_typecheck(self):
|
def test_remote_callback_typecheck(self):
|
||||||
remote = self.repo.remotes[0]
|
remote = self.repo.remotes[0]
|
||||||
|
Reference in New Issue
Block a user