Every method that takes an oid has changed what it accepts.
Before it was (in both Python 2 and 3):
- An Oid object
- An hex oid, represented as a unicode string
- A raw oid, represented as a bytes string
Now the behaviour is different between Python 2 and 3.
Now in Python 2 we take:
- An Oid object
- An hex oid, represented as a bytes or unicode string
Now in Python 3 we take:
- An Oid object
- An hex oid, represented as a unicode string
We have dropt direct support for raw strings. To use a raw string first
build an Oid object: oid = Oid(raw=raw)
We have also dropt support for short raw oids. The Oid constructor takes
full oids, if passed short oids the behavior is undefined.
Now Repository.head behaves like libgit2's git_repository_head, it
returns the resolved reference. These two lines are equivalent:
ref = repo.head
ref = repo.lookup_reference('HEAD').resolve()
Before it returned a commit.
* fixed several ref counter issues
* us Py_CLEAR through the whole lib
* refactorization
* Config does not need Repository pointer
-> No need for cyclic garbage collecter support
To start a valgrind memory check use the following command:
valgrind -v --leak-check=full --suppressions=misc/valgrind-python.supp python -E -tt ./setup.py test
If your python installation is not compiled with valgrind option, you get as well tons of false-positive leaks
in valgrind. Just check for git_* function the the output. Have in my that circular memory dependencies can
not easily be found with this approach.
To start a valgrind memory check use the following command:
valgrind -v --leak-check=full --suppressions=misc/valgrind-python.supp python -E -tt ./setup.py test
If your python installation is not compiled with valgrind option, you get as well tons of false-positive leaks
in valgrind. Just check for git_* function the the output. Have in my that circular memory dependencies can
not easily be found with this approach.