Skip to content

Commit 9d6310d

Browse files
committed
docs: added final docs for version 0.3.0, started new release 0.3.1
1 parent 685760a commit 9d6310d

30 files changed

+9430
-1
lines changed

doc/doc_index/0.3.0/.buildinfo

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Sphinx build info version 1
2+
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3+
config: 10f1f71f88276addc378308055759e24
4+
tags: fbb0d17656682115ca4d033fb2f83ba1
+373
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,373 @@
1+
=========
2+
Changelog
3+
=========
4+
5+
0.3.0 Beta 3
6+
============
7+
* Added unicode support for author names. Commit.author.name is now unicode instead of string.
8+
9+
0.3.0 Beta 2
10+
============
11+
* Added python 2.4 support
12+
13+
0.3.0 Beta 1
14+
============
15+
Renamed Modules
16+
---------------
17+
* For consistency with naming conventions used in sub-modules like gitdb, the following modules have been renamed
18+
19+
* git.utils -> git.util
20+
* git.errors -> git.exc
21+
* git.objects.utils -> git.objects.util
22+
23+
General
24+
-------
25+
* Object instances, and everything derived from it, now use binary sha's internally. The 'sha' member was removed, in favor of the 'binsha' member. An 'hexsha' property is available for convenient conversions. They may only be initialized using their binary shas, reference names or revision specs are not allowed anymore.
26+
* IndexEntry instances contained in IndexFile.entries now use binary sha's. Use the .hexsha property to obtain the hexadecimal version. The .sha property was removed to make the use of the respective sha more explicit.
27+
* If objects are instantiated explicitly, a binary sha is required to identify the object, where previously any rev-spec could be used. The ref-spec compatible version still exists as Object.new or Repo.commit|Repo.tree respectively.
28+
* The .data attribute was removed from the Object type, to obtain plain data, use the data_stream property instead.
29+
* ConcurrentWriteOperation was removed, and replaced by LockedFD
30+
* IndexFile.get_entries_key was renamed to entry_key
31+
* IndexFile.write_tree: removed missing_ok keyword, its always True now. Instead of raising GitCommandError it raises UnmergedEntriesError. This is required as the pure-python implementation doesn't support the missing_ok keyword yet.
32+
* diff.Diff.null_hex_sha renamed to NULL_HEX_SHA, to be conforming with the naming in the Object base class
33+
34+
35+
0.2 Beta 2
36+
===========
37+
* Commit objects now carry the 'encoding' information of their message. It wasn't parsed previously, and defaults to UTF-8
38+
* Commit.create_from_tree now uses a pure-python implementation, mimicing git-commit-tree
39+
40+
0.2
41+
=====
42+
General
43+
-------
44+
* file mode in Tree, Blob and Diff objects now is an int compatible to definintiions
45+
in the stat module, allowing you to query whether individual user, group and other
46+
read, write and execute bits are set.
47+
* Adjusted class hierarchy to generally allow comparison and hash for Objects and Refs
48+
* Improved Tag object which now is a Ref that may contain a tag object with additional
49+
Information
50+
* id_abbrev method has been removed as it could not assure the returned short SHA's
51+
where unique
52+
* removed basename method from Objects with path's as it replicated features of os.path
53+
* from_string and list_from_string methods are now private and were renamed to
54+
_from_string and _list_from_string respectively. As part of the private API, they
55+
may change without prior notice.
56+
* Renamed all find_all methods to list_items - this method is part of the Iterable interface
57+
that also provides a more efficients and more responsive iter_items method
58+
* All dates, like authored_date and committer_date, are stored as seconds since epoc
59+
to consume less memory - they can be converted using time.gmtime in a more suitable
60+
presentation format if needed.
61+
* Named method parameters changed on a wide scale to unify their use. Now git specific
62+
terms are used everywhere, such as "Reference" ( ref ) and "Revision" ( rev ).
63+
Prevously multiple terms where used making it harder to know which type was allowed
64+
or not.
65+
* Unified diff interface to allow easy diffing between trees, trees and index, trees
66+
and working tree, index and working tree, trees and index. This closely follows
67+
the git-diff capabilities.
68+
* Git.execute does not take the with_raw_output option anymore. It was not used
69+
by anyone within the project and False by default.
70+
71+
72+
Item Iteration
73+
--------------
74+
* Previously one would return and process multiple items as list only which can
75+
hurt performance and memory consumption and reduce response times.
76+
iter_items method provide an iterator that will return items on demand as parsed
77+
from a stream. This way any amount of objects can be handled.
78+
* list_items method returns IterableList allowing to access list members by name
79+
80+
objects Package
81+
----------------
82+
* blob, tree, tag and commit module have been moved to new objects package. This should
83+
not affect you though unless you explicitly imported individual objects. If you just
84+
used the git package, names did not change.
85+
86+
Blob
87+
----
88+
* former 'name' member renamed to path as it suits the actual data better
89+
90+
GitCommand
91+
-----------
92+
* git.subcommand call scheme now prunes out None from the argument list, allowing
93+
to be called more confortably as None can never be a valid to the git command
94+
if converted to a string.
95+
* Renamed 'git_dir' attribute to 'working_dir' which is exactly how it is used
96+
97+
Commit
98+
------
99+
* 'count' method is not an instance method to increase its ease of use
100+
* 'name_rev' property returns a nice name for the commit's sha
101+
102+
Config
103+
------
104+
* The git configuration can now be read and manipulated directly from within python
105+
using the GitConfigParser
106+
* Repo.config_reader() returns a read-only parser
107+
* Repo.config_writer() returns a read-write parser
108+
109+
Diff
110+
----
111+
* Members a a_commit and b_commit renamed to a_blob and b_blob - they are populated
112+
with Blob objects if possible
113+
* Members a_path and b_path removed as this information is kept in the blobs
114+
* Diffs are now returned as DiffIndex allowing to more quickly find the kind of
115+
diffs you are interested in
116+
117+
Diffing
118+
-------
119+
* Commit and Tree objects now support diffing natively with a common interface to
120+
compare agains other Commits or Trees, against the working tree or against the index.
121+
122+
Index
123+
-----
124+
* A new Index class allows to read and write index files directly, and to perform
125+
simple two and three way merges based on an arbitrary index.
126+
127+
Referernces
128+
------------
129+
* References are object that point to a Commit
130+
* SymbolicReference are a pointer to a Reference Object, which itself points to a specific
131+
Commit
132+
* They will dynmically retrieve their object at the time of query to assure the information
133+
is actual. Recently objects would be cached, hence ref object not be safely kept
134+
persistent.
135+
136+
Repo
137+
----
138+
* Moved blame method from Blob to repo as it appeared to belong there much more.
139+
* active_branch method now returns a Head object instead of a string with the name
140+
of the active branch.
141+
* tree method now requires a Ref instance as input and defaults to the active_branche
142+
instead of master
143+
* is_dirty now takes additional arguments allowing fine-grained control about what is
144+
considered dirty
145+
* Removed the following methods:
146+
147+
- 'log' method as it as effectively the same as the 'commits' method
148+
- 'commits_since' as it is just a flag given to rev-list in Commit.iter_items
149+
- 'commit_count' as it was just a redirection to the respective commit method
150+
- 'commits_between', replaced by a note on the iter_commits method as it can achieve the same thing
151+
- 'commit_delta_from' as it was a very special case by comparing two different repjrelated repositories, i.e. clones, git-rev-list would be sufficient to find commits that would need to be transferred for example.
152+
- 'create' method which equals the 'init' method's functionality
153+
- 'diff' - it returned a mere string which still had to be parsed
154+
- 'commit_diff' - moved to Commit, Tree and Diff types respectively
155+
156+
* Renamed the following methods:
157+
158+
- commits to iter_commits to improve the performance, adjusted signature
159+
- init_bare to init, implying less about the options to be used
160+
- fork_bare to clone, as it was to represent general clone functionality, but implied
161+
a bare clone to be more versatile
162+
- archive_tar_gz and archive_tar and replaced by archive method with different signature
163+
164+
* 'commits' method has no max-count of returned commits anymore, it now behaves like git-rev-list
165+
* The following methods and properties were added
166+
167+
- 'untracked_files' property, returning all currently untracked files
168+
- 'head', creates a head object
169+
- 'tag', creates a tag object
170+
- 'iter_trees' method
171+
- 'config_reader' method
172+
- 'config_writer' method
173+
- 'bare' property, previously it was a simple attribute that could be written
174+
175+
* Renamed the following attributes
176+
177+
- 'path' is now 'git_dir'
178+
- 'wd' is now 'working_dir'
179+
180+
* Added attribute
181+
182+
- 'working_tree_dir' which may be None in case of bare repositories
183+
184+
Remote
185+
------
186+
* Added Remote object allowing easy access to remotes
187+
* Repo.remotes lists all remotes
188+
* Repo.remote returns a remote of the specified name if it exists
189+
190+
Test Framework
191+
--------------
192+
* Added support for common TestCase base class that provides additional functionality
193+
to receive repositories tests can also write to. This way, more aspects can be
194+
tested under real-world ( un-mocked ) conditions.
195+
196+
Tree
197+
----
198+
* former 'name' member renamed to path as it suits the actual data better
199+
* added traverse method allowing to recursively traverse tree items
200+
* deleted blob method
201+
* added blobs and trees properties allowing to query the respective items in the
202+
tree
203+
* now mimics behaviour of a read-only list instead of a dict to maintain order.
204+
* content_from_string method is now private and not part of the public API anymore
205+
206+
207+
0.1.6
208+
=====
209+
210+
General
211+
-------
212+
* Added in Sphinx documentation.
213+
214+
* Removed ambiguity between paths and treeishs. When calling commands that
215+
accept treeish and path arguments and there is a path with the same name as
216+
a treeish git cowardly refuses to pick one and asks for the command to use
217+
the unambiguous syntax where '--' seperates the treeish from the paths.
218+
219+
* ``Repo.commits``, ``Repo.commits_between``, ``Reop.commits_since``,
220+
``Repo.commit_count``, ``Repo.commit``, ``Commit.count`` and
221+
``Commit.find_all`` all now optionally take a path argument which
222+
constrains the lookup by path. This changes the order of the positional
223+
arguments in ``Repo.commits`` and ``Repo.commits_since``.
224+
225+
Commit
226+
------
227+
* ``Commit.message`` now contains the full commit message (rather than just
228+
the first line) and a new property ``Commit.summary`` contains the first
229+
line of the commit message.
230+
231+
* Fixed a failure when trying to lookup the stats of a parentless commit from
232+
a bare repo.
233+
234+
Diff
235+
----
236+
* The diff parser is now far faster and also addresses a bug where
237+
sometimes b_mode was not set.
238+
239+
* Added support for parsing rename info to the diff parser. Addition of new
240+
properties ``Diff.renamed``, ``Diff.rename_from``, and ``Diff.rename_to``.
241+
242+
Head
243+
----
244+
* Corrected problem where branches was only returning the last path component
245+
instead of the entire path component following refs/heads/.
246+
247+
Repo
248+
----
249+
* Modified the gzip archive creation to use the python gzip module.
250+
251+
* Corrected ``commits_between`` always returning None instead of the reversed
252+
list.
253+
254+
255+
0.1.5
256+
=====
257+
258+
General
259+
-------
260+
* upgraded to Mock 0.4 dependency.
261+
262+
* Replace GitPython with git in repr() outputs.
263+
264+
* Fixed packaging issue caused by ez_setup.py.
265+
266+
Blob
267+
----
268+
* No longer strip newlines from Blob data.
269+
270+
Commit
271+
------
272+
* Corrected problem with git-rev-list --bisect-all. See
273+
http://groups.google.com/group/git-python/browse_thread/thread/aed1d5c4b31d5027
274+
275+
Repo
276+
----
277+
* Corrected problems with creating bare repositories.
278+
279+
* Repo.tree no longer accepts a path argument. Use:
280+
281+
>>> dict(k, o for k, o in tree.items() if k in paths)
282+
283+
* Made daemon export a property of Repo. Now you can do this:
284+
285+
>>> exported = repo.daemon_export
286+
>>> repo.daemon_export = True
287+
288+
* Allows modifying the project description. Do this:
289+
290+
>>> repo.description = "Foo Bar"
291+
>>> repo.description
292+
'Foo Bar'
293+
294+
* Added a read-only property Repo.is_dirty which reflects the status of the
295+
working directory.
296+
297+
* Added a read-only Repo.active_branch property which returns the name of the
298+
currently active branch.
299+
300+
301+
Tree
302+
----
303+
* Switched to using a dictionary for Tree contents since you will usually want
304+
to access them by name and order is unimportant.
305+
306+
* Implemented a dictionary protocol for Tree objects. The following:
307+
308+
child = tree.contents['grit']
309+
310+
becomes:
311+
312+
child = tree['grit']
313+
314+
* Made Tree.content_from_string a static method.
315+
316+
0.1.4.1
317+
=======
318+
319+
* removed ``method_missing`` stuff and replaced with a ``__getattr__``
320+
override in ``Git``.
321+
322+
0.1.4
323+
=====
324+
325+
* renamed ``git_python`` to ``git``. Be sure to delete all pyc files before
326+
testing.
327+
328+
Commit
329+
------
330+
* Fixed problem with commit stats not working under all conditions.
331+
332+
Git
333+
---
334+
* Renamed module to cmd.
335+
336+
* Removed shell escaping completely.
337+
338+
* Added support for ``stderr``, ``stdin``, and ``with_status``.
339+
340+
* ``git_dir`` is now optional in the constructor for ``git.Git``. Git now
341+
falls back to ``os.getcwd()`` when git_dir is not specified.
342+
343+
* add a ``with_exceptions`` keyword argument to git commands.
344+
``GitCommandError`` is raised when the exit status is non-zero.
345+
346+
* add support for a ``GIT_PYTHON_TRACE`` environment variable.
347+
``GIT_PYTHON_TRACE`` allows us to debug GitPython's usage of git through
348+
the use of an environment variable.
349+
350+
Tree
351+
----
352+
* Fixed up problem where ``name`` doesn't exist on root of tree.
353+
354+
Repo
355+
----
356+
* Corrected problem with creating bare repo. Added ``Repo.create`` alias.
357+
358+
0.1.2
359+
=====
360+
361+
Tree
362+
----
363+
* Corrected problem with ``Tree.__div__`` not working with zero length files.
364+
Removed ``__len__`` override and replaced with size instead. Also made size
365+
cach properly. This is a breaking change.
366+
367+
0.1.1
368+
=====
369+
Fixed up some urls because I'm a moron
370+
371+
0.1.0
372+
=====
373+
initial release

0 commit comments

Comments
 (0)