Skip to content

Commit 7aa9590

Browse files
committed
doc(changes): describe v2.1.0 changes on API
1 parent fda6bc1 commit 7aa9590

File tree

1 file changed

+55
-14
lines changed

1 file changed

+55
-14
lines changed

doc/source/changes.rst

+55-14
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,83 @@
22
Changelog
33
#########
44

5-
*****
5+
2.1.0
6+
* **BREAKING API:** retrofit streams and (internal) packers as context-managers.
7+
8+
Specifically if you are using directly the packers
9+
(``git.pack.PackIndexFile``, ``git.pack.PackFile`` & ``git.pack.PackEntity``)
10+
they must always be used from within a ``with ..`` block, or else
11+
you will get *mmap-cursor* missing errors.
12+
13+
.. Tip::
14+
15+
You can "enter" `PackIndexFile`` & ``PackFile`` multiple time, but ``PackEntity`` only once
16+
to detect and avoid sloppy deep-nesting.
17+
Since ``git.pack.PackEntity`` class just coalseces ``PackIndexFile`` & ``PackFile``,
18+
you may "enter" either each internal packer separately, or the entity only once.
19+
20+
* **BREAKING API:** some utilities moved between ``git.util``, ``git.const`` & ``git.utils.compat``.
21+
* Fix (probably) all leaks in Windows.
22+
23+
.. Note::
24+
25+
The problem is that on Linux, any open files go unoticed, or collected by GC.
26+
But on *Windows* (and specifically on PY3 where GC is not deterministic),
27+
the underlying files cannot delete due to *access violation*.
28+
29+
That's a Good-thing|copy|, because it is dangerous to *leak* memory-mapped handles.
30+
Actually *Windows* may leak them even after process who created them have died,
31+
needing a full restart(!) to clean them up (signing-out is not enough).
32+
33+
34+
* Stop importing *on runtime* *smmap* submodule - deleted completely submodule from sources.
35+
36+
.. Tip::
37+
38+
Developer now has to specify specific dependency to *smmap* in ``requirements.txt`` file, and
39+
remember to updated it before a final release.
40+
41+
* Run TCs also on Appveyor.
42+
43+
644
0.6.1
7-
*****
45+
=====
846

947
* Fixed possibly critical error, see https://github.com/gitpython-developers/GitPython/issues/220
1048

1149
- However, it only seems to occur on high-entropy data and didn't reoccour after the fix
1250

13-
*****
51+
1452
0.6.0
15-
*****
53+
=====
1654

1755
* Added support got python 3.X
1856
* Removed all `async` dependencies and all `*_async` versions of methods with it.
1957

20-
*****
58+
2159
0.5.4
22-
*****
60+
=====
2361
* Adjusted implementation to use the SlidingMemoryManager by default in python 2.6 for efficiency reasons. In Python 2.4, the StaticMemoryManager will be used instead.
2462

25-
*****
63+
2664
0.5.3
27-
*****
65+
=====
2866
* Added support for smmap. SmartMMap allows resources to be managed and controlled. This brings the implementation closer to the way git handles memory maps, such that unused cached memory maps will automatically be freed once a resource limit is hit. The memory limit on 32 bit systems remains though as a sliding mmap implementation is not used for performance reasons.
2967

30-
*****
68+
3169
0.5.2
32-
*****
70+
=====
3371
* Improved performance of the c implementation, which now uses reverse-delta-aggregation to make a memory bound operation CPU bound.
3472

35-
*****
73+
3674
0.5.1
37-
*****
75+
=====
3876
* Restored most basic python 2.4 compatibility, such that gitdb can be imported within python 2.4, pack access cannot work though. This at least allows Super-Projects to provide their own workarounds, or use everything but pack support.
3977

40-
*****
78+
4179
0.5.0
42-
*****
80+
=====
4381
Initial Release
82+
83+
84+
.. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN

0 commit comments

Comments
 (0)