aboutsummaryrefslogtreecommitdiff
path: root/CHANGES
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2009-10-15 10:04:17 +0200
committerSebastian Thiel <byronimo@gmail.com>2009-10-15 10:04:17 +0200
commit6226720b0e6a5f7cb9223fc50363def487831315 (patch)
tree10f70f8e41c91f5bf57f04b616f3e5afdb9f8407 /CHANGES
parentb0e84a3401c84507dc017d6e4f57a9dfdb31de53 (diff)
parent4186a2dbbd48fd67ff88075c63bbd3e6c1d8a2df (diff)
downloadGitPython-6226720b0e6a5f7cb9223fc50363def487831315.tar.gz
GitPython-6226720b0e6a5f7cb9223fc50363def487831315.zip
Initial set of improvementes merged into master, including a class hierarchy redesign and performance improvements
Merge commit 'origin/improvements' * commit 'origin/improvements': (38 commits) test_performance: module containing benchmarks to get an idea of the achieved throughput Removed plenty of mocked tree tests as they cannot work anymore with persistent commands that require stdin AND binary data - not even an adapter would help here. These tests will have to be replaced. tree: now reads tress directly by parsing the binary data, allowing it to safe possibly hundreds of command calls Refs are now truly dynamic - this costs a little bit of (persistent command) work, but assures refs behave as expected persistent command signature changed to also return the hexsha from a possible input ref - the objects pointed to by refs are now baked on demand - perhaps it should change to always be re-retrieved using a property as it is relatively fast - this way refs can always be cached test_blob: removed many redundant tests that would fail now as the mock cannot handle the complexity of the command backend Implemented git command facility to keep persistent commands for fast object information retrieval test: Added time-consuming test which could also be a benchmark in fact - currently it cause hundreds of command invocations which is slow cmd: added option to return the process directly, allowing to read the output directly from the output stream added Iterable interface to Ref type renamed find_all to list_all, changed commit to use iterable interface in preparation for command changes Added base for all iteratable objects unified name of utils module, recently it was named util and utils in different packages tree: renamed content_from_string to _from_string to make it private. Removed tests that were testing that method tree: now behaves like a list with string indexing functionality - using a dict as cache is a problem as the tree is ordered, added blobs, trees and traverse method test_base: Improved basic object creation as well as set hash tests repo.active_branch now returns a Head object, not a string IndexObjects are now checking their slots to raise a proper error message in case someone tries to access an unset path or mode - this information cannot be retrieved afterwards as IndexObject information is kept in the object that pointed at them. To find this information, one would have to search all objects which is not feasible refs now take repo as first argument and derive from LazyMixin to allow them to dynamically retrieve their objects renamed from_string and list_from_string to _from_string and _list_from_string to indicate their new status as private method, adjusted all callers respectively ...
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES83
1 files changed, 69 insertions, 14 deletions
diff --git a/CHANGES b/CHANGES
index 63ca47e8..c4ea13b0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,75 @@
=======
CHANGES
=======
+
+0.2
+=====
+General
+-------
+* file mode in Tree, Blob and Diff objects now is an int compatible to definintiions
+ in the stat module, allowing you to query whether individual user, group and other
+ read, write and execute bits are set.
+* Adjusted class hierarchy to generally allow comparison and hash for Objects and Refs
+* Improved Tag object which now is a Ref that may contain a tag object with additional
+ Information
+* id_abbrev method has been removed as it could not assure the returned short SHA's
+ where unique
+* removed basename method from Objects with path's as it replicated features of os.path
+* from_string and list_from_string methods are now private and were renamed to
+ _from_string and _list_from_string respectively. As part of the private API, they
+ may change without prior notice.
+* Renamed all find_all methods to list_items - this method is part of the Iterable interface
+ that also provides a more efficients and more responsive iter_items method
+
+Item Iteration
+--------------
+* Previously one would return and process multiple items as list only which can
+ hurt performance and memory consumption and reduce response times.
+ iter_items method provide an iterator that will return items on demand as parsed
+ from a stream. This way any amount of objects can be handled.
+
+objects Package
+----------------
+* blob, tree, tag and commit module have been moved to new objects package. This should
+ not affect you though unless you explicitly imported individual objects. If you just
+ used the git package, names did not change.
+
+Repo
+----
+* Moved blame method from Blob to repo as it appeared to belong there much more.
+* active_branch method now returns a Head object instead of a string with the name
+ of the active branch.
+* tree method now requires a Ref instance as input and defaults to the active_branche
+ instead of master
+* Removed 'log' method as it as effectively the same as the 'commits' method
+* 'commits' method has no max-count of returned commits anymore, it now behaves
+ like git-rev-list
+
+Diff
+----
+* Members a a_commit and b_commit renamed to a_blob and b_blob - they are populated
+ with Blob objects if possible
+* Members a_path and b_path removed as this information is kept in the blobs
+
+Blob
+----
+* former 'name' member renamed to path as it suits the actual data better
+
+Tree
+----
+* former 'name' member renamed to path as it suits the actual data better
+* added traverse method allowing to recursively traverse tree items
+* deleted blob method
+* added blobs and trees properties allowing to query the respective items in the
+ tree
+* now mimics behaviour of a read-only list instead of a dict to maintain order.
+* content_from_string method is now private and not part of the public API anymore
+
+Refs
+----
+* Will dynmically retrieve their object at the time of query to assure the information
+ is actual. Recently objects would be cached, hence ref object not be safely kept
+ persistent.
0.1.6
=====
@@ -49,20 +118,6 @@ Repo
* Corrected ``commits_between`` always returning None instead of the reversed
list.
-
-0.1.X
-=====
-( Future Release )
-General
--------
-* See changes in Diff class as your client code needs adjustments to work with it
-
-Diff
-----
-* Members a a_commit and b_commit renamed to a_blob and b_blob - they are populated
- with Blob objects if possible
-* Members a_path and b_path removed as this information is kept in the blobs
-
0.1.5
=====