tldr: refactoring

This commit is contained in:
Romain J 2019-12-16 18:12:10 +01:00
commit f42b2194cd
2881 changed files with 568359 additions and 388 deletions

View file

@ -0,0 +1,131 @@
634396b2f541a9f2d58b00be1a07f0c358b999b3 1 1 7
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1191997100
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1191997100
committer-tz -0700
filename lib/grit.rb
summary initial grit setup
boundary
$:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
634396b2f541a9f2d58b00be1a07f0c358b999b3 2 2
634396b2f541a9f2d58b00be1a07f0c358b999b3 3 3
# core
634396b2f541a9f2d58b00be1a07f0c358b999b3 4 4
634396b2f541a9f2d58b00be1a07f0c358b999b3 5 5
# stdlib
634396b2f541a9f2d58b00be1a07f0c358b999b3 6 6
634396b2f541a9f2d58b00be1a07f0c358b999b3 7 7
# internal requires
3b1930208a82457747d76729ae088e90edca4673 8 8 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192267241
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192267241
committer-tz -0700
filename lib/grit.rb
summary big refactor to do lazy loading
require 'grit/lazy'
4c8124ffcf4039d292442eeccabdeca5af5c5017 8 9 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1191999972
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1191999972
committer-tz -0700
filename lib/grit.rb
summary implement Grit#heads
require 'grit/errors'
d01a4cfad6ea50285c4710243e3cbe019d381eba 9 10 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192032303
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192032303
committer-tz -0700
filename lib/grit.rb
summary convert to Grit module, refactor to be more OO
require 'grit/git'
4c8124ffcf4039d292442eeccabdeca5af5c5017 9 11 1
require 'grit/head'
a47fd41f3aa4610ea527dcc1669dfdb9c15c5425 10 12 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192002639
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192002639
committer-tz -0700
filename lib/grit.rb
summary add more comments throughout
require 'grit/commit'
b17b974691f0a26f26908495d24d9c4c718920f8 13 13 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192271832
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192271832
committer-tz -0700
filename lib/grit.rb
summary started implementing Tree
require 'grit/tree'
74fd66519e983a0f29e16a342a6059dbffe36020 14 14 1
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192317005
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192317005
committer-tz -0700
filename lib/grit.rb
summary add Blob
require 'grit/blob'
d01a4cfad6ea50285c4710243e3cbe019d381eba 12 15 1
require 'grit/repo'
634396b2f541a9f2d58b00be1a07f0c358b999b3 9 16 1
d01a4cfad6ea50285c4710243e3cbe019d381eba 14 17 1
module Grit
b6e1b765e0c15586a2c5b9832854f95defd71e1f 18 18 6
author Tom Preston-Werner
author-mail <tom@mojombo.com>
author-time 1192860483
author-tz -0700
committer Tom Preston-Werner
committer-mail <tom@mojombo.com>
committer-time 1192860483
committer-tz -0700
filename lib/grit.rb
summary implement Repo.init_bare
class << self
b6e1b765e0c15586a2c5b9832854f95defd71e1f 19 19
attr_accessor :debug
b6e1b765e0c15586a2c5b9832854f95defd71e1f 20 20
end
b6e1b765e0c15586a2c5b9832854f95defd71e1f 21 21
b6e1b765e0c15586a2c5b9832854f95defd71e1f 22 22
self.debug = false
b6e1b765e0c15586a2c5b9832854f95defd71e1f 23 23
634396b2f541a9f2d58b00be1a07f0c358b999b3 11 24 2
VERSION = '1.0.0'
634396b2f541a9f2d58b00be1a07f0c358b999b3 12 25
end

Binary file not shown.

View file

@ -0,0 +1,177 @@
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 1 1 83
author Sebastian Thiel
author-mail <byronimo@gmail.com>
author-time 1420715996
author-tz +0100
committer Sebastian Thiel
committer-mail <byronimo@gmail.com>
committer-time 1420716149
committer-tz +0100
summary Fixed PY3 support.
boundary
filename README.md
## GitPython
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 2 2
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 3 3
GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 4 4
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 5 5
It provides abstractions of git objects for easy access of repository data, and additionally allows you to access the git repository more directly using either a pure python implementation, or the faster, but more resource intensive git command implementation.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 6 6
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 7 7
The object database implementation is optimized for handling large quantities of objects and large datasets, which is achieved by using low-level structures and data streaming.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 8 8
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 9 9
### REQUIREMENTS
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 10 10
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 11 11
* Git ( tested with 1.8.3.4 )
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 12 12
* Python Nose - used for running the tests
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 13 13
- Tested with nose 1.3.0
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 14 14
* Mock by Michael Foord used for tests
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 15 15
- Tested with 1.0.1
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 16 16
* Coverage - used for tests coverage
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 17 17
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 18 18
The list of dependencies are listed in /requirements.txt and /test-requirements.txt. The installer takes care of installing them for you though.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 19 19
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 20 20
### INSTALL
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 21 21
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 22 22
[![Latest Version](https://pypip.in/version/GitPython/badge.svg)](https://pypi.python.org/pypi/GitPython/)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 23 23
[![Supported Python Versions](https://pypip.in/py_versions/GitPython/badge.svg)](https://pypi.python.org/pypi/GitPython/)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 24 24
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 25 25
If you have downloaded the source code:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 26 26
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 27 27
python setup.py install
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 28 28
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 29 29
or if you want to obtain a copy from the Pypi repository:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 30 30
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 31 31
pip install gitpython
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 32 32
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 33 33
Both commands will install the required package dependencies.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 34 34
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 35 35
A distribution package can be obtained for manual installation at:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 36 36
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 37 37
http://pypi.python.org/pypi/GitPython
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 38 38
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 39 39
### RUNNING TESTS
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 40 40
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 41 41
The easiest way to run test is by using [tox](https://pypi.python.org/pypi/tox) a wrapper around virtualenv. It will take care of setting up environnements with the proper dependencies installed and execute test commands. To install it simply:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 42 42
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 43 43
pip install tox
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 44 44
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 45 45
Then run:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 46 46
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 47 47
tox
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 48 48
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 49 49
### SOURCE
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 50 50
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 51 51
GitPython's git repo is available on GitHub, which can be browsed at [github](https://github.com/gitpython-developers/GitPython) and cloned like that:
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 52 52
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 53 53
git clone git://github.com/gitpython-developers/GitPython.git git-python
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 54 54
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 55 55
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 56 56
### INFRASTRUCTURE
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 57 57
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 58 58
* [User Documentation](http://gitpython.readthedocs.org)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 59 59
* [Mailing List](http://groups.google.com/group/git-python)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 60 60
* [Issue Tracker](https://github.com/gitpython-developers/GitPython/issues)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 61 61
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 62 62
### LICENSE
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 63 63
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 64 64
New BSD License. See the LICENSE file.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 65 65
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 66 66
### DEVELOPMENT STATUS
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 67 67
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 68 68
[![Build Status](https://travis-ci.org/gitpython-developers/GitPython.svg?branch=0.3)](https://travis-ci.org/gitpython-developers/GitPython)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 69 69
[![Coverage Status](https://coveralls.io/repos/gitpython-developers/GitPython/badge.png?branch=master)](https://coveralls.io/r/gitpython-developers/GitPython?branch=master)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 70 70
[![Documentation Status](https://readthedocs.org/projects/gitpython/badge/?version=stable)](https://readthedocs.org/projects/gitpython/?badge=stable)
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 71 71
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 72 72
Now that there seems to be a massive user base, this should be motivation enough to let git-python return to a proper state, which means
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 73 73
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 74 74
* no open pull requests
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 75 75
* no open issues describing bugs
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 76 76
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 77 77
#### FUTURE GOALS
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 78 78
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 79 79
There has been a lot of work in the master branch, which is the direction I want git-python to go. Namely, it should be able to freely mix and match the back-end used, depending on your requirements and environment.
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 80 80
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 81 81
* make new master work similarly to 0.3, but with the option to swap for at least one additional backend
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 82 82
* make a 1.0 release
e40ad6369bc74d01af4dc41d3a9b8e25ac2aa01e 83 83
* add backends as required

View file

@ -0,0 +1,30 @@
82b8902e033430000481eb355733cd7065342037 2 2 1
author Sebastian Thiel
author-mail <byronimo@gmail.com>
author-time 1270634931
author-tz +0200
committer Sebastian Thiel
committer-mail <byronimo@gmail.com>
committer-time 1270634931
committer-tz +0200
summary Used this release for a first beta of the 0.2 branch of development
previous 501bf602abea7d21c3dbb409b435976e92033145 AUTHORS
filename AUTHORS
82b8902e033430000481eb355733cd7065342037 14 14 1
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 1 1 1
author Michael Trier
author-mail <mtrier@gmail.com>
author-time 1232829627
author-tz -0500
committer Michael Trier
committer-mail <mtrier@gmail.com>
committer-time 1232829627
committer-tz -0500
summary Lots of spring cleaning and added in Sphinx documentation.
previous bcd57e349c08bd7f076f8d6d2f39b702015358c1 AUTHORS
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 2 3 11
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 13 15 2
filename AUTHORS

View file

@ -0,0 +1,33 @@
82b8902e033430000481eb355733cd7065342037 2 2 1
author Sebastian Thiel
author-mail <byronimo@gmail.com>
author-time 1270634931
author-tz +0200
committer Sebastian Thiel
committer-mail <byronimo@gmail.com>
committer-time 1270634931
committer-tz +0200
summary Used this release for a first beta of the 0.2 branch of development
previous 501bf602abea7d21c3dbb409b435976e92033145 AUTHORS
filename AUTHORS
82b8902e033430000481eb355733cd7065342037 14 14 1
previous 501bf602abea7d21c3dbb409b435976e92033145 AUTHORS
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 1 1 1
author Michael Trier
author-mail <mtrier@gmail.com>
author-time 1232829627
author-tz -0500
committer Michael Trier
committer-mail <mtrier@gmail.com>
committer-time 1232829627
committer-tz -0500
summary Lots of spring cleaning and added in Sphinx documentation.
previous bcd57e349c08bd7f076f8d6d2f39b702015358c1 AUTHORS
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 2 3 11
previous bcd57e349c08bd7f076f8d6d2f39b702015358c1 AUTHORS
filename AUTHORS
c76852d0bff115720af3f27acdb084c59361e5f6 13 15 2
previous bcd57e349c08bd7f076f8d6d2f39b702015358c1 AUTHORS
filename AUTHORS

View file

@ -0,0 +1,6 @@
import sys
with open(sys.argv[1]) as fd:
for line in fd.readlines():
sys.stdout.write(line)
sys.stderr.write(line)

View file

@ -0,0 +1 @@
Hello world

View file

@ -0,0 +1 @@
Hello world

View file

@ -0,0 +1 @@
11

View file

@ -0,0 +1,6 @@
tree 9f1a495d7d9692d24f5caedaa89f5c2c32d59368
parent 492ace2ffce0e426ebeb55e364e987bcf024dd3b
author E.Azer KoÃoÃoÃoculu <azer@kodfabrik.com> 1306710073 +0300
committer E.Azer KoÃoÃoÃoculu <azer@kodfabrik.com> 1306710073 +0300
add environjs

View file

@ -0,0 +1,30 @@
tree cefbccb4843d821183ae195e70a17c9938318945
parent 904435cf76a9bdd5eb41b1c4e049d5a64f3a8400
author Jon Mason <jon.mason@intel.com> 1367013117 -0700
committer Jon Mason <jon.mason@intel.com> 1368640702 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
iQIcBAABAgAGBQJRk8zMAAoJEG5mS6x6i9IjsTEP/0v2Wx/i7dqyKban6XMIhVdj
uI0DycfXqnCCZmejidzeao+P+cuK/ZAA/b9fU4MtwkDm2USvnIOrB00W0isxsrED
sdv6uJNa2ybGjxBolLrfQcWutxGXLZ1FGRhEvkPTLMHHvVriKoNFXcS7ewxP9MBf
NH97K2wauqA+J4BDLDHQJgADCOmLrGTAU+G1eAXHIschDqa6PZMH5nInetYZONDh
3SkOOv8VKFIF7gu8X7HC+7+Y8k8U0TW0cjlQ2icinwCc+KFoG6GwXS7u/VqIo1Yp
Tack6sxIdK7NXJhV5gAeAOMJBGhO0fHl8UUr96vGEKwtxyZhWf8cuIPOWLk06jA0
g9DpLqmy/pvyRfiPci+24YdYRBua/vta+yo/Lp85N7Hu/cpIh+q5WSLvUlv09Dmo
TTTG8Hf6s3lEej7W8z2xcNZoB6GwXd8buSDU8cu0I6mEO9sNtAuUOHp2dBvTA6cX
PuQW8jg3zofnx7CyNcd3KF3nh2z8mBcDLgh0Q84srZJCPRuxRcp9ylggvAG7iaNd
XMNvSK8IZtWLkx7k3A3QYt1cN4y1zdSHLR2S+BVCEJea1mvUE+jK5wiB9S4XNtKm
BX/otlTa8pNE3fWYBxURvfHnMY4i3HQT7Bc1QjImAhMnyo2vJk4ORBJIZ1FTNIhJ
JzJMZDRLQLFvnzqZuCjE
=przd
-----END PGP SIGNATURE-----
NTB: Multiple NTB client fix
Fix issue with adding multiple ntb client devices to the ntb virtual
bus. Previously, multiple devices would be added with the same name,
resulting in crashes. To get around this issue, add a unique number to
the device when it is added.
Signed-off-by: Jon Mason <jon.mason@intel.com>

View file

@ -0,0 +1,54 @@
diff --git a/lib/grit/commit.rb b/lib/grit/commit.rb
index a093bb1db8e884cccf396b297259181d1caebed4..80fd3d527f269ecbd570b65b8e21fd85baedb6e9 100644
--- a/lib/grit/com mit.rb
+++ b/lib/grit/com mit.rb
@@ -156,12 +156,8 @@ module Grit
def diffs
if parents.empty?
- diff = @repo.git.show({:full_index => true, :pretty => 'raw'}, @id)
- if diff =~ /diff --git a/
- diff = diff.sub(/.+?(diff --git a)/m, '\1')
- else
- diff = ''
- end
+ diff = @repo.git.show({:full_index => true, :pretty => 'raw'}, @id)
+ diff = diff.sub(/.+?(diff --git a)/m, '\1')
Diff.list_from_string(@repo, diff)
else
self.class.diff(@repo, parents.first.id, @id)
diff --git a/test/fixtures/show_empty_commit b/test/fixtures/show_empty_commit
deleted file mode 100644
index ea25e32a409fdf74c1b9268820108d1c16dcc553..0000000000000000000000000000000000000000
--- a/test/fixtures/show_empty_commit
+++ /dev/null
@@ -1,6 +0,0 @@
-commit 1e3824339762bd48316fe87bfafc853732d43264
-tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
-author Tom Preston-Werner <tom@mojombo.com> 1157392833 +0000
-committer Tom Preston-Werner <tom@mojombo.com> 1157392833 +0000
-
- initial directory structure
diff --git a/test/test_commit.rb b/test/test_commit.rb
index fdeb9000089b052f0b31a845e0173e9b089e06a0..bdbc450e08084d7d611e985cfa12fb424cab29b2 100644
--- a/test/test_commit.rb
+++ b/test/test_commit.rb
@@ -98,18 +98,6 @@ class TestCommit < Test::Unit::TestCase
assert_equal true, diffs[5].new_file
end
- def test_diffs_on_initial_import_with_empty_commit
- Git.any_instance.expects(:show).with(
- {:full_index => true, :pretty => 'raw'},
- '634396b2f541a9f2d58b00be1a07f0c358b999b3'
- ).returns(fixture('show_empty_commit'))
-
- @c = Commit.create(@r, :id => '634396b2f541a9f2d58b00be1a07f0c358b999b3')
- diffs = @c.diffs
-
- assert_equal [], diffs
- end
-
# to_s
def test_to_s

View file

@ -0,0 +1,19 @@
diff --git a/lib/grit/commit.rb b/lib/grit/commit.rb
index a093bb1db8e884cccf396b297259181d1caebed4..80fd3d527f269ecbd570b65b8e21fd85baedb6e9 100644
--- a/lib/grit/commit.rb
+++ b/lib/grit/commit.rb
@@ -156,12 +156,8 @@ module Grit
def diffs
if parents.empty?
- diff = @repo.git.show({:full_index => true, :pretty => 'raw'}, @id)
- if diff =~ /diff --git a/
- diff = diff.sub(/.+?(diff --git a)/m, '\1')
- else
- diff = ''
- end
+ diff = @repo.git.show({:full_index => true, :pretty => 'raw'}, @id)
+ diff = diff.sub(/.+?(diff --git a)/m, '\1')
Diff.list_from_string(@repo, diff)
else
self.class.diff(@repo, parents.first.id, @id)

View file

@ -0,0 +1 @@
:100644 100644 739bc65220ad90e9ebfa2d6af1723b97555569a4 0000000000000000000000000000000000000000 M README.md

View file

@ -0,0 +1,10 @@
diff --git a/this b/this
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/this b/this
new file mode 120000
index 0000000000000000000000000000000000000000..42061c01a1c70097d1e4579f29a5adf40abdec95
--- /dev/null
+++ b/this
@@ -0,0 +1 @@
+that

View file

@ -0,0 +1 @@
:100644 120000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 42061c01a1c70097d1e4579f29a5adf40abdec95 T this

View file

@ -0,0 +1,4 @@
diff --git a/test1.txt b/test2.txt
similarity index 100%
copy from test1.txt
copy to test2.txt

View file

@ -0,0 +1 @@
:100644 100644 cfe9deac6e10683917e80f877566b58644aa21df cfe9deac6e10683917e80f877566b58644aa21df C100 test1.txt test2.txt

View file

@ -0,0 +1,15 @@
diff --git a/lib/grit/diff.rb b/lib/grit/diff.rb
index 537955bb86a8ceaa19aea89e75ccbea5ce6f2698..00b0b4a67eca9242db5f8991e99625acd55f040c 100644
--- a/lib/grit/diff.rb
+++ b/lib/grit/diff.rb
@@ -27,6 +27,10 @@ module Grit
while !lines.empty?
m, a_path, b_path = *lines.shift.match(%r{^diff --git a/(\S+) b/(\S+)$})
+ if lines.first =~ /^old mode/
+ 2.times { lines.shift }
+ end
+
new_file = false
deleted_file = false

View file

@ -0,0 +1,7 @@
diff --git a/file with spaces b/file with spaces
new file mode 100644
index 0000000000000000000000000000000000000000..75c620d7b0d3b0100415421a97f553c979d75174
--- /dev/null
+++ b/file with spaces
@@ -0,0 +1 @@
+ohai

View file

@ -0,0 +1,201 @@
commit 634396b2f541a9f2d58b00be1a07f0c358b999b3
Author: Tom Preston-Werner <tom@mojombo.com>
Date: Tue Oct 9 23:18:20 2007 -0700
initial grit setup
diff --git a/History.txt b/History.txt
new file mode 100644
index 0000000000000000000000000000000000000000..81d2c27608b352814cbe979a6acd678d30219678
--- /dev/null
+++ b/History.txt
@@ -0,0 +1,5 @@
+== 1.0.0 / 2007-10-09
+
+* 1 major enhancement
+ * Birthday!
+
diff --git a/Manifest.txt b/Manifest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..641972d82c6d1b51122274ae8f6a0ecdfb56ee22
--- /dev/null
+++ b/Manifest.txt
@@ -0,0 +1,7 @@
+History.txt
+Manifest.txt
+README.txt
+Rakefile
+bin/grit
+lib/grit.rb
+test/test_grit.rb
\ No newline at end of file
diff --git a/README.txt b/README.txt
new file mode 100644
index 0000000000000000000000000000000000000000..8b1e02c0fb554eed2ce2ef737a68bb369d7527df
--- /dev/null
+++ b/README.txt
@@ -0,0 +1,48 @@
+grit
+ by FIX (your name)
+ FIX (url)
+
+== DESCRIPTION:
+
+FIX (describe your package)
+
+== FEATURES/PROBLEMS:
+
+* FIX (list of features or problems)
+
+== SYNOPSIS:
+
+ FIX (code sample of usage)
+
+== REQUIREMENTS:
+
+* FIX (list of requirements)
+
+== INSTALL:
+
+* FIX (sudo gem install, anything else)
+
+== LICENSE:
+
+(The MIT License)
+
+Copyright (c) 2007 FIX
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+'Software'), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Rakefile b/Rakefile
new file mode 100644
index 0000000000000000000000000000000000000000..ff69c3684a18592c741332b290492aa39d980e02
--- /dev/null
+++ b/Rakefile
@@ -0,0 +1,17 @@
+# -*- ruby -*-
+
+require 'rubygems'
+require 'hoe'
+require './lib/grit.rb'
+
+Hoe.new('grit', GitPython.VERSION) do |p|
+ p.rubyforge_name = 'grit'
+ # p.author = 'FIX'
+ # p.email = 'FIX'
+ # p.summary = 'FIX'
+ # p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
+ # p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
+ p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
+end
+
+# vim: syntax=Ruby
diff --git a/bin/grit b/bin/grit
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/lib/grit.rb b/lib/grit.rb
new file mode 100644
index 0000000000000000000000000000000000000000..32cec87d1e78946a827ddf6a8776be4d81dcf1d1
--- /dev/null
+++ b/lib/grit.rb
@@ -0,0 +1,12 @@
+$:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
+
+# core
+
+# stdlib
+
+# internal requires
+require 'grit/grit'
+
+class Grit
+ VERSION = '1.0.0'
+end
\ No newline at end of file
diff --git a/lib/grit/errors.rb b/lib/grit/errors.rb
new file mode 100644
index 0000000000000000000000000000000000000000..b3be31553741937607a89be8b6a2ab1df208852e
--- /dev/null
+++ b/lib/grit/errors.rb
@@ -0,0 +1,4 @@
+class Grit
+ class InvalidGitRepositoryError < StandardError
+ end
+end
\ No newline at end of file
diff --git a/lib/grit/grit.rb b/lib/grit/grit.rb
new file mode 100644
index 0000000000000000000000000000000000000000..48fd36e16081ec09903f7a0e2253b3d16f9efb01
--- /dev/null
+++ b/lib/grit/grit.rb
@@ -0,0 +1,24 @@
+class Grit
+ attr_accessor :path
+
+ # Create a new Grit instance
+ # +path+ is the path to either the root git directory or the bare git repo
+ #
+ # Examples
+ # g = Grit.new("/Users/tom/dev/grit")
+ # g = Grit.new("/Users/tom/public/grit.git")
+ def initialize(path)
+ if File.exist?(File.join(path, '.git'))
+ self.path = File.join(path, '.git')
+ elsif File.exist?(path) && path =~ /\.git$/
+ self.path = path
+ else
+ raise InvalidGitRepositoryError.new(path) unless File.exist?(path)
+ end
+ end
+
+ # Return the project's description. Taken verbatim from REPO/description
+ def description
+ File.open(File.join(self.path, 'description')).read.chomp
+ end
+end
\ No newline at end of file
diff --git a/test/helper.rb b/test/helper.rb
new file mode 100644
index 0000000000000000000000000000000000000000..56e21da6b4ce3021d2754775dfa589947a4e37e5
--- /dev/null
+++ b/test/helper.rb
@@ -0,0 +1,5 @@
+require File.join(File.dirname(__FILE__), *%w[.. lib grit])
+
+require 'test/unit'
+
+GRIT_REPO = File.join(File.dirname(__FILE__), *%w[..])
diff --git a/test/test_grit.rb b/test/test_grit.rb
new file mode 100644
index 0000000000000000000000000000000000000000..93aa481b37629797df739380306ae689e13f2855
--- /dev/null
+++ b/test/test_grit.rb
@@ -0,0 +1,11 @@
+require File.dirname(__FILE__) + '/helper'
+
+class TestGrit < Test::Unit::TestCase
+ def setup
+ @g = Grit.new(GRIT_REPO)
+ end
+
+ def test_description
+ assert_equal "Grit is a ruby library for interfacing with git repositories.", @g.description
+ end
+end
\ No newline at end of file

View file

@ -0,0 +1,100 @@
diff --git a/etc/sublime-text/git-python.sublime-project b/etc/sublime-text/git-python.sublime-project
index 3dab9f6562ecb0408d9ece8dd63cc4461d280113..9c99a2cff7dc918fbbb61cd57d5d98750a1ef6c5 100644
--- a/etc/sublime-text/git-python.sublime-project
+++ b/etc/sublime-text/git-python.sublime-project
@@ -23,7 +23,7 @@
]
},
// GITDB
- ////////
+ // ////////
{
"follow_symlinks": true,
"path": "../../git/ext/gitdb",
@@ -42,8 +42,8 @@
".tox",
]
},
- // // SMMAP
- // ////////
+ // // // SMMAP
+ // // ////////
{
"follow_symlinks": true,
"path": "../../git/ext/gitdb/gitdb/ext/smmap",
diff --git a/git/diff.py b/git/diff.py
index 24e47bad9d79534d3cf474fec4f79e6fef122bb1..c1ad532e0217e293906bcfef43c523d6a8e21568 100644
--- a/git/diff.py
+++ b/git/diff.py
@@ -302,13 +302,21 @@ class Diff(object):
diff_header = cls.re_header.match
for diff in ('\n' + text).split('\ndiff --git')[1:]:
header = diff_header(diff)
- assert header is not None, "Failed to parse diff header from " % diff
+ assert header is not None, "Failed to parse diff header from '%s'" % diff
a_path, b_path, similarity_index, rename_from, rename_to, \
old_mode, new_mode, new_file_mode, deleted_file_mode, \
a_blob_id, b_blob_id, b_mode = header.groups()
new_file, deleted_file = bool(new_file_mode), bool(deleted_file_mode)
+ # if a_path.startswith('a/'):
+ # a_path = a_path[2:]
+ # if b_path.startswith('b/'):
+ # b_path = b_path[2:]
+
+ for item in (a_path, b_path, a_blob_id, b_blob_id, old_mode, deleted_file_mode, new_mode, new_file_mode, b_mode, new_file, deleted_file, rename_from, rename_to, diff[header.end():]):
+ print( "####")
+ print(item)
index.append(Diff(repo, a_path, b_path, a_blob_id, b_blob_id,
old_mode or deleted_file_mode, new_mode or new_file_mode or b_mode,
new_file, deleted_file, rename_from, rename_to, diff[header.end():]))
diff --git a/git/ext/gitdb b/git/ext/gitdb
index f2233fbf40f3f69309ce5cc714e99fcbdcd33ec3..a88a777df3909a61be97f1a7b1194dad6de25702 160000
--- a/git/ext/gitdb
+++ b/git/ext/gitdb
@@ -1 +1 @@
-Subproject commit f2233fbf40f3f69309ce5cc714e99fcbdcd33ec3
+Subproject commit a88a777df3909a61be97f1a7b1194dad6de25702-dirty
diff --git a/git/test/fixtures/diff_patch_binary b/git/test/fixtures/diff_patch_binary
new file mode 100644
index 0000000000000000000000000000000000000000..c92ccd6ebc92a871d38ad7cb8a48bcdb1a5dbc33
--- /dev/null
+++ b/git/test/fixtures/diff_patch_binary
@@ -0,0 +1,3 @@
+diff --git a/rps b/rps
+index f4567df37451b230b1381b1bc9c2bcad76e08a3c..736bd596a36924d30b480942e9475ce0d734fa0d 100755
+Binary files a/rps and b/rps differ
diff --git a/git/test/fixtures/diff_raw_binary b/git/test/fixtures/diff_raw_binary
new file mode 100644
index 0000000000000000000000000000000000000000..d4673fa41ee8413384167fc7b9f25e4daf18a53a
--- /dev/null
+++ b/git/test/fixtures/diff_raw_binary
@@ -0,0 +1 @@
+:100755 100755 f4567df37451b230b1381b1bc9c2bcad76e08a3c 736bd596a36924d30b480942e9475ce0d734fa0d M rps
diff --git a/git/test/test_diff.py b/git/test/test_diff.py
index ce0f64f2261bd8de063233108caac1f26742c1fd..4de26f8884fd048ac7f10007f2bf7c7fa3fa60f4 100644
--- a/git/test/test_diff.py
+++ b/git/test/test_diff.py
@@ -65,6 +65,21 @@ class TestDiff(TestBase):
assert diff.rename_to == 'that'
assert len(list(diffs.iter_change_type('R'))) == 1
+ def test_binary_diff(self):
+ for method, file_name in ((Diff._index_from_patch_format, 'diff_patch_binary'),
+ (Diff._index_from_raw_format, 'diff_raw_binary')):
+ res = method(None, StringProcessAdapter(fixture(file_name)).stdout)
+ assert len(res) == 1
+ assert len(list(res.iter_change_type('M'))) == 1
+ if res[0].diff:
+ assert res[0].diff == "Binary files a/rps and b/rps differ\n", "in patch mode, we get a diff text"
+ assert isinstance(str(res[0]), str), "This call should just work"
+ # end for each method to test
+
+ def test_diff_index(self):
+ res = self.rorepo.index.diff('17f5d13a7a741dcbb2a30e147bdafe929cff4697', create_patch=True)
+ assert len(res) == 3
+
def test_diff_patch_format(self):
# test all of the 'old' format diffs for completness - it should at least
# be able to deal with it

View file

@ -0,0 +1 @@
:100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D

View file

@ -0,0 +1,8 @@
@@ -0,0 +1,7 @@
+=======
+CHANGES
+=======
+
+0.1.0
+=====
+initial release

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,14 @@
diff --git a/conf/global_settings.py b/conf/global_settings.py
old mode 100644
new mode 100755
index 9ec1bac000000000000000000000000000000000..1c4f83b000000000000000000000000000000000
--- a/conf/global_settings.py
+++ b/conf/global_settings.py
@@ -58,6 +58,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
)
MIDDLEWARE_CLASSES = (
+ "django.middleware.cache.CacheMiddleware",
"django.middleware.common.CommonMiddleware",
"django.contrib.sessions.middleware.SessionMiddleware",
"django.contrib.auth.middleware.AuthenticationMiddleware",

View file

@ -0,0 +1,2 @@
29 18 a.txt
0 5 b.txt

View file

@ -0,0 +1,610 @@
diff --git a/.gitignore b/.gitignore
index 4ebc8aea50e0a67e000ba29a30809d0a7b9b2666..2dd02534615434d88c51307beb0f0092f21fd103 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
coverage
+pkg
diff --git a/Manifest.txt b/Manifest.txt
index 641972d82c6d1b51122274ae8f6a0ecdfb56ee22..38bf80c54a526e76d74820a0f48606fe1ca7b1be 100644
--- a/Manifest.txt
+++ b/Manifest.txt
@@ -4,4 +4,31 @@ README.txt
Rakefile
bin/grit
lib/grit.rb
-test/test_grit.rb
\ No newline at end of file
+lib/grit/actor.rb
+lib/grit/blob.rb
+lib/grit/commit.rb
+lib/grit/errors.rb
+lib/grit/git.rb
+lib/grit/head.rb
+lib/grit/lazy.rb
+lib/grit/repo.rb
+lib/grit/tree.rb
+test/fixtures/blame
+test/fixtures/cat_file_blob
+test/fixtures/cat_file_blob_size
+test/fixtures/for_each_ref
+test/fixtures/ls_tree_a
+test/fixtures/ls_tree_b
+test/fixtures/rev_list
+test/fixtures/rev_list_single
+test/helper.rb
+test/profile.rb
+test/suite.rb
+test/test_actor.rb
+test/test_blob.rb
+test/test_commit.rb
+test/test_git.rb
+test/test_head.rb
+test/test_reality.rb
+test/test_repo.rb
+test/test_tree.rb
diff --git a/README.txt b/README.txt
index 8b1e02c0fb554eed2ce2ef737a68bb369d7527df..fca94f84afd7d749c62626011f972a509f6a5ac6 100644
--- a/README.txt
+++ b/README.txt
@@ -1,32 +1,185 @@
grit
- by FIX (your name)
- FIX (url)
+ by Tom Preston-Werner
+ grit.rubyforge.org
== DESCRIPTION:
+
+Grit is a Ruby library for extracting information from a git repository in and
+object oriented manner.
+
+== REQUIREMENTS:
+
+* git (http://git.or.cz) tested with 1.5.3.4
+
+== INSTALL:
+
+sudo gem install grit
+
+== USAGE:
+
+Grit gives you object model access to your git repository. Once you have
+created a repository object, you can traverse it to find parent commit(s),
+trees, blobs, etc.
+
+= Initialize a Repo object
+
+The first step is to create a GitPython.Repo object to represent your repo. I
+include the Grit module so reduce typing.
+
+ include Grit
+ repo = Repo.new("/Users/tom/dev/grit")
-FIX (describe your package)
+In the above example, the directory /Users/tom/dev/grit is my working
+repo and contains the .git directory. You can also initialize Grit with a
+bare repo.
-== FEATURES/PROBLEMS:
+ repo = Repo.new("/var/git/grit.git")
-* FIX (list of features or problems)
+= Getting a list of commits
-== SYNOPSIS:
+From the Repo object, you can get a list of commits as an array of Commit
+objects.
- FIX (code sample of usage)
+ repo.commits
+ # => [#<GitPython.Commit "e80bbd2ce67651aa18e57fb0b43618ad4baf7750">,
+ #<GitPython.Commit "91169e1f5fa4de2eaea3f176461f5dc784796769">,
+ #<GitPython.Commit "038af8c329ef7c1bae4568b98bd5c58510465493">,
+ #<GitPython.Commit "40d3057d09a7a4d61059bca9dca5ae698de58cbe">,
+ #<GitPython.Commit "4ea50f4754937bf19461af58ce3b3d24c77311d9">]
+
+Called without arguments, Repo#commits returns a list of up to ten commits
+reachable by the master branch (starting at the latest commit). You can ask
+for commits beginning at a different branch, commit, tag, etc.
-== REQUIREMENTS:
+ repo.commits('mybranch')
+ repo.commits('40d3057d09a7a4d61059bca9dca5ae698de58cbe')
+ repo.commits('v0.1')
+
+You can specify the maximum number of commits to return.
-* FIX (list of requirements)
+ repo.commits('master', 100)
+
+If you need paging, you can specify a number of commits to skip.
-== INSTALL:
+ repo.commits('master', 10, 20)
+
+The above will return commits 21-30 from the commit list.
+
+= The Commit object
+
+Commit objects contain information about that commit.
+
+ head = repo.commits.first
+
+ head.id
+ # => "e80bbd2ce67651aa18e57fb0b43618ad4baf7750"
+
+ head.parents
+ # => [#<GitPython.Commit "91169e1f5fa4de2eaea3f176461f5dc784796769">]
+
+ head.tree
+ # => #<GitPython.Tree "3536eb9abac69c3e4db583ad38f3d30f8db4771f">
+
+ head.author
+ # => #<GitPython.Actor "Tom Preston-Werner <tom@mojombo.com>">
+
+ head.authored_date
+ # => Wed Oct 24 22:02:31 -0700 2007
+
+ head.committer
+ # => #<GitPython.Actor "Tom Preston-Werner <tom@mojombo.com>">
+
+ head.committed_date
+ # => Wed Oct 24 22:02:31 -0700 2007
+
+ head.message
+ # => "add Actor inspect"
+
+You can traverse a commit's ancestry by chaining calls to #parents.
+
+ repo.commits.first.parents[0].parents[0].parents[0]
+
+The above corresponds to master^^^ or master~3 in git parlance.
+
+= The Tree object
+
+A tree records pointers to the contents of a directory. Let's say you want
+the root tree of the latest commit on the master branch.
+
+ tree = repo.commits.first.tree
+ # => #<GitPython.Tree "3536eb9abac69c3e4db583ad38f3d30f8db4771f">
+
+ tree.id
+ # => "3536eb9abac69c3e4db583ad38f3d30f8db4771f"
+
+Once you have a tree, you can get the contents.
+
+ contents = tree.contents
+ # => [#<GitPython.Blob "4ebc8aea50e0a67e000ba29a30809d0a7b9b2666">,
+ #<GitPython.Blob "81d2c27608b352814cbe979a6acd678d30219678">,
+ #<GitPython.Tree "c3d07b0083f01a6e1ac969a0f32b8d06f20c62e5">,
+ #<GitPython.Tree "4d00fe177a8407dbbc64a24dbfc564762c0922d8">]
+
+This tree contains two Blob objects and two Tree objects. The trees are
+subdirectories and the blobs are files. Trees below the root have additional
+attributes.
+
+ contents.last.name
+ # => "lib"
+
+ contents.last.mode
+ # => "040000"
+
+There is a convenience method that allows you to get a named sub-object
+from a tree.
+
+ tree/"lib"
+ # => #<GitPython.Tree "e74893a3d8a25cbb1367cf241cc741bfd503c4b2">
+
+You can also get a tree directly from the repo if you know its name.
+
+ repo.tree
+ # => #<GitPython.Tree "master">
+
+ repo.tree("91169e1f5fa4de2eaea3f176461f5dc784796769")
+ # => #<GitPython.Tree "91169e1f5fa4de2eaea3f176461f5dc784796769">
+
+= The Blob object
+
+A blob represents a file. Trees often contain blobs.
+
+ blob = tree.contents.first
+ # => #<GitPython.Blob "4ebc8aea50e0a67e000ba29a30809d0a7b9b2666">
+
+A blob has certain attributes.
+
+ blob.id
+ # => "4ebc8aea50e0a67e000ba29a30809d0a7b9b2666"
+
+ blob.name
+ # => "README.txt"
+
+ blob.mode
+ # => "100644"
+
+ blob.size
+ # => 7726
+
+You can get the data of a blob as a string.
+
+ blob.data
+ # => "Grit is a library to ..."
+
+You can also get a blob directly from the repo if you know its name.
-* FIX (sudo gem install, anything else)
+ repo.blob("4ebc8aea50e0a67e000ba29a30809d0a7b9b2666")
+ # => #<GitPython.Blob "4ebc8aea50e0a67e000ba29a30809d0a7b9b2666">
== LICENSE:
(The MIT License)
-Copyright (c) 2007 FIX
+Copyright (c) 2007 Tom Preston-Werner
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
diff --git a/Rakefile b/Rakefile
index 5bfb62163af455ca54422fd0b2e723ba1021ad12..72fde8c9ca87a1c992ce992bab13c3c4f13cddb9 100644
--- a/Rakefile
+++ b/Rakefile
@@ -4,11 +4,11 @@ require './lib/grit.rb'
Hoe.new('grit', GitPython.VERSION) do |p|
p.rubyforge_name = 'grit'
- # p.author = 'FIX'
- # p.email = 'FIX'
- # p.summary = 'FIX'
- # p.description = p.paragraphs_of('README.txt', 2..5).join("\n\n")
- # p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[1..-1]
+ p.author = 'Tom Preston-Werner'
+ p.email = 'tom@rubyisawesome.com'
+ p.summary = 'Object model interface to a git repo'
+ p.description = p.paragraphs_of('README.txt', 2..2).join("\n\n")
+ p.url = p.paragraphs_of('README.txt', 0).first.split(/\n/)[2..-1].map { |u| u.strip }
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
end
diff --git a/lib/grit.rb b/lib/grit.rb
index ae0792ae39d4891ebc1af996102a4f9df703394d..ae55fd7961ac49233f6ca515622a61e90d516044 100644
--- a/lib/grit.rb
+++ b/lib/grit.rb
@@ -1,4 +1,4 @@
-$:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
+$:.unshift File.dirname(__FILE__) # For use/testing when no gem is installed
# core
@@ -12,6 +12,8 @@ require 'grit/head'
require 'grit/commit'
require 'grit/tree'
require 'grit/blob'
+require 'grit/actor'
+require 'grit/diff'
require 'grit/repo'
module Grit
@@ -21,5 +23,5 @@ module Grit
self.debug = false
- VERSION = '1.0.0'
+ VERSION = '0.1.0'
end
\ No newline at end of file
diff --git a/lib/grit/actor.rb b/lib/grit/actor.rb
new file mode 100644
index 0000000000000000000000000000000000000000..f733bce6b57c0e5e353206e692b0e3105c2527f4
--- /dev/null
+++ b/lib/grit/actor.rb
@@ -0,0 +1,35 @@
+module Grit
+
+ class Actor
+ attr_reader :name
+ attr_reader :email
+
+ def initialize(name, email)
+ @name = name
+ @email = email
+ end
+
+ # Create an Actor from a string.
+ # +str+ is the string, which is expected to be in regular git format
+ #
+ # Format
+ # John Doe <jdoe@example.com>
+ #
+ # Returns Actor
+ def self.from_string(str)
+ case str
+ when /<.+>/
+ m, name, email = *str.match(/(.*) <(.+?)>/)
+ return self.new(name, email)
+ else
+ return self.new(str, nil)
+ end
+ end
+
+ # Pretty object inspection
+ def inspect
+ %Q{#<GitPython.Actor "#{@name} <#{@email}>">}
+ end
+ end # Actor
+
+end # Grit
\ No newline at end of file
diff --git a/lib/grit/blob.rb b/lib/grit/blob.rb
index c863646d4278bfee2a7bcb64caace6b31f89ef03..87d43fab37844afdc2f8814dba3abdaa791f1370 100644
--- a/lib/grit/blob.rb
+++ b/lib/grit/blob.rb
@@ -81,9 +81,9 @@ module Grit
c = commits[info[:id]]
unless c
c = Commit.create(repo, :id => info[:id],
- :author => info[:author],
+ :author => Actor.from_string(info[:author] + ' ' + info[:author_email]),
:authored_date => info[:author_date],
- :committer => info[:committer],
+ :committer => Actor.from_string(info[:committer] + ' ' + info[:committer_email]),
:committed_date => info[:committer_date],
:message => info[:summary])
commits[info[:id]] = c
@@ -102,11 +102,6 @@ module Grit
def inspect
%Q{#<GitPython.Blob "#{@id}">}
end
-
- # private
-
- def self.read_
- end
end # Blob
end # Grit
\ No newline at end of file
diff --git a/lib/grit/commit.rb b/lib/grit/commit.rb
index c2a9e2f81657b19925fe9bab4bc5d7ac130e5880..cd9c3e3184c97e83a8982fab9499cad3aec339f6 100644
--- a/lib/grit/commit.rb
+++ b/lib/grit/commit.rb
@@ -136,6 +136,11 @@ module Grit
commits
end
+ def self.diff(repo, id)
+ text = repo.git.diff({:full_index => true}, id)
+ Diff.list_from_string(repo, text)
+ end
+
# Convert this Commit to a String which is just the SHA1 id
def to_s
@id
@@ -153,7 +158,7 @@ module Grit
# Returns [String (actor name and email), Time (acted at time)]
def self.actor(line)
m, actor, epoch = *line.match(/^.+? (.*) (\d+) .*$/)
- [actor, Time.at(epoch.to_i)]
+ [Actor.from_string(actor), Time.at(epoch.to_i)]
end
end # Commit
diff --git a/lib/grit/git.rb b/lib/grit/git.rb
index 1d5251d40fb65ac89184ec662a3e1b04d0c24861..98eeddda5ed2b0e215e21128112393bdc9bc9039 100644
--- a/lib/grit/git.rb
+++ b/lib/grit/git.rb
@@ -13,17 +13,6 @@ module Grit
self.git_dir = git_dir
end
- # Converstion hash from Ruby style options to git command line
- # style options
- TRANSFORM = {:max_count => "--max-count=",
- :skip => "--skip=",
- :pretty => "--pretty=",
- :sort => "--sort=",
- :format => "--format=",
- :since => "--since=",
- :p => "-p",
- :s => "-s"}
-
# Run the given git command with the specified arguments and return
# the result as a String
# +cmd+ is the command
@@ -52,12 +41,19 @@ module Grit
def transform_options(options)
args = []
options.keys.each do |opt|
- if TRANSFORM[opt]
+ if opt.to_s.size == 1
+ if options[opt] == true
+ args << "-#{opt}"
+ else
+ val = options.delete(opt)
+ args << "-#{opt.to_s} #{val}"
+ end
+ else
if options[opt] == true
- args << TRANSFORM[opt]
+ args << "--#{opt.to_s.gsub(/_/, '-')}"
else
val = options.delete(opt)
- args << TRANSFORM[opt] + val.to_s
+ args << "--#{opt.to_s.gsub(/_/, '-')}=#{val}"
end
end
end
diff --git a/lib/grit/repo.rb b/lib/grit/repo.rb
index 624991d07e240ae66ff2a0dc55e2f2b5e262c75b..63bf03b839374c96a3d42a07d56681a797f52a71 100644
--- a/lib/grit/repo.rb
+++ b/lib/grit/repo.rb
@@ -93,6 +93,17 @@ module Grit
def blob(id)
Blob.create(self, :id => id)
end
+
+ # The commit log for a treeish
+ #
+ # Returns GitPython.Commit[]
+ def log(commit = 'master', path = nil, options = {})
+ default_options = {:pretty => "raw"}
+ actual_options = default_options.merge(options)
+ arg = path ? "#{commit} -- #{path}" : commit
+ commits = self.git.log(actual_options, arg)
+ Commit.list_from_string(self, commits)
+ end
# The diff from commit +a+ to commit +b+, optionally restricted to the given file(s)
# +a+ is the base commit
@@ -121,4 +132,4 @@ module Grit
end
end # Repo
-end # Grit
\ No newline at end of file
+end # Grit
diff --git a/test/test_actor.rb b/test/test_actor.rb
new file mode 100644
index 0000000000000000000000000000000000000000..08391f12336831d048122c8d13bc8404f27e6b91
--- /dev/null
+++ b/test/test_actor.rb
@@ -0,0 +1,28 @@
+require File.dirname(__FILE__) + '/helper'
+
+class TestActor < Test::Unit::TestCase
+ def setup
+
+ end
+
+ # from_string
+
+ def test_from_string_should_separate_name_and_email
+ a = Actor.from_string("Tom Werner <tom@example.com>")
+ assert_equal "Tom Werner", a.name
+ assert_equal "tom@example.com", a.email
+ end
+
+ def test_from_string_should_handle_just_name
+ a = Actor.from_string("Tom Werner")
+ assert_equal "Tom Werner", a.name
+ assert_equal nil, a.email
+ end
+
+ # inspect
+
+ def test_inspect
+ a = Actor.from_string("Tom Werner <tom@example.com>")
+ assert_equal %Q{#<GitPython.Actor "Tom Werner <tom@example.com>">}, a.inspect
+ end
+end
\ No newline at end of file
diff --git a/test/test_blob.rb b/test/test_blob.rb
index 6fa087d785661843034d03c7e0b917a8a80d5d8c..9ef84cc14266141b070771706b8aeebc3dfbef82 100644
--- a/test/test_blob.rb
+++ b/test/test_blob.rb
@@ -40,9 +40,11 @@ class TestBlob < Test::Unit::TestCase
c = b.first.first
c.expects(:__bake__).times(0)
assert_equal '634396b2f541a9f2d58b00be1a07f0c358b999b3', c.id
- assert_equal 'Tom Preston-Werner', c.author
+ assert_equal 'Tom Preston-Werner', c.author.name
+ assert_equal 'tom@mojombo.com', c.author.email
assert_equal Time.at(1191997100), c.authored_date
- assert_equal 'Tom Preston-Werner', c.committer
+ assert_equal 'Tom Preston-Werner', c.committer.name
+ assert_equal 'tom@mojombo.com', c.committer.email
assert_equal Time.at(1191997100), c.committed_date
assert_equal 'initial grit setup', c.message
# c.expects(:__bake__).times(1)
diff --git a/test/test_commit.rb b/test/test_commit.rb
index 3bd6af75deda05725900eb7fd06e8107df14c655..0936c90e5b29ede2b5214d6dc26d256a8c6646f4 100644
--- a/test/test_commit.rb
+++ b/test/test_commit.rb
@@ -10,9 +10,28 @@ class TestCommit < Test::Unit::TestCase
def test_bake
Git.any_instance.expects(:rev_list).returns(fixture('rev_list_single'))
@c = Commit.create(@r, :id => '4c8124ffcf4039d292442eeccabdeca5af5c5017')
- @c.author # cause bake-age
+ @c.author # bake
- assert_equal "Tom Preston-Werner <tom@mojombo.com>", @c.author
+ assert_equal "Tom Preston-Werner", @c.author.name
+ assert_equal "tom@mojombo.com", @c.author.email
+ end
+
+ # diff
+
+ def test_diff
+ Git.any_instance.expects(:diff).returns(fixture('diff_p'))
+ diffs = Commit.diff(@r, 'master')
+
+ assert_equal 15, diffs.size
+
+ assert_equal '.gitignore', diffs.first.a_path
+ assert_equal '.gitignore', diffs.first.b_path
+ assert_equal '4ebc8ae', diffs.first.a_commit
+ assert_equal '2dd0253', diffs.first.b_commit
+ assert_equal '100644', diffs.first.mode
+ assert_equal false, diffs.first.new_file
+ assert_equal false, diffs.first.deleted_file
+ assert_equal "--- a/.gitignore\n+++ b/.gitignore\n@@ -1 +1,2 @@\n coverage\n+pkg", diffs.first.diff
end
# to_s
diff --git a/test/test_git.rb b/test/test_git.rb
index e615a035d096b6cbc984e2f4213c06d0ac785321..72a18ec424f078f6daee75dbc62265c02ba7a892 100644
--- a/test/test_git.rb
+++ b/test/test_git.rb
@@ -10,6 +10,12 @@ class TestGit < Test::Unit::TestCase
end
def test_transform_options
+ assert_equal ["-s"], @git.transform_options({:s => true})
+ assert_equal ["-s 5"], @git.transform_options({:s => 5})
+
+ assert_equal ["--max-count"], @git.transform_options({:max_count => true})
assert_equal ["--max-count=5"], @git.transform_options({:max_count => 5})
+
+ assert_equal ["-t", "-s"], @git.transform_options({:s => true, :t => true})
end
end
\ No newline at end of file
diff --git a/test/test_repo.rb b/test/test_repo.rb
index d53476a51e3286be270c7b515ec1d65e5c1716e0..114a4464fa248550be10cc4abe0735d6025b5fca 100644
--- a/test/test_repo.rb
+++ b/test/test_repo.rb
@@ -59,9 +59,11 @@ class TestRepo < Test::Unit::TestCase
assert_equal '4c8124ffcf4039d292442eeccabdeca5af5c5017', c.id
assert_equal ["634396b2f541a9f2d58b00be1a07f0c358b999b3"], c.parents.map { |p| p.id }
assert_equal "672eca9b7f9e09c22dcb128c283e8c3c8d7697a4", c.tree.id
- assert_equal "Tom Preston-Werner <tom@mojombo.com>", c.author
+ assert_equal "Tom Preston-Werner", c.author.name
+ assert_equal "tom@mojombo.com", c.author.email
assert_equal Time.at(1191999972), c.authored_date
- assert_equal "Tom Preston-Werner <tom@mojombo.com>", c.committer
+ assert_equal "Tom Preston-Werner", c.committer.name
+ assert_equal "tom@mojombo.com", c.committer.email
assert_equal Time.at(1191999972), c.committed_date
assert_equal "implement Grit#heads", c.message
@@ -125,4 +127,18 @@ class TestRepo < Test::Unit::TestCase
def test_inspect
assert_equal %Q{#<GitPython.Repo "#{File.expand_path(GRIT_REPO)}/.git">}, @r.inspect
end
-end
\ No newline at end of file
+
+ # log
+
+ def test_log
+ Git.any_instance.expects(:log).times(2).with({:pretty => 'raw'}, 'master').returns(fixture('rev_list'))
+
+ assert_equal '4c8124ffcf4039d292442eeccabdeca5af5c5017', @r.log.first.id
+ assert_equal 'ab25fd8483882c3bda8a458ad2965d2248654335', @r.log.last.id
+ end
+
+ def test_log_with_path_and_options
+ Git.any_instance.expects(:log).with({:pretty => 'raw', :max_count => 1}, 'master -- file.rb').returns(fixture('rev_list'))
+ @r.log('master', 'file.rb', :max_count => 1)
+ end
+end

View file

@ -0,0 +1,3 @@
diff --git a/rps b/rps
index f4567df37451b230b1381b1bc9c2bcad76e08a3c..736bd596a36924d30b480942e9475ce0d734fa0d 100755
Binary files a/rps and b/rps differ

View file

@ -0,0 +1,89 @@
diff --git a/path/ starting with a space b/path/ starting with a space
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ b/path/ starting with a space
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/\"with-quotes\"" "b/path/\"with-quotes\""
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/\"with-quotes\""
@@ -0,0 +1 @@
+dummy content
diff --git a/path/'with-single-quotes' b/path/'with-single-quotes'
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ b/path/'with-single-quotes'
@@ -0,0 +1 @@
+dummy content
diff --git a/path/ending in a space b/path/ending in a space
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ b/path/ending in a space
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/with\ttab" "b/path/with\ttab"
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/with\ttab"
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/with\nnewline" "b/path/with\nnewline"
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/with\nnewline"
@@ -0,0 +1 @@
+dummy content
diff --git a/path/with spaces b/path/with spaces
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ b/path/with spaces
@@ -0,0 +1 @@
+dummy content
diff --git a/path/with-question-mark? b/path/with-question-mark?
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ b/path/with-question-mark?
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/¯\\_(ツ)_|¯" "b/path/¯\\_(ツ)_|¯"
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/¯\\_(ツ)_|¯"
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/\360\237\222\251.txt" "b/path/\360\237\222\251.txt"
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/\360\237\222\251.txt"
@@ -0,0 +1 @@
+dummy content
diff --git "a/path/\200-invalid-unicode-path.txt" "b/path/\200-invalid-unicode-path.txt"
new file mode 100644
index 0000000000000000000000000000000000000000..eaf5f7510320b6a327fb308379de2f94d8859a54
--- /dev/null
+++ "b/path/\200-invalid-unicode-path.txt"
@@ -0,0 +1 @@
+dummy content
diff --git a/a/with spaces b/b/with some spaces
similarity index 100%
rename from a/with spaces
rename to b/with some spaces
diff --git a/a/ending in a space b/b/ending with space
similarity index 100%
rename from a/ending in a space
rename to b/ending with space
diff --git "a/a/\"with-quotes\"" "b/b/\"with even more quotes\""
similarity index 100%
rename from "a/\"with-quotes\""
rename to "b/\"with even more quotes\""

View file

@ -0,0 +1 @@
:100755 100755 f4567df37451b230b1381b1bc9c2bcad76e08a3c 736bd596a36924d30b480942e9475ce0d734fa0d M rps

View file

@ -0,0 +1,12 @@
commit 2524c44334a8ba6b2ab8f3f0a478f04c5b073cc8
tree e126e7b4203dadf083f5eb8e2f34c255b51d8bee
parent d789e23b9ea8d90221d13c46f7c228d729385f92
author Michael Trier <mtrier@gmail.com> 1229389391 -0500
committer Michael Trier <mtrier@gmail.com> 1229389391 -0500
Renamed AUTHORS to CONTRIBUTORS because it's cooler.
diff --git a/AUTHORS b/CONTRIBUTORS
similarity index 100%
rename from Jérôme
rename to müller

View file

@ -0,0 +1 @@
:100644 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 R100 this that

View file

@ -0,0 +1,3 @@
634396b2f541a9f2d58b00be1a07f0c358b999b3
18 29 a.txt
5 0 b.txt

View file

@ -0,0 +1,46 @@
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git://gitorious.org/~byron/git-python/byrons-clone.git
pushurl = git@gitorious.org:~byron/git-python/byrons-clone.git
# a tab indented section header
[branch "master"]
remote = origin
merge = refs/heads/master
# an space indented section header
[remote "mainline"]
# space indented comment
url = git://gitorious.org/git-python/mainline.git
fetch = +refs/heads/*:refs/remotes/mainline/*
[remote "MartinMarcher"]
# tab indented comment
url = git://gitorious.org/~martin.marcher/git-python/serverhorror.git
fetch = +refs/heads/*:refs/remotes/MartinMarcher/*
# can handle comments - the section name is supposed to be stripped
# causes stock git-config puke
[ gui ]
geometry = 1316x820+219+243 207 192
[branch "mainline_performance"]
remote = mainline
merge = refs/heads/master
# section with value defined before include to be overriden
[sec]
var0 = value0_main
[include]
path = doesntexist.cfg
# field should be 'path' so abspath should be ignored
abspath = /usr/bin/foodoesntexist.bar
path = /usr/bin/foodoesntexist.bar
# should be relative to the path of this config file
path = ./git_config-inc.cfg
# and defined after include. According to the documentation
# and behavior of git config, this should be the value since
# inclusions should be processed immediately
[sec]
var1 = value1_main

View file

@ -0,0 +1,5 @@
[sec]
var0 = value0_included
var1 = value1_included
[diff]
tool = diff_included

View file

@ -0,0 +1,25 @@
# just a comment
[alias]
st = status
ci = commit
co = checkout
br = branch
[color]
branch = auto
diff = auto
interactive = auto
status = auto
[user]
name = Sebastian Thiel
email = byronimo@gmail.com
[core]
editor = vim
autocrlf = false
packedGitLimit = 1g
packedGitWindowSize = 512m
[pack]
windowMemory = 512m
[merge]
tool = meld
[diff]
tool = meld

View file

@ -0,0 +1,7 @@
[section0]
option0 = value0
[section1]
option1 = value1a
option1 = value1b
other_option1 = other_value1

View file

@ -0,0 +1,183 @@
[user]
name = Cody Veal
email = cveal05@gmail.com
[github]
user = cjhveal
[advice]
statusHints = false
[alias]
# add
a = add
aa = add --all
ap = add --patch
aliases = !git config --list | grep 'alias\\.' | sed 's/alias\\.\\([^=]*\\)=\\(.*\\)/\\1\\\t => \\2/' | sort
# branch
br = branch
branches = branch -av
cp = cherry-pick
diverges = !bash -c 'diff -u <(git rev-list --first-parent "${1}") <(git rev-list --first-parent "${2:-HEAD}"g | sed -ne \"s/^ //p\" | head -1' -
track = checkout -t
nb = checkout -b
# commit
amend = commit --amend -C HEAD
c = commit
ca = commit --amend
cm = commit --message
msg = commit --allow-empty -m
co = checkout
# diff
d = diff --color-words # diff by word
ds = diff --staged --color-words
dd = diff --color-words=. # diff by char
dds = diff --staged --color-words=.
dl = diff # diff by line
dls = diff --staged
h = help
# log
authors = "!git log --pretty=format:%aN | sort | uniq -c | sort -rn"
lc = log ORIG_HEAD.. --stat --no-merges
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
lol = log --graph --decorate --pretty=oneline --abbrev-commit
lola = log --graph --decorate --pretty=oneline --abbrev-commit --all
# merge
m = merge
mm = merge --no-ff
ours = "!f() { git checkout --ours $@ && git add $@; }; f"
theirs = "!f() { git checkout --theirs $@ && git add $@; }; f"
# push/pull
l = pull
p = push
sync = !git pull && git push
# remotes
prune-remotes = "!for remote in `git remote`; do git remote prune $remote; done"
r = remote
# rebase
rb = rebase
rba = rebase --abort
rbc = rebase --continue
rbs = rebase --skip
# reset
rh = reset --hard
rhh = reset HEAD --hard
uncommit = reset --soft HEAD^
unstage = reset HEAD --
unpush = push -f origin HEAD^:master
# stash
ss = stash
sl = stash list
sp = stash pop
sd = stash drop
snapshot = !git stash save "snapshot: $(date)" && git stash apply "stash@{0}"
# status
s = status --short --branch
st = status
# submodule
sm = submodule
sma = submodule add
smu = submodule update --init
pup = !git pull && git submodule init && git submodule update
# file level ignoring
assume = update-index --assume-unchanged
unassume = update-index --no-assume-unchanged
assumed = "!git ls-files -v | grep ^h | cut -c 3-"
[apply]
whitespace = fix
[color]
ui = auto
[color "branch"]
current = yellow reverse
local = yellow
remote = green
[color "diff"]
meta = yellow
frag = magenta
old = red bold
new = green bold
whitespace = red reverse
[color "status"]
added = green
changed = yellow
untracked = cyan
[core]
editor = /usr/bin/vim
excludesfile = ~/.gitignore_global
attributesfile = ~/.gitattributes
[diff]
renames = copies
mnemonicprefix = true
[diff "zip"]
textconv = unzip -c -a
[merge]
log = true
[merge "railsschema"]
name = newer Rails schema version
driver = "ruby -e '\n\
system %(git), %(merge-file), %(--marker-size=%L), %(%A), %(%O), %(%B)\n\
b = File.read(%(%A))\n\
b.sub!(/^<+ .*\\nActiveRecord::Schema\\.define.:version => (\\d+). do\\n=+\\nActiveRecord::Schema\\.define.:version => (\\d+). do\\n>+ .*/) do\n\
%(ActiveRecord::Schema.define(:version => #{[$1, $2].max}) do)\n\
end\n\
File.open(%(%A), %(w)) {|f| f.write(b)}\n\
exit 1 if b.include?(%(<)*%L)'"
[merge "gemfilelock"]
name = relocks the gemfile.lock
driver = bundle lock
[pager]
color = true
[push]
default = upstream
[rerere]
enabled = true
[url "git@github.com:"]
insteadOf = "gh:"
pushInsteadOf = "github:"
pushInsteadOf = "git://github.com/"
[url "git://github.com/"]
insteadOf = "github:"
[url "git@gist.github.com:"]
insteadOf = "gst:"
pushInsteadOf = "gist:"
pushInsteadOf = "git://gist.github.com/"
[url "git://gist.github.com/"]
insteadOf = "gist:"
[url "git@heroku.com:"]
insteadOf = "heroku:"

View file

@ -0,0 +1,4 @@
[color]
ui
[core]
filemode = true

View file

@ -0,0 +1 @@
gitdir: ./.real

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
100644 blob 81d2c27608b352814cbe979a6acd678d30219678 History.txt
100644 blob 641972d82c6d1b51122274ae8f6a0ecdfb56ee22 Manifest.txt
100644 blob 8b1e02c0fb554eed2ce2ef737a68bb369d7527df README.txt
100644 blob 735d7338b7cb208563aa282f0376c5c4049453a7 Rakefile
040000 tree c3d07b0083f01a6e1ac969a0f32b8d06f20c62e5 bin
040000 tree aa06ba24b4e3f463b3c4a85469d0fb9e5b421cf8 lib
040000 tree 650fa3f0c17f1edb4ae53d8dcca4ac59d86e6c44 test

View file

@ -0,0 +1,2 @@
100644 blob aa94e396335d2957ca92606f909e53e7beaf3fbb grit.rb
040000 tree 34868e6e7384cb5ee51c543a8187fdff2675b5a7 grit

View file

@ -0,0 +1,3 @@
040000 tree 2afb47bcedf21663580d5e6d2f406f08f3f65f19 foo
160000 commit d35b34c6e931b9da8f6941007a92c9c9a9b0141a bar
040000 tree f623ee576a09ca491c4a27e48c0dfe04be5f4a2e baz

View file

@ -0,0 +1,460 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version
69361d96a59381fde0ac34d19df2d4aff05fb9a9 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1272612605 +0200 checkout: moving from 69361d96a59381fde0ac34d19df2d4aff05fb9a9 to integration
69361d96a59381fde0ac34d19df2d4aff05fb9a9 b75c3103a700ac65b6cd18f66e2d0a07cfc09797 Sebastian Thiel <byronimo@gmail.com> 1272612605 +0200 pull git://gitorious.org/git-python/mainline.git refs/merge-requests/14: Merge made by recursive.
b75c3103a700ac65b6cd18f66e2d0a07cfc09797 0d6ceabf5b90e7c0690360fc30774d36644f563c Sebastian Thiel <byronimo@gmail.com> 1272614223 +0200 commit: Added additional tz_offset testing in performance test to call it more often.
0d6ceabf5b90e7c0690360fc30774d36644f563c 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1272614242 +0200 checkout: moving from integration to master
69361d96a59381fde0ac34d19df2d4aff05fb9a9 0d6ceabf5b90e7c0690360fc30774d36644f563c Sebastian Thiel <byronimo@gmail.com> 1272614247 +0200 merge integration: Fast-forward
0d6ceabf5b90e7c0690360fc30774d36644f563c 997b7611dc5ec41d0e3860e237b530f387f3524a Sebastian Thiel <byronimo@gmail.com> 1272874921 +0200 checkout: moving from master to 997b7611dc5ec41d0e3860e237b530f387f3524a
997b7611dc5ec41d0e3860e237b530f387f3524a 0d6ceabf5b90e7c0690360fc30774d36644f563c Sebastian Thiel <byronimo@gmail.com> 1272919096 +0200 checkout: moving from 997b7611dc5ec41d0e3860e237b530f387f3524a to master
22a0289972b365b7912340501b52ca3dd98be289 143b927307d46ccb8f1cc095739e9625c03c82ff Sebastian Thiel <byronimo@gmail.com> 1272988814 +0200 commit: TODO: Removed all entries but left a mesage about where to find the issuee on lighthouse.
143b927307d46ccb8f1cc095739e9625c03c82ff e41c727be8dbf8f663e67624b109d9f8b135a4ab Sebastian Thiel <byronimo@gmail.com> 1273140152 +0200 commit: README: Added mailing list and issue tracker information
c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba Sebastian Thiel <byronimo@gmail.com> 1273522280 +0200 checkout: moving from c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba to integration
c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba de5bc8f7076c5736ef1efa57345564fbc563bd19 Sebastian Thiel <byronimo@gmail.com> 1273522570 +0200 commit: Handle filenames with embedded spaces when generating diffs
de5bc8f7076c5736ef1efa57345564fbc563bd19 8caeec1b15645fa53ec5ddc6e990e7030ffb7c5a Sebastian Thiel <byronimo@gmail.com> 1273529174 +0200 commit: IndexFile.add: Fixed incorrect path handling if path rewriting was desired and absolute paths were given
600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c de5bc8f7076c5736ef1efa57345564fbc563bd19 Sebastian Thiel <byronimo@gmail.com> 1274808939 +0200 checkout: moving from master to master~2
de5bc8f7076c5736ef1efa57345564fbc563bd19 600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c Sebastian Thiel <byronimo@gmail.com> 1274808999 +0200 checkout: moving from de5bc8f7076c5736ef1efa57345564fbc563bd19 to master
600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba Sebastian Thiel <byronimo@gmail.com> 1274809635 +0200 checkout: moving from master to HEAD~3
c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba 600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c Sebastian Thiel <byronimo@gmail.com> 1274809694 +0200 checkout: moving from c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba to master
600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1274811103 +0200 commit: diff: by limiting the splitcount to 5, a subtle bug was introduced as the newline at the end of the split line was not split away automatically. Added test for this, and the trivial fix
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af 17af1f64d5f1e62d40e11b75b1dd48e843748b49 Sebastian Thiel <byronimo@gmail.com> 1274877948 +0200 commit: BlockingLockFile: added sanity check that raises IOError if the directory containing the lock was removed. This is unlikely to happen in a production envrironment, but may happen during testing, as folders are moved/deleted once the test is complete. Daemons might still be waiting for something, and they should be allowed to terminate instead of waiting for a possibly long time
17af1f64d5f1e62d40e11b75b1dd48e843748b49 34ba8ffba0b3b4d21da7bcea594cc3631e422142 Sebastian Thiel <byronimo@gmail.com> 1274906080 +0200 commit: refs: a Reference can now be created by assigning a commit or object (for convenience)
34ba8ffba0b3b4d21da7bcea594cc3631e422142 11dc82538cc1ebb537c866c8e76146e384cdfe24 Sebastian Thiel <byronimo@gmail.com> 1274906333 +0200 commit: refs: a Reference can now be created by assigning a commit or object (for convenience)
11dc82538cc1ebb537c866c8e76146e384cdfe24 34ba8ffba0b3b4d21da7bcea594cc3631e422142 Sebastian Thiel <byronimo@gmail.com> 1274906338 +0200 HEAD~1: updating HEAD
34ba8ffba0b3b4d21da7bcea594cc3631e422142 de84cbdd0f9ef97fcd3477b31b040c57192e28d9 Sebastian Thiel <byronimo@gmail.com> 1274906431 +0200 commit (amend): refs: a Reference can now be created by assigning a commit or object (for convenience)
de84cbdd0f9ef97fcd3477b31b040c57192e28d9 ecf37a1b4c2f70f1fc62a6852f40178bf08b9859 Sebastian Thiel <byronimo@gmail.com> 1274910053 +0200 commit: index: index-add fixed to always append a newline after each item. In git has unified its way it reads from stdin, now it wants all items to be terminated by a newline usually. Previously, it could have been that it really didn't want to have a termination character when the last item was written to the file. Bumped the minimum requirements to 1.7.0 to be sure it is working as I think it will.
ecf37a1b4c2f70f1fc62a6852f40178bf08b9859 1ee2afb00afaf77c883501eac8cd614c8229a444 Sebastian Thiel <byronimo@gmail.com> 1274914700 +0200 commit: cmd: By default, on linux, the parent file handles will be closed to leave the child less cluttered, and make it easier to debug as it will only have the file descriptors we set. It appears to be more stable regarding the stdin-is-closed-but-child-doesn't-realize-this issue
1ee2afb00afaf77c883501eac8cd614c8229a444 bd45e9267ab0d3f37e59ecc8b87d0ad19abad4ad Sebastian Thiel <byronimo@gmail.com> 1275324366 +0200 commit: gitcmd: may now receive extra keyword arguments to be passed directly to the subproces.Popen invocation. It could be used to pass custom environments, without changing the own one
bd45e9267ab0d3f37e59ecc8b87d0ad19abad4ad 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275324409 +0200 commit (amend): gitcmd: may now receive extra keyword arguments to be passed directly to the subproces.Popen invocation. It could be used to pass custom environments, without changing the own one (#26)
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275417756 +0200 checkout: moving from master to commit
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e 14212649c0c48d0a7e5a83430873cae20aad4c83 Sebastian Thiel <byronimo@gmail.com> 1275432496 +0200 commit: commit: initial version of commit_from_tree which could create commit objects if it could serialize itself
14212649c0c48d0a7e5a83430873cae20aad4c83 7f6aa55077819e04dace82bc3ffbdea641b3e9ce Sebastian Thiel <byronimo@gmail.com> 1275432507 +0200 commit: commit: initial version of commit_from_tree which could create commit objects if it could serialize itself
7f6aa55077819e04dace82bc3ffbdea641b3e9ce 14212649c0c48d0a7e5a83430873cae20aad4c83 Sebastian Thiel <byronimo@gmail.com> 1275432513 +0200 HEAD~1: updating HEAD
14212649c0c48d0a7e5a83430873cae20aad4c83 1a0ec7154ea961d68ecfd4dec50f9fc1718686a2 Sebastian Thiel <byronimo@gmail.com> 1275433336 +0200 commit (amend): commit: initial version of commit_from_tree which could create commit objects if it could serialize itself
1a0ec7154ea961d68ecfd4dec50f9fc1718686a2 df0892351a394d768489b5647d47b73c24d3ef5f Sebastian Thiel <byronimo@gmail.com> 1275433456 +0200 commit (amend): commit: initial version of commit_from_tree which could create commit objects if it could serialize itself
df0892351a394d768489b5647d47b73c24d3ef5f df0892351a394d768489b5647d47b73c24d3ef5f Sebastian Thiel <byronimo@gmail.com> 1275474032 +0200 checkout: moving from commit to odb
df0892351a394d768489b5647d47b73c24d3ef5f 0e88ee839eaa5966f0d652372247fd14d80f9bb3 Sebastian Thiel <byronimo@gmail.com> 1275474633 +0200 commit: commit: refactored existing code to decode commits from streams - unfortunately this involves a little bit more python involvement currently, so performance might be slightly worse than before atm
0e88ee839eaa5966f0d652372247fd14d80f9bb3 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275474676 +0200 checkout: moving from odb to master
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e 0e88ee839eaa5966f0d652372247fd14d80f9bb3 Sebastian Thiel <byronimo@gmail.com> 1275474732 +0200 checkout: moving from master to odb
0e88ee839eaa5966f0d652372247fd14d80f9bb3 714e42d6315806dff61d39d8750ef8b250fb8d82 Sebastian Thiel <byronimo@gmail.com> 1275475614 +0200 commit (amend): commit: refactored existing code to decode commits from streams - performance is slightly better
714e42d6315806dff61d39d8750ef8b250fb8d82 8c1a87d11df666d308d14e4ae7ee0e9d614296b6 Sebastian Thiel <byronimo@gmail.com> 1275475865 +0200 commit (amend): commit: refactored existing code to decode commits from streams - performance is slightly better
8c1a87d11df666d308d14e4ae7ee0e9d614296b6 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275475911 +0200 checkout: moving from odb to master
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e 8c1a87d11df666d308d14e4ae7ee0e9d614296b6 Sebastian Thiel <byronimo@gmail.com> 1275475929 +0200 checkout: moving from master to odb
8c1a87d11df666d308d14e4ae7ee0e9d614296b6 8c1a87d11df666d308d14e4ae7ee0e9d614296b6 Sebastian Thiel <byronimo@gmail.com> 1275476474 +0200 checkout: moving from odb to perftest
8c1a87d11df666d308d14e4ae7ee0e9d614296b6 4a25347d7f4c371345da2348ac6cceec7a143da2 Sebastian Thiel <byronimo@gmail.com> 1275476487 +0200 commit: Added commit-iteration test
4a25347d7f4c371345da2348ac6cceec7a143da2 4e1c89ec97ec90037583e85d0e9e71e9c845a19b Sebastian Thiel <byronimo@gmail.com> 1275488012 +0200 commit: Added performance testing foundation library, reworked existing performance tests to work on larger repositories
4e1c89ec97ec90037583e85d0e9e71e9c845a19b ae5a69f67822d81bbbd8f4af93be68703e730b37 Sebastian Thiel <byronimo@gmail.com> 1275489688 +0200 commit: commit: redesigned revlist and commit parsing, commits are always retrieved from their object information directly. This is faster, and resolves issues with the rev-list format and empty commit messages
ae5a69f67822d81bbbd8f4af93be68703e730b37 02004a7ea4d26dc45f194d3a34780a50634ef497 Sebastian Thiel <byronimo@gmail.com> 1275493157 +0200 commit: git.cmd: added test for stream section constraint used in git command, found bug of course which just didn't kick in yet
02004a7ea4d26dc45f194d3a34780a50634ef497 ae5a69f67822d81bbbd8f4af93be68703e730b37 Sebastian Thiel <byronimo@gmail.com> 1275493169 +0200 HEAD~1: updating HEAD
ae5a69f67822d81bbbd8f4af93be68703e730b37 538820055ce1bf9dd07ecda48210832f96194504 Sebastian Thiel <byronimo@gmail.com> 1275493189 +0200 commit: git.cmd: added test for stream section constraint used in git command, found bug of course which just didn't kick in yet
538820055ce1bf9dd07ecda48210832f96194504 282018b79cc8df078381097cb3aeb29ff56e83c6 Sebastian Thiel <byronimo@gmail.com> 1275502260 +0200 commit: Added first design and frame for object database. In a first step, loose objects will be written using our utilities, and certain object retrieval functionality moves into the GitObjectDatabase which is used by the repo instance
282018b79cc8df078381097cb3aeb29ff56e83c6 8c1a87d11df666d308d14e4ae7ee0e9d614296b6 Sebastian Thiel <byronimo@gmail.com> 1275502285 +0200 checkout: moving from perftest to odb
8c1a87d11df666d308d14e4ae7ee0e9d614296b6 282018b79cc8df078381097cb3aeb29ff56e83c6 Sebastian Thiel <byronimo@gmail.com> 1275502288 +0200 merge perftest: Fast-forward
282018b79cc8df078381097cb3aeb29ff56e83c6 8b86f9b399a8f5af792a04025fdeefc02883f3e5 Sebastian Thiel <byronimo@gmail.com> 1275511252 +0200 commit: initial version of loose object writing and simple cached object lookup appears to be working
8b86f9b399a8f5af792a04025fdeefc02883f3e5 6f8ce8901e21587cd2320562df412e05b5ab1731 Sebastian Thiel <byronimo@gmail.com> 1275515609 +0200 commit: added frame for object reading, including simple test
6f8ce8901e21587cd2320562df412e05b5ab1731 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275549198 +0200 checkout: moving from odb to master
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e e79999c956e2260c37449139080d351db4aa3627 Sebastian Thiel <byronimo@gmail.com> 1275549608 +0200 commit: git.cmd: moved hardcoded chunksize when duplicating stream data into easy-to-change class member variable
e79999c956e2260c37449139080d351db4aa3627 6f8ce8901e21587cd2320562df412e05b5ab1731 Sebastian Thiel <byronimo@gmail.com> 1275549707 +0200 checkout: moving from master to odb
6f8ce8901e21587cd2320562df412e05b5ab1731 e79999c956e2260c37449139080d351db4aa3627 Sebastian Thiel <byronimo@gmail.com> 1275550120 +0200 checkout: moving from odb to master
e79999c956e2260c37449139080d351db4aa3627 412632599479a8e5991a07ecb67bc52b85c60755 Sebastian Thiel <byronimo@gmail.com> 1275550524 +0200 commit: git.cmd: using communicate in the main branch of execution, which might not make a big difference, but perhaps its smarter about broken pipes.
412632599479a8e5991a07ecb67bc52b85c60755 25dca42bac17d511b7e2ebdd9d1d679e7626db5f Sebastian Thiel <byronimo@gmail.com> 1275550670 +0200 commit (amend): git.cmd: using communicate in the main branch of execution, which might not make a big difference, but perhaps its smarter about broken pipes.
25dca42bac17d511b7e2ebdd9d1d679e7626db5f 6f8ce8901e21587cd2320562df412e05b5ab1731 Sebastian Thiel <byronimo@gmail.com> 1275551315 +0200 checkout: moving from master to odb
6f8ce8901e21587cd2320562df412e05b5ab1731 38d59fc8ccccae8882fa48671377bf40a27915a7 Sebastian Thiel <byronimo@gmail.com> 1275575735 +0200 commit: odb: implemented loose object streaming, which is impossible to do efficiently considering that it copies string buffers all the time
38d59fc8ccccae8882fa48671377bf40a27915a7 26e138cb47dccc859ff219f108ce9b7d96cbcbcd Sebastian Thiel <byronimo@gmail.com> 1275582065 +0200 commit: odb: fixed streamed decompression reader ( specific tests would still be missing ) and added performance tests which are extremely promising
26e138cb47dccc859ff219f108ce9b7d96cbcbcd 4295787b65d4a85ac1e0e20741aa59ec19a97353 Sebastian Thiel <byronimo@gmail.com> 1275584658 +0200 commit: Added performance comparison to cgit ... and yes, git-python is faster :)
4295787b65d4a85ac1e0e20741aa59ec19a97353 4b4a514e51fbc7dc6ddcb27c188159d57b5d1fa9 Sebastian Thiel <byronimo@gmail.com> 1275590443 +0200 commit (amend): Added performance comparison to cgit ... and yes, git-python is faster :)
4b4a514e51fbc7dc6ddcb27c188159d57b5d1fa9 1e2b46138ba58033738a24dadccc265748fce2ca Sebastian Thiel <byronimo@gmail.com> 1275600034 +0200 commit: commit.create_from_tree now uses pure python implementation, fixed message parsing which truncated newlines although it was ilegitimate. Its up to the reader to truncate therse, nowhere in the git code I could find anyone adding newlines to commits where it is written
1e2b46138ba58033738a24dadccc265748fce2ca 1906ee4df9ae4e734288c5203cf79894dff76cab Sebastian Thiel <byronimo@gmail.com> 1275600429 +0200 commit: Fixed compatability issues with python 2.5, made sure all tests run
1906ee4df9ae4e734288c5203cf79894dff76cab b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 Sebastian Thiel <byronimo@gmail.com> 1275602940 +0200 commit: db: implemented GitObjectDB using the git command to make sure we can lookup everything. Next is to implement pack-file reading, then alternates which should allow to resolve everything
b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 Sebastian Thiel <byronimo@gmail.com> 1275643039 +0200 checkout: moving from odb to asyncredesign
b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 a1e80445ad5cb6da4c0070d7cb8af89da3b0803b Sebastian Thiel <byronimo@gmail.com> 1275655275 +0200 commit: initial version of new odb design to facilitate a channel based multi-threading implementation of all odb functions
a1e80445ad5cb6da4c0070d7cb8af89da3b0803b e746f96bcc29238b79118123028ca170adc4ff0f Sebastian Thiel <byronimo@gmail.com> 1275664928 +0200 commit: Fixed implementation after design change to deal with it - all tests run, but next there will have to be more through testing
e746f96bcc29238b79118123028ca170adc4ff0f b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 Sebastian Thiel <byronimo@gmail.com> 1275664939 +0200 checkout: moving from asyncredesign to odb
b01ca6a3e4ae9d944d799743c8ff774e2a7a82b6 e746f96bcc29238b79118123028ca170adc4ff0f Sebastian Thiel <byronimo@gmail.com> 1275664943 +0200 merge asyncredesign: Fast-forward
e746f96bcc29238b79118123028ca170adc4ff0f 25dca42bac17d511b7e2ebdd9d1d679e7626db5f Sebastian Thiel <byronimo@gmail.com> 1275664990 +0200 checkout: moving from odb to master
25dca42bac17d511b7e2ebdd9d1d679e7626db5f 6fbb69306c0e14bacb8dcb92a89af27d3d5d631f Sebastian Thiel <byronimo@gmail.com> 1275665431 +0200 commit (merge): Merge branch 'odb'
6fbb69306c0e14bacb8dcb92a89af27d3d5d631f a243827ab3346e188e99db2f9fc1f916941c9b1a Sebastian Thiel <byronimo@gmail.com> 1275685591 +0200 commit: Implemented stream tests, found a bug on the way, slowly a test-framework for streams starts to show up, but its not yet there
a243827ab3346e188e99db2f9fc1f916941c9b1a 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1275690001 +0200 commit: Removed compression flag from IStream and OStream types, as a valid object will always be compressed if generated by the system ( even future memory db's will compress it )
7c1169f6ea406fec1e26e99821e18e66437e65eb c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca Sebastian Thiel <byronimo@gmail.com> 1275746174 +0200 commit: Added basic channel implementation including test
c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca Sebastian Thiel <byronimo@gmail.com> 1275746191 +0200 checkout: moving from master to async
c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca Sebastian Thiel <byronimo@gmail.com> 1275746194 +0200 checkout: moving from async to master
c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1275746196 +0200 HEAD~1: updating HEAD
7c1169f6ea406fec1e26e99821e18e66437e65eb c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca Sebastian Thiel <byronimo@gmail.com> 1275746213 +0200 checkout: moving from master to async
c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca 65c9fe0baa579173afa5a2d463ac198d06ef4993 Sebastian Thiel <byronimo@gmail.com> 1275746839 +0200 commit: A code donation: Donating a worker thread implementation inclduding tests to Git-Python. I have the feeling it can do much good here :)
65c9fe0baa579173afa5a2d463ac198d06ef4993 50e469109eed3a752d9a1b0297f16466ad92f8d2 Sebastian Thiel <byronimo@gmail.com> 1275755186 +0200 commit: Initial pool design added, allowing for lazy channel based evaluation of inter-dependent tasks
50e469109eed3a752d9a1b0297f16466ad92f8d2 61138f2ece0cb864b933698174315c34a78835d1 Sebastian Thiel <byronimo@gmail.com> 1275760757 +0200 commit: Moved multiprocessing modules into own package, as they in fact have nothing to do with the object db. If that really works the way I want, it will become an own project, called async
61138f2ece0cb864b933698174315c34a78835d1 ab59f78341f1dd188aaf4c30526f6295c63438b1 Sebastian Thiel <byronimo@gmail.com> 1275760989 +0200 commit: Renamed mp to async, as this is a much better name for what is actually going on. The default implementation uses threads, which ends up being nothing more than async, as they are all locked down by internal and the global interpreter lock
ab59f78341f1dd188aaf4c30526f6295c63438b1 b72e2704022d889f116e49abf3e1e5d3e3192d3b Sebastian Thiel <byronimo@gmail.com> 1275778812 +0200 commit: Improved pool design and started rough implementation, top down to learn while going. Tests will be written soon for verification, its still quite theoretical
b72e2704022d889f116e49abf3e1e5d3e3192d3b ec28ad575ce1d7bb6a616ffc404f32bbb1af67b2 Sebastian Thiel <byronimo@gmail.com> 1275821305 +0200 commit: thread: adjusted worker thread not to provide an output queue anymore - this is handled by the task system
ec28ad575ce1d7bb6a616ffc404f32bbb1af67b2 b3cde0ee162b8f0cb67da981311c8f9c16050a62 Sebastian Thiel <byronimo@gmail.com> 1275840801 +0200 commit: First step of testing the pool - tasks have been separated into a new module including own tests, their design improved to prepare them for some specifics that would be needed for multiprocessing support
b3cde0ee162b8f0cb67da981311c8f9c16050a62 8d74950510bbd74aa06afe4ec4c19e4739462d6a Sebastian Thiel <byronimo@gmail.com> 1275851713 +0200 commit: Plenty of fixes in the chunking routine, made possible by a serialized chunking test. Next up, actual async processing
8d74950510bbd74aa06afe4ec4c19e4739462d6a 1b27292936c81637f6b9a7141dafaad1126f268e Sebastian Thiel <byronimo@gmail.com> 1275852711 +0200 commit (amend): Plenty of fixes in the chunking routine, made possible by a serialized chunking test. Next up, actual async processing
1b27292936c81637f6b9a7141dafaad1126f268e 867129e2950458ab75523b920a5e227e3efa8bbc Sebastian Thiel <byronimo@gmail.com> 1275858486 +0200 commit: channel.read: enhanced to be sure we don't run into non-atomicity issues related to our channel closed flag, which is the only way not to block forever on read(0) channels which were closed by a thread 'in the meanwhile'
867129e2950458ab75523b920a5e227e3efa8bbc 6335fe0abcedc99145dd1400509b7540568ac2cc Sebastian Thiel <byronimo@gmail.com> 1275860480 +0200 commit: pool: First version which works as expected in async mode. The task model is very simple still, but its getting there
6335fe0abcedc99145dd1400509b7540568ac2cc 320c5329995cc8d364a88ba83103e1db584410ce Sebastian Thiel <byronimo@gmail.com> 1275860784 +0200 commit (amend): pool: First version which works as expected in async mode. The task model is very simple still, but its getting there
320c5329995cc8d364a88ba83103e1db584410ce d759d0b97aaf5fd60a1df0ea0f60e67863a6c3d7 Sebastian Thiel <byronimo@gmail.com> 1275861899 +0200 commit (amend): pool: First version which works as expected in async mode. The task model is very simple still, but its getting there
d759d0b97aaf5fd60a1df0ea0f60e67863a6c3d7 6a252661c3bf4202a4d571f9c41d2afa48d9d75f Sebastian Thiel <byronimo@gmail.com> 1275861909 +0200 commit (amend): pool: First version which works as expected in async mode. Its just using a single task for now, but next up are dependent tasks
6a252661c3bf4202a4d571f9c41d2afa48d9d75f a8a448b7864e21db46184eab0f0a21d7725d074f Sebastian Thiel <byronimo@gmail.com> 1275899902 +0200 commit: pool.consumed_tasks: is now a queue to be thread safe, in preparation for multiple connected pools
a8a448b7864e21db46184eab0f0a21d7725d074f 856af48fbffaf1b935d513429afeb319e4795d2d Sebastian Thiel <byronimo@gmail.com> 1275905456 +0200 commit: changed scheduling and chunksize calculation in respect to the task.min_count. Previously, it would possibly not produce enough items in case T1 wants to produce less items than t2 needs ... in fact, it would work even then, committing this anyway
856af48fbffaf1b935d513429afeb319e4795d2d 619662a9138fd78df02c52cae6dc89db1d70a0e5 Sebastian Thiel <byronimo@gmail.com> 1275905984 +0200 commit (amend): changed scheduling and chunksize calculation in respect to the task.min_count, to fix theoretical option for a deadlock in serial mode, and unnecessary blocking in async mode
619662a9138fd78df02c52cae6dc89db1d70a0e5 8c3c271b0d6b5f56b86e3f177caf3e916b509b52 Sebastian Thiel <byronimo@gmail.com> 1275908735 +0200 commit: Added task order cache, and a lock to prevent us walking the graph while changing tasks
8c3c271b0d6b5f56b86e3f177caf3e916b509b52 edd9e23c766cfd51b3a6f6eee5aac0b791ef2fd0 Sebastian Thiel <byronimo@gmail.com> 1275923808 +0200 commit: added high-speed locking facilities, allowing our Queue to be faster, at least in tests, and with multiple threads. There is still an sync bug in regard to closed channels to be fixed, as the Task.set_done handling is incorrecft
edd9e23c766cfd51b3a6f6eee5aac0b791ef2fd0 583cd8807259a69fc01874b798f657c1f9ab7828 Sebastian Thiel <byronimo@gmail.com> 1275930764 +0200 commit: Moved pool utilities into util module, fixed critical issue that caused havok - lets call this a safe-state
583cd8807259a69fc01874b798f657c1f9ab7828 654e54d200135e665e07e9f0097d913a77f169da Sebastian Thiel <byronimo@gmail.com> 1275933662 +0200 commit: task: Fixed incorrect handling of channel closure. Performance is alright for up to 2 threads, but 4 are killing the queue
654e54d200135e665e07e9f0097d913a77f169da be06e87433685b5ea9cfcc131ab89c56cf8292f2 Sebastian Thiel <byronimo@gmail.com> 1275940847 +0200 commit: improved testing to test the actual async handling of the pool. there are still inconsistencies that need to be fixed, but it already improved, especially the 4-thread performance which now is as fast as the dual-threaded performance
be06e87433685b5ea9cfcc131ab89c56cf8292f2 be06e87433685b5ea9cfcc131ab89c56cf8292f2 Sebastian Thiel <byronimo@gmail.com> 1275945495 +0200 checkout: moving from async to stasks
be06e87433685b5ea9cfcc131ab89c56cf8292f2 223701e19722afb0f57fc0de6e366ade542efdc0 Sebastian Thiel <byronimo@gmail.com> 1275945637 +0200 commit: introduced a new counter keeping track of the scheduled tasks - this prevent unnecessary tasks to be scheduled as we keep track of how many items will be produced for the task at hand. This introduces additional locking, but performns well in multithreaded mode. Performance of the master queue is still a huge issue, its currently the limiting factor, as bypassing the master queue in serial moode gives 15x performance, wich is what I would need
223701e19722afb0f57fc0de6e366ade542efdc0 def0f73989047c4ddf9b11da05ad2c9c8e387331 Sebastian Thiel <byronimo@gmail.com> 1275946081 +0200 commit (amend): introduced a new counter keeping track of the scheduled tasks - this prevent unnecessary tasks to be scheduled as we keep track of how many items will be produced for the task at hand. This introduces additional locking, but performns well in multithreaded mode. Performance of the master queue is still a huge issue, its currently the limiting factor, as bypassing the master queue in serial moode gives 15x performance, wich is what I would need
def0f73989047c4ddf9b11da05ad2c9c8e387331 be06e87433685b5ea9cfcc131ab89c56cf8292f2 Sebastian Thiel <byronimo@gmail.com> 1275946086 +0200 checkout: moving from stasks to async
be06e87433685b5ea9cfcc131ab89c56cf8292f2 be06e87433685b5ea9cfcc131ab89c56cf8292f2 Sebastian Thiel <byronimo@gmail.com> 1275946311 +0200 checkout: moving from async to brute
be06e87433685b5ea9cfcc131ab89c56cf8292f2 293fa4de92c789d67de6a663d7b14a6897b14181 Sebastian Thiel <byronimo@gmail.com> 1275946483 +0200 commit: Removed qsize dependency when reading , now it puts onto the queue everytime someone reads. This does not appear very stable for now as one can, for some reason, deplete the channel, which can only happen if its closed before all tasks finish, which should already be fixed
293fa4de92c789d67de6a663d7b14a6897b14181 def0f73989047c4ddf9b11da05ad2c9c8e387331 Sebastian Thiel <byronimo@gmail.com> 1275946494 +0200 checkout: moving from brute to stasks
def0f73989047c4ddf9b11da05ad2c9c8e387331 e825f8b69760e269218b1bf1991018baf3c16b04 Sebastian Thiel <byronimo@gmail.com> 1275946688 +0200 commit: Channel now uses the AsyncQueue, boosting performance by factor 4, its a start
e825f8b69760e269218b1bf1991018baf3c16b04 898d47d1711accdfded8ee470520fdb96fb12d46 Sebastian Thiel <byronimo@gmail.com> 1275947226 +0200 commit: Task scheduled items lock now uses a dummy lock in serial mode, improving its performance considerably.
898d47d1711accdfded8ee470520fdb96fb12d46 be06e87433685b5ea9cfcc131ab89c56cf8292f2 Sebastian Thiel <byronimo@gmail.com> 1275947355 +0200 checkout: moving from stasks to async
be06e87433685b5ea9cfcc131ab89c56cf8292f2 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1275947360 +0200 merge stasks: Merge made by recursive.
3e2ba9c2028f21d11988558f3557905d21e93808 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1275948503 +0200 checkout: moving from async to master
7c1169f6ea406fec1e26e99821e18e66437e65eb 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1275948509 +0200 checkout: moving from master to async
3e2ba9c2028f21d11988558f3557905d21e93808 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1275948864 +0200 checkout: moving from async to queue
3e2ba9c2028f21d11988558f3557905d21e93808 5d996892ac76199886ba3e2754ff9c9fac2456d6 Sebastian Thiel <byronimo@gmail.com> 1275949953 +0200 commit: test implementation of async-queue with everything stripped from it that didn't seem necessary - its a failure, something is wrong - performance not much better than the original one, its depending on the condition performance actually, which I don't get faster
5d996892ac76199886ba3e2754ff9c9fac2456d6 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1275949960 +0200 checkout: moving from queue to async
3e2ba9c2028f21d11988558f3557905d21e93808 5d996892ac76199886ba3e2754ff9c9fac2456d6 Sebastian Thiel <byronimo@gmail.com> 1275979377 +0200 checkout: moving from async to queue
5d996892ac76199886ba3e2754ff9c9fac2456d6 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1275979426 +0200 checkout: moving from queue to async
3e2ba9c2028f21d11988558f3557905d21e93808 5d996892ac76199886ba3e2754ff9c9fac2456d6 Sebastian Thiel <byronimo@gmail.com> 1275979446 +0200 checkout: moving from async to queue
5d996892ac76199886ba3e2754ff9c9fac2456d6 f32ef32960ae8aa8a20c00cd3f7e78b441ee664b Sebastian Thiel <byronimo@gmail.com> 1275986714 +0200 commit: both versions of the async queue still have trouble in certain situations, at least with my totally overwritten version of the condition - the previous one was somewhat more stable it seems
f32ef32960ae8aa8a20c00cd3f7e78b441ee664b 09c3f39ceb545e1198ad7a3f470d4ec896ce1add Sebastian Thiel <byronimo@gmail.com> 1275986721 +0200 commit (amend): both versions of the async queue still have trouble in certain situations, at least with my totally overwritten version of the condition - the previous one was somewhat more stable it seems. Nonetheless, this is the fastest version so far
09c3f39ceb545e1198ad7a3f470d4ec896ce1add 3776f7a766851058f6435b9f606b16766425d7ca Sebastian Thiel <byronimo@gmail.com> 1275996284 +0200 commit: The new channeldesign actually works, but it also shows that its located at the wrong spot. The channel is nothing more than an adapter allowing to read multiple items from a thread-safe queue, the queue itself though must be 'closable' for writing, or needs something like a writable flag.
3776f7a766851058f6435b9f606b16766425d7ca 53152a824f5186452504f0b68306d10ebebee416 Sebastian Thiel <byronimo@gmail.com> 1275999838 +0200 commit: queue: adjusted queue to be closable ( without own testing yet, except for the pool which runs it ) - its not yet stable, but should be solvable.
53152a824f5186452504f0b68306d10ebebee416 619c11787742ce00a0ee8f841cec075897873c79 Sebastian Thiel <byronimo@gmail.com> 1276008468 +0200 commit: Its getting better already - intermediate commit before further chaning the task class
619c11787742ce00a0ee8f841cec075897873c79 13dd59ba5b3228820841682b59bad6c22476ff66 Sebastian Thiel <byronimo@gmail.com> 1276010743 +0200 commit: task: now deletes itself once its done - for the test this doesn't change a thing as the task deletes itself too late - its time for a paradigm change, the task should be deleted with its RPoolChannel or explicitly by the user. The test needs to adapt, and shouldn't assume anything unless the RPoolChannel is gone
13dd59ba5b3228820841682b59bad6c22476ff66 e5c0002d069382db1768349bf0c5ff40aafbf140 Sebastian Thiel <byronimo@gmail.com> 1276014012 +0200 commit: Revised task deletion works well, adjusted test to be creating new tasks all the time instead of reusing its own one, it was somewhat hard to manage its state over time and could cause bugs. It works okay, but it occasionally hangs, it appears to be an empty queue, have to gradually put certain things back in, although in the current mode of operation, it should never have empty queues from the pool to the user
e5c0002d069382db1768349bf0c5ff40aafbf140 772b95631916223e472989b43f3a31f61e237f31 Sebastian Thiel <byronimo@gmail.com> 1276017933 +0200 commit: workerthread: adjusted to use a blocking queue, it will receive termination events only with its queue, with boosts performance into brigt green levels
772b95631916223e472989b43f3a31f61e237f31 3e2ba9c2028f21d11988558f3557905d21e93808 Sebastian Thiel <byronimo@gmail.com> 1276017957 +0200 checkout: moving from queue to async
3e2ba9c2028f21d11988558f3557905d21e93808 f78d4a28f307a9d7943a06be9f919304c25ac2d9 Sebastian Thiel <byronimo@gmail.com> 1276017963 +0200 merge queue: Merge made by recursive.
f78d4a28f307a9d7943a06be9f919304c25ac2d9 15941ca090a2c3c987324fc911bbc6f89e941c47 Sebastian Thiel <byronimo@gmail.com> 1276072452 +0200 commit: queue: fixed critical bug in the notify method, as it was not at all thread-safe, causing locks to be released multiple times. Now it runs very fast, and very stable apparently.
15941ca090a2c3c987324fc911bbc6f89e941c47 f2c8d26d3b25b864ad48e6de018757266b59f708 Sebastian Thiel <byronimo@gmail.com> 1276075717 +0200 commit: thread: fixed initialization problem if an empty iterable was handed in
f2c8d26d3b25b864ad48e6de018757266b59f708 2054561da184955c4be4a92f0b4fa5c5c1c01350 Sebastian Thiel <byronimo@gmail.com> 1276075884 +0200 commit: HSCondition: using a deck to store waiters, for further speedup
2054561da184955c4be4a92f0b4fa5c5c1c01350 1090701721888474d34f8a4af28ee1bb1c3fdaaa Sebastian Thiel <byronimo@gmail.com> 1276076141 +0200 commit: HSCondition: now deriving from deque, as the AsyncQeue does, to elimitate one more level of indirection. Clearly this not good from a design standpoint, as a Condition is no Deque, but it helps speeding things up which is what this is about. Could make it a hidden class to indicate how 'special' it is
1090701721888474d34f8a4af28ee1bb1c3fdaaa a988e6985849e4f6a561b4a5468d525c25ce74fe Sebastian Thiel <byronimo@gmail.com> 1276076725 +0200 commit: HSCondition: now gets a lock even in the single-notify case, as it was required due to the non-atomiciy of the invovled operation. Removed one level of indirection for the lock, by refraining from calling my own 'wrapper' methods, which brought it back to the performance it had before the locking was introduced for the n==1 case
a988e6985849e4f6a561b4a5468d525c25ce74fe 4e6bece08aea01859a232e99a1e1ad8cc1eb7d36 Sebastian Thiel <byronimo@gmail.com> 1276084911 +0200 commit: HSCondition: Fixed terrible bug which it inherited from its default python Condition implementation, related to the notify method not being treadsafe. Although I was aware of it, I missed the first check which tests for the size - the result could be incorrect if the whole method wasn't locked.
4e6bece08aea01859a232e99a1e1ad8cc1eb7d36 ffb5b95cb2cec5c5a79234dfc47c3fcf1f724101 Sebastian Thiel <byronimo@gmail.com> 1276087661 +0200 commit: Channel: Read method revised - now it really really doesn't block anymore, and it runs faster as well, about 2/3 of the performance we have when being in serial mode
ffb5b95cb2cec5c5a79234dfc47c3fcf1f724101 0974f8737a3c56a7c076f9d0b757c6cb106324fb Sebastian Thiel <byronimo@gmail.com> 1276087839 +0200 commit (amend): Channel: Read method revised - now it really really doesn't block anymore, and it runs faster as well, about 2/3 of the performance we have when being in serial mode
0974f8737a3c56a7c076f9d0b757c6cb106324fb 57a4e09294230a36cc874a6272c71757c48139f2 Sebastian Thiel <byronimo@gmail.com> 1276090187 +0200 commit: Channel: removed pseudoconstructor, which clearly improves the design and makes it easier to constomize
57a4e09294230a36cc874a6272c71757c48139f2 07996a1a1e53ffdd2680d4bfbc2f4059687859a5 Sebastian Thiel <byronimo@gmail.com> 1276090851 +0200 commit: task: removed scheduled task support, which at some point was introduced to improve performance, but which now hinders performance, besides being unnecessary ;)
07996a1a1e53ffdd2680d4bfbc2f4059687859a5 ea81f14dafbfb24d70373c74b5f8dabf3f2225d9 Sebastian Thiel <byronimo@gmail.com> 1276094301 +0200 commit: Channel: Callbacks reviewed - they are now part of Subclasses of the default channel implementation, one of which is used as base by the Pool Read channel, releasing it of the duty to call these itself. The write channel with callback subclass allows the transformation of the item to be written
ea81f14dafbfb24d70373c74b5f8dabf3f2225d9 365fb14ced88a5571d3287ff1698582ceacd80d6 Sebastian Thiel <byronimo@gmail.com> 1276095557 +0200 commit: task: redesigned write channel access to allow the task creator to set own write channels, possibly some with callbacks installed etc.. Pool.add_task will respect the users choice now, but provide defaults which are optimized for performance
365fb14ced88a5571d3287ff1698582ceacd80d6 257a8a9441fca9a9bc384f673ba86ef5c3f1715d Sebastian Thiel <byronimo@gmail.com> 1276111194 +0200 commit: test: prepared task dependency test, which already helped to find bug in the reference counting mechanism, causing references to the pool to be kepts via cycles
257a8a9441fca9a9bc384f673ba86ef5c3f1715d 3323464f85b986cba23176271da92a478b33ab9c Sebastian Thiel <byronimo@gmail.com> 1276122289 +0200 commit: messy first version of a properly working depth-first graph method, which allows the pool to work as expected. Many more tests need to be added, and there still is a problem with shutdown as sometimes it won't kill all threads, mainly because the process came up with worker threads started, which cannot be
3323464f85b986cba23176271da92a478b33ab9c 3323464f85b986cba23176271da92a478b33ab9c Sebastian Thiel <byronimo@gmail.com> 1276122375 +0200 checkout: moving from async to async
3323464f85b986cba23176271da92a478b33ab9c 257a8a9441fca9a9bc384f673ba86ef5c3f1715d Sebastian Thiel <byronimo@gmail.com> 1276122387 +0200 HEAD~1: updating HEAD
257a8a9441fca9a9bc384f673ba86ef5c3f1715d 3323464f85b986cba23176271da92a478b33ab9c Sebastian Thiel <byronimo@gmail.com> 1276122419 +0200 checkout: moving from async to taskdep
3323464f85b986cba23176271da92a478b33ab9c cfb278d74ad01f3f1edf5e0ad113974a9555038d Sebastian Thiel <byronimo@gmail.com> 1276157672 +0200 commit: InputChannelTask now has interface for properly handling the reading from the same and different pools
cfb278d74ad01f3f1edf5e0ad113974a9555038d 01eac1a959c1fa5894a86bf11e6b92f96762bdd8 Sebastian Thiel <byronimo@gmail.com> 1276164376 +0200 commit: Added more dependency task tests, especially the single-reads are not yet fully deterministic as tasks still run into the problem that they try to write into a closed channel, it was closed by one of their task-mates who didn't know someone else was still computing
01eac1a959c1fa5894a86bf11e6b92f96762bdd8 01eac1a959c1fa5894a86bf11e6b92f96762bdd8 Sebastian Thiel <byronimo@gmail.com> 1276166920 +0200 checkout: moving from taskdep to channel
01eac1a959c1fa5894a86bf11e6b92f96762bdd8 01eac1a959c1fa5894a86bf11e6b92f96762bdd8 Sebastian Thiel <byronimo@gmail.com> 1276167802 +0200 checkout: moving from channel to taskdep
01eac1a959c1fa5894a86bf11e6b92f96762bdd8 01eac1a959c1fa5894a86bf11e6b92f96762bdd8 Sebastian Thiel <byronimo@gmail.com> 1276169390 +0200 checkout: moving from taskdep to channel
01eac1a959c1fa5894a86bf11e6b92f96762bdd8 55e757928e493ce93056822d510482e4ffcaac2d Sebastian Thiel <byronimo@gmail.com> 1276173597 +0200 commit: channel: Changed design to be more logical - a channel now has any amount of readers and writers, a ready is not connected to its writer anymore. This changes the refcounting of course, which is why the auto-cleanup for the pool is currently broken.
55e757928e493ce93056822d510482e4ffcaac2d 7c36f3648e39ace752c67c71867693ce1eee52a3 Sebastian Thiel <byronimo@gmail.com> 1276177120 +0200 commit: Now tracking the amount of concurrent writers to assure the channel is closed only when there is no one else writing to it. This assures that all tasks can continue working, and put their results accordingly. Shutdown is still not working correctly, but that should be solvable as well. Its still not perfect though ...
7c36f3648e39ace752c67c71867693ce1eee52a3 c34343d0b714d2c4657972020afea034a167a682 Sebastian Thiel <byronimo@gmail.com> 1276177952 +0200 commit: tasks can now terminate faster when no items were read, without neglecting their duty to close the channel if required. Code is a little less maintainable now, but faster, it appears
c34343d0b714d2c4657972020afea034a167a682 4c2fa54d8122e9e5bc20a938ff8ccc5caf96dafe Sebastian Thiel <byronimo@gmail.com> 1276206673 +0200 commit: tasks can now terminate faster when no items were read, without neglecting their duty to close the channel if required. Code is a little less maintainable now, but faster, it appearsgst
4c2fa54d8122e9e5bc20a938ff8ccc5caf96dafe c34343d0b714d2c4657972020afea034a167a682 Sebastian Thiel <byronimo@gmail.com> 1276206682 +0200 HEAD~1: updating HEAD
c34343d0b714d2c4657972020afea034a167a682 fbe062bf6dacd3ad63dd827d898337fa542931ac Sebastian Thiel <byronimo@gmail.com> 1276206950 +0200 commit: Added dependency-task tests, and fixed plenty of ref-count related bugs, as well as concurrency issues. Now it works okay, but the thread-shutdown is still an issue, as it causes incorrect behaviour making the tests fail. Its good, as it hints at additional issues that need to be solved. There is just a little more left on the feature side, but its nearly there
fbe062bf6dacd3ad63dd827d898337fa542931ac 6d1212e8c412b0b4802bc1080d38d54907db879d Sebastian Thiel <byronimo@gmail.com> 1276249921 +0200 commit: IMPORTANT: sometimes, when notifying waiters by releasing their lock, the lock is not actually released or they are not actually notifyied, staying in a beautysleep. This glitch is probably caused by some detail not treated correctly in the thread python module, which is something we cannot fix. It works most of the time as expected though - maybe some cleanup is not done correctly which causes this
6d1212e8c412b0b4802bc1080d38d54907db879d 01eac1a959c1fa5894a86bf11e6b92f96762bdd8 Sebastian Thiel <byronimo@gmail.com> 1276249936 +0200 checkout: moving from channel to taskdep
01eac1a959c1fa5894a86bf11e6b92f96762bdd8 18b14ade522c71000a69ff80569eda7335d6f64c Sebastian Thiel <byronimo@gmail.com> 1276249944 +0200 merge channel: Merge made by recursive.
18b14ade522c71000a69ff80569eda7335d6f64c 583e6a25b0d891a2f531a81029f2bac0c237cbf9 Sebastian Thiel <byronimo@gmail.com> 1276258825 +0200 commit (amend): Merge branch 'channel' into taskdep
583e6a25b0d891a2f531a81029f2bac0c237cbf9 5ff864138cd1e680a78522c26b583639f8f5e313 Sebastian Thiel <byronimo@gmail.com> 1276259871 +0200 commit: test.async: split test_pool up into task implenetations and related utilities, as well as the tests themselves. File became too large
5ff864138cd1e680a78522c26b583639f8f5e313 18e3252a1f655f09093a4cffd5125342a8f94f3b Sebastian Thiel <byronimo@gmail.com> 1276261131 +0200 commit: Finished dependent task testing according to the features we would currently like to see
18e3252a1f655f09093a4cffd5125342a8f94f3b 257a8a9441fca9a9bc384f673ba86ef5c3f1715d Sebastian Thiel <byronimo@gmail.com> 1276261137 +0200 checkout: moving from taskdep to async
257a8a9441fca9a9bc384f673ba86ef5c3f1715d f606937a7a21237c866efafcad33675e6539c103 Sebastian Thiel <byronimo@gmail.com> 1276261142 +0200 merge taskdep: Merge made by recursive.
f606937a7a21237c866efafcad33675e6539c103 f606937a7a21237c866efafcad33675e6539c103 Sebastian Thiel <byronimo@gmail.com> 1276261390 +0200 checkout: moving from async to cleanup
f606937a7a21237c866efafcad33675e6539c103 02de401bc0b5ab5b97736265b18c7d1d6f53b9c1 Sebastian Thiel <byronimo@gmail.com> 1276266327 +0200 commit: Improved shutdown handling - although its impossible to prevent some stderr printing thanks to the underlying threading implementation, we can at least make sure that the interpreter doesn't block during shutdown. Now it appears to be running smoothly
02de401bc0b5ab5b97736265b18c7d1d6f53b9c1 1873db442dc7511fc2c92fbaeb8d998d3e62723d Sebastian Thiel <byronimo@gmail.com> 1276266595 +0200 commit (amend): Improved shutdown handling - although its impossible to prevent some stderr printing thanks to the underlying threading implementation, we can at least make sure that the interpreter doesn't block during shutdown. Now it appears to be running smoothly
1873db442dc7511fc2c92fbaeb8d998d3e62723d e14e3f143e7260de9581aee27e5a9b2645db72de Sebastian Thiel <byronimo@gmail.com> 1276267329 +0200 commit: Removed commented-out debug code and additional debug printings. Verified it works on py2.4, 2.5 and 2.6
e14e3f143e7260de9581aee27e5a9b2645db72de f606937a7a21237c866efafcad33675e6539c103 Sebastian Thiel <byronimo@gmail.com> 1276267656 +0200 checkout: moving from cleanup to async
f606937a7a21237c866efafcad33675e6539c103 29eb123beb1c55e5db4aa652d843adccbd09ae18 Sebastian Thiel <byronimo@gmail.com> 1276267660 +0200 merge cleanup: Merge made by recursive.
29eb123beb1c55e5db4aa652d843adccbd09ae18 cac6e06cc9ef2903a15e594186445f3baa989a1a Sebastian Thiel <byronimo@gmail.com> 1276268324 +0200 commit: test_task: fixed import error, made all modules from x import * safe
cac6e06cc9ef2903a15e594186445f3baa989a1a a28942bdf01f4ddb9d0b5a0489bd6f4e101dd775 Sebastian Thiel <byronimo@gmail.com> 1276280001 +0200 commit: Added performance test, improved iterator task which will now be usable by default. It shows that there must be the notion of a producer, which can work if there are no items read
a28942bdf01f4ddb9d0b5a0489bd6f4e101dd775 9e7fbc06cbcb51efb8c88fedaeb257a435c0c162 Sebastian Thiel <byronimo@gmail.com> 1276334358 +0200 commit: Cleaned up channel design, Reader and Writer bases don't require a channel anymore, but are abstract.
9e7fbc06cbcb51efb8c88fedaeb257a435c0c162 be8955a0fbb77d673587974b763f17c214904b57 Sebastian Thiel <byronimo@gmail.com> 1276334369 +0200 commit (amend): Cleaned up channel design, Reader and Writer bases don't require a channel anymore, but are abstract.
be8955a0fbb77d673587974b763f17c214904b57 1d8a577ffc6ad7ce1465001ddebdc157aecc1617 Sebastian Thiel <byronimo@gmail.com> 1276335670 +0200 commit: channel: cleaned up inheritance hierarchy, adding mixing for callback functionality - previously the callback functionality was bound to channel based readers/writers
1d8a577ffc6ad7ce1465001ddebdc157aecc1617 eded3fb0c820761d51d462e0d96187371c1758dc Sebastian Thiel <byronimo@gmail.com> 1276339082 +0200 commit: task: improved naming of task types, improved pool test to be less dependent on starting with just the main thread
eded3fb0c820761d51d462e0d96187371c1758dc 7a0b79ee574999ecbc76696506352e4a5a0d7159 Sebastian Thiel <byronimo@gmail.com> 1276339207 +0200 commit (amend): task: improved naming of task types, improved pool test to be less dependent on starting with just the main thread
7a0b79ee574999ecbc76696506352e4a5a0d7159 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1276339273 +0200 checkout: moving from async to master
7c1169f6ea406fec1e26e99821e18e66437e65eb f91495e271597034226f1b9651345091083172c4 Sebastian Thiel <byronimo@gmail.com> 1276339280 +0200 merge async: Merge made by recursive.
f91495e271597034226f1b9651345091083172c4 5c631ca192848fed3068b31b1389cd92a0c0cdca Sebastian Thiel <byronimo@gmail.com> 1276340638 +0200 commit: Removed async from this repository, put it into own one which now comes in as external, using a git-submodule
5c631ca192848fed3068b31b1389cd92a0c0cdca f91495e271597034226f1b9651345091083172c4 Sebastian Thiel <byronimo@gmail.com> 1276345979 +0200 HEAD~1: updating HEAD
f91495e271597034226f1b9651345091083172c4 86ea63504f3e8a74cfb1d533be9d9602d2d17e27 Sebastian Thiel <byronimo@gmail.com> 1276346049 +0200 commit: Removed async from tree
86ea63504f3e8a74cfb1d533be9d9602d2d17e27 6c1faef799095f3990e9970bc2cb10aa0221cf9c Sebastian Thiel <byronimo@gmail.com> 1276356043 +0200 commit: Removed odb from project, it is now used as a submodule named gitdb, which was added instead
6c1faef799095f3990e9970bc2cb10aa0221cf9c 28ed48c93f4cc8b6dd23c951363e5bd4e6880992 Sebastian Thiel <byronimo@gmail.com> 1276503381 +0200 commit: Implemented initial version of tree serialization which appears to work according to a simple test
28ed48c93f4cc8b6dd23c951363e5bd4e6880992 fe5289ed8311fecf39913ce3ae86b1011eafe5f7 Sebastian Thiel <byronimo@gmail.com> 1276506168 +0200 commit: tree now uses less memory for its cache as it stores the bare deserialized information - this also speeds up later serialization after changes. its clear though that retrieving actual objects is slower currently as these are not cached anymore. Its worth thinking about moving these encoding, decoding routines to gitdb
fe5289ed8311fecf39913ce3ae86b1011eafe5f7 f8dabbf4f92a7023181777e9d40355562474f71a Sebastian Thiel <byronimo@gmail.com> 1276512508 +0200 commit: tree: added TreeModifier, allowing to adjust existing trees safely and or fast, while staying compatible with serialization which requires it to be sorted
f8dabbf4f92a7023181777e9d40355562474f71a d9240918aa03e49feabe43af619019805ac76786 Sebastian Thiel <byronimo@gmail.com> 1276512707 +0200 commit (amend): tree: added TreeModifier, allowing to adjust existing trees safely and or fast, while staying compatible with serialization which requires it to be sorted
d9240918aa03e49feabe43af619019805ac76786 d9240918aa03e49feabe43af619019805ac76786 Sebastian Thiel <byronimo@gmail.com> 1276520481 +0200 checkout: moving from master to index
d9240918aa03e49feabe43af619019805ac76786 af32b6e0ad4ab244dc70a5ade0f8a27ab45942f8 Sebastian Thiel <byronimo@gmail.com> 1276524270 +0200 commit: index: split index file into multiple files of a single package. This didn't reduce the file size as much as I would have liked, but certainly is a start for further 'outsourcing'
af32b6e0ad4ab244dc70a5ade0f8a27ab45942f8 0ad4af53d4704489f2fd8bd067241bf12c8ee35a Sebastian Thiel <byronimo@gmail.com> 1276525421 +0200 commit: Implemented the serializable interface - by refactoring code
0ad4af53d4704489f2fd8bd067241bf12c8ee35a abaefc59a7f2986ab344a65ef2a3653ce7dd339f Sebastian Thiel <byronimo@gmail.com> 1276527582 +0200 commit (amend): Implemented the serializable interface - by refactoring code
abaefc59a7f2986ab344a65ef2a3653ce7dd339f d9240918aa03e49feabe43af619019805ac76786 Sebastian Thiel <byronimo@gmail.com> 1276527605 +0200 checkout: moving from index to master
d9240918aa03e49feabe43af619019805ac76786 38b3cfb9b24a108e0720f7a3f8d6355f7e0bb1a9 Sebastian Thiel <byronimo@gmail.com> 1276527612 +0200 merge index: Merge made by recursive.
38b3cfb9b24a108e0720f7a3f8d6355f7e0bb1a9 c9dbf201b4f0b3c2b299464618cb4ecb624d272c Sebastian Thiel <byronimo@gmail.com> 1276529105 +0200 commit: Moved small types that had their own module into the utils module
c9dbf201b4f0b3c2b299464618cb4ecb624d272c 45e87305bd4f050c2d0309c32fe5de499fc38df3 Sebastian Thiel <byronimo@gmail.com> 1276554725 +0200 commit: Reimplemented Lock handling to be conforming to the git lock protocol, which is actually more efficient than the previous implementation
45e87305bd4f050c2d0309c32fe5de499fc38df3 06590aee389f4466e02407f39af1674366a74705 Sebastian Thiel <byronimo@gmail.com> 1276555536 +0200 commit (amend): Reimplemented Lock handling to be conforming to the git lock protocol, which is actually more efficient than the previous implementation
06590aee389f4466e02407f39af1674366a74705 1d2307532d679393ae067326e4b6fa1a2ba5cc06 Sebastian Thiel <byronimo@gmail.com> 1276556905 +0200 commit: Moved LockedFD and its test into the gitdb project
1d2307532d679393ae067326e4b6fa1a2ba5cc06 e837b901dcfac82e864f806c80f4a9cbfdb9c9f3 Sebastian Thiel <byronimo@gmail.com> 1276607908 +0200 commit: Move LazyMixin type to gitdb, index reading now uses file_contents_ro from gitdb as well
e837b901dcfac82e864f806c80f4a9cbfdb9c9f3 b82dbf538ac0d03968a0f5b7e2318891abefafaa Sebastian Thiel <byronimo@gmail.com> 1276870827 +0200 commit: GitCmd implementation of gitdb base moved to git-python where it belongs. Previously it was located in gitdb, which doesn't have any facilities to use the git command
b82dbf538ac0d03968a0f5b7e2318891abefafaa f164627a85ed7b816759871a76db258515b85678 Sebastian Thiel <byronimo@gmail.com> 1277057845 +0200 commit: db: added pure python git database
f164627a85ed7b816759871a76db258515b85678 ac62760c52abf28d1fd863f0c0dd48bc4a23d223 Sebastian Thiel <byronimo@gmail.com> 1277117506 +0200 commit: index.add: now uses gitdb.store functionality instead of git-hash-file. The python version is about as fast, but could support multithreading using async
ac62760c52abf28d1fd863f0c0dd48bc4a23d223 0fdf6c3aaff49494c47aaeb0caa04b3016e10a26 Sebastian Thiel <byronimo@gmail.com> 1277127929 +0200 commit: index: Entries are now using flags internally, instead of reducing the flag information to just the stage ( just to be closer to the git-original )
0fdf6c3aaff49494c47aaeb0caa04b3016e10a26 0aeb491d3d8f53e07fb21f36251be4880170c5ab Sebastian Thiel <byronimo@gmail.com> 1277129321 +0200 commit: index.add does not need the git clt anymore
0aeb491d3d8f53e07fb21f36251be4880170c5ab 91725f0fc59aa05ef68ab96e9b29009ce84668a5 Sebastian Thiel <byronimo@gmail.com> 1277129385 +0200 commit (amend): index.add does not need the git clt anymore
91725f0fc59aa05ef68ab96e9b29009ce84668a5 91725f0fc59aa05ef68ab96e9b29009ce84668a5 Sebastian Thiel <byronimo@gmail.com> 1277132483 +0200 checkout: moving from master to writetree
91725f0fc59aa05ef68ab96e9b29009ce84668a5 1044116d25f0311033e0951d2ab30579bba4b051 Sebastian Thiel <byronimo@gmail.com> 1277144182 +0200 commit: index: put serialization methods into new 'fun' module, this makes the calls faster as it removes one level of indirection, and makes the main file smaller, improving maintainability
1044116d25f0311033e0951d2ab30579bba4b051 69dd8750be1fbf55010a738dc1ced4655e727f23 Sebastian Thiel <byronimo@gmail.com> 1277157937 +0200 commit: index.write_tree: initial version implemented, although its not yet working correctly, a test to explicitly compare the git version with the python implementation is still missing
69dd8750be1fbf55010a738dc1ced4655e727f23 cadce432d8ef07e7293f8b760342d717bd350671 Sebastian Thiel <byronimo@gmail.com> 1277188932 +0200 commit: intermediate commit, rollback
cadce432d8ef07e7293f8b760342d717bd350671 69dd8750be1fbf55010a738dc1ced4655e727f23 Sebastian Thiel <byronimo@gmail.com> 1277189427 +0200 HEAD~1: updating HEAD
69dd8750be1fbf55010a738dc1ced4655e727f23 d2d9197cfe5d3b43cb8aee182b2e65c73ef9ab7b Sebastian Thiel <byronimo@gmail.com> 1277193172 +0200 commit: Tree-Writing now works after fixing an off-by-one error
d2d9197cfe5d3b43cb8aee182b2e65c73ef9ab7b c4f49fb232acb2c02761a82acc12c4040699685d Sebastian Thiel <byronimo@gmail.com> 1277201017 +0200 commit: index.write_tree: now uses MemoryDB, making tree handling more efficient as IO will only be done when required. A possible disadvantage though is that time is spent on compressing the trees, although only the raw data and their shas would theoretically be needed. On the other hand, compressing their data uses less memory. An optimal implementation would just sha the data, check for existance, and compress it to write it to the database right away. This would mean more specialized code though, introducing redundancy. If IStreams would know whether they contain compressed or uncompressed data, and if there was a method to get a sha from data, this would work nicely in the existing framework though
c4f49fb232acb2c02761a82acc12c4040699685d 91725f0fc59aa05ef68ab96e9b29009ce84668a5 Sebastian Thiel <byronimo@gmail.com> 1277201030 +0200 checkout: moving from writetree to master
91725f0fc59aa05ef68ab96e9b29009ce84668a5 778234d544b3f58dd415aaf10679d15b01a5281f Sebastian Thiel <byronimo@gmail.com> 1277201033 +0200 merge writetree: Merge made by recursive.
778234d544b3f58dd415aaf10679d15b01a5281f 778234d544b3f58dd415aaf10679d15b01a5281f Sebastian Thiel <byronimo@gmail.com> 1277209257 +0200 checkout: moving from master to fromtree
778234d544b3f58dd415aaf10679d15b01a5281f be97c4558992a437cde235aafc7ae2bd6df84ac8 Sebastian Thiel <byronimo@gmail.com> 1277234627 +0200 commit: Initial frame for implementing read_tree using pure python. As git-read-tree can do much more than we can ( and faster assumably ), the .new method is used to create new index instances from up to 3 trees.
be97c4558992a437cde235aafc7ae2bd6df84ac8 c0ef65b43688b1a4615a1e7332f6215f9a8abb19 Sebastian Thiel <byronimo@gmail.com> 1277245716 +0200 commit: Implemented simple tree merging and a simple test, more elaborate testing is in progress
c0ef65b43688b1a4615a1e7332f6215f9a8abb19 aea0243840a46021e6f77c759c960a06151d91c9 Sebastian Thiel <byronimo@gmail.com> 1277293745 +0200 commit: Added test for aggressive_tree_merge
aea0243840a46021e6f77c759c960a06151d91c9 1e2265a23ecec4e4d9ad60d788462e7f124f1bb7 Sebastian Thiel <byronimo@gmail.com> 1277300937 +0200 commit: fixed critical bug in traverse_trees_recursive, implemented IndexFile.new including simple test, it may be simple as the methods it uses are throroughly tested
1e2265a23ecec4e4d9ad60d788462e7f124f1bb7 778234d544b3f58dd415aaf10679d15b01a5281f Sebastian Thiel <byronimo@gmail.com> 1277300988 +0200 checkout: moving from fromtree to master
778234d544b3f58dd415aaf10679d15b01a5281f 57050184f3d962bf91511271af59ee20f3686c3f Sebastian Thiel <byronimo@gmail.com> 1277301014 +0200 merge fromtree: Merge made by recursive.
57050184f3d962bf91511271af59ee20f3686c3f 129f90aa8d83d9b250c87b0ba790605c4a2bb06a Sebastian Thiel <byronimo@gmail.com> 1277334478 +0200 commit: Multiple partly critical bugfixes related to index handling
129f90aa8d83d9b250c87b0ba790605c4a2bb06a a1adb421c2ee3e4868ea70d440dd82896219ed8f Sebastian Thiel <byronimo@gmail.com> 1277388148 +0200 commit: aggressive_tree_merge: fixed incorrect handling of one branch, it was just not implemented causing incorrect merge results. Added test to cover this issue
a1adb421c2ee3e4868ea70d440dd82896219ed8f 55dcc17c331f580b3beeb4d5decf64d3baf94f2e Sebastian Thiel <byronimo@gmail.com> 1277395720 +0200 commit (amend): aggressive_tree_merge: fixed incorrect handling of one branch, it was just not implemented causing incorrect merge results. Added test to cover this issue
55dcc17c331f580b3beeb4d5decf64d3baf94f2e ca131dd61e26f46f49ee3f70763f994cf9512665 Sebastian Thiel <byronimo@gmail.com> 1277401303 +0200 commit: GitCmdStreamReader: fixed terrible bug which only kicked in if the stream was actually empty. This is a rare case that can happen during stream testing. Theoretically there shouldn't be any empty streams of course, but practically they do exist sometimes ;)
ca131dd61e26f46f49ee3f70763f994cf9512665 feb1ea0f4aacb9ea6dc4133900e65bf34c0ee02d Sebastian Thiel <byronimo@gmail.com> 1277401306 +0200 commit (amend): GitCmdStreamReader: fixed terrible bug which only kicked in if the stream was actually empty. This is a rare case that can happen during stream testing. Theoretically there shouldn't be any empty streams of course, but practically they do exist sometimes ;); fixed stream.seek implementation, which previously used seek on standard output
feb1ea0f4aacb9ea6dc4133900e65bf34c0ee02d 402a6c2808db4333217aa300d0312836fd7923bd Sebastian Thiel <byronimo@gmail.com> 1277407147 +0200 commit: IndexFile.add: writing of the index file can now optionally be turned off. The default is to write the physical index, which is the behaviour you would expect
402a6c2808db4333217aa300d0312836fd7923bd 402a6c2808db4333217aa300d0312836fd7923bd Sebastian Thiel <byronimo@gmail.com> 1277417929 +0200 checkout: moving from master to index
402a6c2808db4333217aa300d0312836fd7923bd 4d30dfb07f78517b1ba20b88506e01678edd527c Sebastian Thiel <byronimo@gmail.com> 1277417979 +0200 commit: index.reset is now partly implemented using python, but in fact it resorts to using git-read-tree to keep the stat information when merging one tree in. After all this is what needed to be implemented in python as well
4d30dfb07f78517b1ba20b88506e01678edd527c 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 Sebastian Thiel <byronimo@gmail.com> 1277473186 +0200 commit (amend): index.reset is now partly implemented using python, but in fact it resorts to using git-read-tree to keep the stat information when merging one tree in. After all this is what needed to be implemented in python as well
58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 402a6c2808db4333217aa300d0312836fd7923bd Sebastian Thiel <byronimo@gmail.com> 1277473192 +0200 checkout: moving from index to master
402a6c2808db4333217aa300d0312836fd7923bd 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 Sebastian Thiel <byronimo@gmail.com> 1277473196 +0200 merge index: Fast-forward
58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 Sebastian Thiel <byronimo@gmail.com> 1277473218 +0200 checkout: moving from master to sha20
58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 47e3138ee978ce708a41f38a0d874376d7ae5c78 Sebastian Thiel <byronimo@gmail.com> 1277503104 +0200 commit: Adjusted all files to (hopefully) deal with the fact that all objects now use 20 byte sha's internally as it is closer to the GitDB implementation
47e3138ee978ce708a41f38a0d874376d7ae5c78 7abe9065aab9dec56015ede5f2b0082837c5dc2e Sebastian Thiel <byronimo@gmail.com> 1277745342 +0200 commit: All tests adjusted to work with the changed internal sha representation
7abe9065aab9dec56015ede5f2b0082837c5dc2e 1fe889ea0cb2547584075dc1eb77f52c54b9a8c4 Sebastian Thiel <byronimo@gmail.com> 1277745354 +0200 commit (amend): All tests adjusted to work with the changed internal sha representation
1fe889ea0cb2547584075dc1eb77f52c54b9a8c4 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 Sebastian Thiel <byronimo@gmail.com> 1277745377 +0200 checkout: moving from sha20 to master
58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 8d2239f24f6a54d98201413d4f46256df0d6a5f3 Sebastian Thiel <byronimo@gmail.com> 1277745383 +0200 merge sha20: Merge made by recursive.
8d2239f24f6a54d98201413d4f46256df0d6a5f3 f1401803ccf7db5d897a5ef4b27e2176627c430e Sebastian Thiel <byronimo@gmail.com> 1277756712 +0200 commit: Fixed performance tests which broke in the course of the sha1-20 byte changes
f1401803ccf7db5d897a5ef4b27e2176627c430e 6917ae4ce9eaa0f5ea91592988c1ea830626ac3a Sebastian Thiel <byronimo@gmail.com> 1277806256 +0200 commit: Diff: fixed bug that caused a string to end up as a blob mode
6917ae4ce9eaa0f5ea91592988c1ea830626ac3a 6917ae4ce9eaa0f5ea91592988c1ea830626ac3a Sebastian Thiel <byronimo@gmail.com> 1277819766 +0200 checkout: moving from master to docs
6917ae4ce9eaa0f5ea91592988c1ea830626ac3a 160081b9a7ca191afbec077c4bf970cfd9070d2c Sebastian Thiel <byronimo@gmail.com> 1277828911 +0200 commit: Updated and fixed sphinx API docs, which included one quick skim-through
160081b9a7ca191afbec077c4bf970cfd9070d2c 791765c0dc2d00a9ffa4bc857d09f615cfe3a759 Sebastian Thiel <byronimo@gmail.com> 1277830741 +0200 commit: Removed repo tests which for some reason left the 'repos' directory around, replaced them by a real test which actually executes code, and puts everything into the tmp directory
791765c0dc2d00a9ffa4bc857d09f615cfe3a759 77cd6659b64cb1950a82e6a3cccdda94f15ae739 Sebastian Thiel <byronimo@gmail.com> 1277834446 +0200 commit: Renamed modules utils to util, and errors to exc to be more conforming to the submodules's naming conventions
77cd6659b64cb1950a82e6a3cccdda94f15ae739 18be0972304dc7f1a2a509595de7da689bddbefa Sebastian Thiel <byronimo@gmail.com> 1277835397 +0200 commit: Removed blob.data property as there is no real reason for an exception to the rule of trying not to cache possibly heavy data. The data_stream method should be used instead
18be0972304dc7f1a2a509595de7da689bddbefa 0369384c8b79c44c5369f1b6c05046899f8886da Sebastian Thiel <byronimo@gmail.com> 1277840971 +0200 commit: revised tutorial to match the changed usage, added basic information about object databases
0369384c8b79c44c5369f1b6c05046899f8886da ee58d55133c571db6384acf916e4a1c3592be07b Sebastian Thiel <byronimo@gmail.com> 1277848046 +0200 commit: Added whatsnew and put it into the index
ee58d55133c571db6384acf916e4a1c3592be07b 77d083040248deeccb3ac1ad125eb2969b5cb370 Sebastian Thiel <byronimo@gmail.com> 1277848184 +0200 commit (amend): Added whatsnew and put it into the index
77d083040248deeccb3ac1ad125eb2969b5cb370 fde6522c40a346c8b1d588a2b8d4dd362ae1f58f Sebastian Thiel <byronimo@gmail.com> 1277848539 +0200 commit (amend): Added whatsnew and put it into the index
fde6522c40a346c8b1d588a2b8d4dd362ae1f58f 28a33ca17ac5e0816a3e24febb47ffcefa663980 Sebastian Thiel <byronimo@gmail.com> 1277991925 +0200 commit: Added further information about the required submodules, and how to install them. Incremeneted version to 0.3.0 beta1
28a33ca17ac5e0816a3e24febb47ffcefa663980 586aa65f772f69eb6d08224968c74dda1ca45612 Sebastian Thiel <byronimo@gmail.com> 1277993503 +0200 commit: Moved all source files into the source folder, separating the build from the source directory
586aa65f772f69eb6d08224968c74dda1ca45612 d2ebc6193f7205fd1686678a5707262cb1c59bb0 Sebastian Thiel <byronimo@gmail.com> 1277993585 +0200 commit (amend): Moved all source files into the source folder, separating the build from the source directory
d2ebc6193f7205fd1686678a5707262cb1c59bb0 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1277994361 +0200 checkout: moving from docs to hub/0.2
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af 7bfca5efce8988e6070e7284bd409d1a731a3fbc Sebastian Thiel <byronimo@gmail.com> 1277994419 +0200 checkout: moving from 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af to hub/0.1
7bfca5efce8988e6070e7284bd409d1a731a3fbc d2ebc6193f7205fd1686678a5707262cb1c59bb0 Sebastian Thiel <byronimo@gmail.com> 1277994469 +0200 checkout: moving from 7bfca5efce8988e6070e7284bd409d1a731a3fbc to docs
d2ebc6193f7205fd1686678a5707262cb1c59bb0 c3bd05b426a0e3dec8224244c3c9c0431d1ff130 Sebastian Thiel <byronimo@gmail.com> 1277994911 +0200 commit: Added doc-index, which helps to keep documentation of prior but still somewhat supported versions alive
c3bd05b426a0e3dec8224244c3c9c0431d1ff130 6917ae4ce9eaa0f5ea91592988c1ea830626ac3a Sebastian Thiel <byronimo@gmail.com> 1277999895 +0200 checkout: moving from docs to master
6917ae4ce9eaa0f5ea91592988c1ea830626ac3a fd96cceded27d1372bdc1a851448d2d8613f60f3 Sebastian Thiel <byronimo@gmail.com> 1277999899 +0200 merge docs: Merge made by recursive.
fd96cceded27d1372bdc1a851448d2d8613f60f3 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1278082024 +0200 checkout: moving from master to 0.2.0-beta1
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af fd96cceded27d1372bdc1a851448d2d8613f60f3 Sebastian Thiel <byronimo@gmail.com> 1278082288 +0200 checkout: moving from 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af to master
fd96cceded27d1372bdc1a851448d2d8613f60f3 f683c6623f73252645bb2819673046c9d397c567 Sebastian Thiel <byronimo@gmail.com> 1278082451 +0200 commit: Fixed broken 0.2 documentation, it didn't contain the API reference previously due to import errors and a somewhat inconsistent working tree that occurred when switching branches ...
f683c6623f73252645bb2819673046c9d397c567 a4287f65878000b42d11704692f9ea3734014b4c Sebastian Thiel <byronimo@gmail.com> 1278092317 +0200 commit: win32 compatability adjustments
a4287f65878000b42d11704692f9ea3734014b4c a4287f65878000b42d11704692f9ea3734014b4c Sebastian Thiel <byronimo@gmail.com> 1278315351 +0200 checkout: moving from master to revparse
a4287f65878000b42d11704692f9ea3734014b4c f963881e53a9f0a2746a11cb9cdfa82eb1f90d8c Sebastian Thiel <byronimo@gmail.com> 1278369330 +0200 commit: Initial version of the rev-parse routine, which doesn't work too bad, but its still rather slow and many tests are not yet implemented
f963881e53a9f0a2746a11cb9cdfa82eb1f90d8c 1c6d7830d9b87f47a0bfe82b3b5424a32e3164ad Sebastian Thiel <byronimo@gmail.com> 1278405962 +0200 commit: RevParse now generally works, but there are still some more specialized tests missing
1c6d7830d9b87f47a0bfe82b3b5424a32e3164ad a32a6bcd784fca9cb2b17365591c29d15c2f638e Sebastian Thiel <byronimo@gmail.com> 1278407809 +0200 commit: Refs now use object.new_from_sha where possible, preventing git-batch-check to be started up for sha resolution
a32a6bcd784fca9cb2b17365591c29d15c2f638e 355aa879cff8630c9eedaf151f90a229f2ba5135 Sebastian Thiel <byronimo@gmail.com> 1278410951 +0200 commit: Implemented main rev-parsing, including long hexshas, tags and refs. Short Shas still to be done
355aa879cff8630c9eedaf151f90a229f2ba5135 73959f3a2d4f224fbda03c8a8850f66f53d8cb3b Sebastian Thiel <byronimo@gmail.com> 1278418771 +0200 commit (amend): Implemented main rev-parsing, including long hexshas, tags and refs. Short Shas still to be done
73959f3a2d4f224fbda03c8a8850f66f53d8cb3b 9059525a75b91e6eb6a425f1edcc608739727168 Sebastian Thiel <byronimo@gmail.com> 1278440512 +0200 commit: Made repo.py a package to allow better localization of functions and utilities - the repo module got rather large
9059525a75b91e6eb6a425f1edcc608739727168 f068cdc5a1a13539c4a1d756ae950aab65f5348b Sebastian Thiel <byronimo@gmail.com> 1278497773 +0200 commit: Initially working implementation of short-sha parsing and interpretation, thanks to new gitdb functionality
f068cdc5a1a13539c4a1d756ae950aab65f5348b bc31651674648f026464fd4110858c4ffeac3c18 Sebastian Thiel <byronimo@gmail.com> 1278516647 +0200 commit: Adjusted previous object creators to use the rev_parse method directly. rev_parse could be adjusted not to return Objects anymore, providing better performance for those who just want a sha only. On the other hand, the method is high-level and should be convenient to use as well, its a starting point for more usually, hence its unlikely to call it in tight loops
bc31651674648f026464fd4110858c4ffeac3c18 8a73805d9b26b5a6c54f2e8d53f948df7db8b3d4 Sebastian Thiel <byronimo@gmail.com> 1278517362 +0200 commit: Added test for GitCmdObjectDB in order to verify the method is working as expected with different input
8a73805d9b26b5a6c54f2e8d53f948df7db8b3d4 01ab5b96e68657892695c99a93ef909165456689 Sebastian Thiel <byronimo@gmail.com> 1278517373 +0200 commit (amend): Added test for GitCmdObjectDB in order to verify the partial_to_complete_sha_hex is working as expected with different input ( it wasn't, of course ;) )
01ab5b96e68657892695c99a93ef909165456689 a4287f65878000b42d11704692f9ea3734014b4c Sebastian Thiel <byronimo@gmail.com> 1278517411 +0200 checkout: moving from revparse to master
a4287f65878000b42d11704692f9ea3734014b4c ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d Sebastian Thiel <byronimo@gmail.com> 1278517416 +0200 merge revparse: Merge made by recursive.
ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d a4287f65878000b42d11704692f9ea3734014b4c Sebastian Thiel <byronimo@gmail.com> 1278525786 +0200 checkout: moving from master to master~1
a4287f65878000b42d11704692f9ea3734014b4c ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d Sebastian Thiel <byronimo@gmail.com> 1278525793 +0200 checkout: moving from a4287f65878000b42d11704692f9ea3734014b4c to master
ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d 01ab5b96e68657892695c99a93ef909165456689 Sebastian Thiel <byronimo@gmail.com> 1278525803 +0200 checkout: moving from master to master^2
01ab5b96e68657892695c99a93ef909165456689 bc31651674648f026464fd4110858c4ffeac3c18 Sebastian Thiel <byronimo@gmail.com> 1278525815 +0200 checkout: moving from 01ab5b96e68657892695c99a93ef909165456689 to master^2~1
bc31651674648f026464fd4110858c4ffeac3c18 f068cdc5a1a13539c4a1d756ae950aab65f5348b Sebastian Thiel <byronimo@gmail.com> 1278525821 +0200 checkout: moving from bc31651674648f026464fd4110858c4ffeac3c18 to master^2~2
f068cdc5a1a13539c4a1d756ae950aab65f5348b 73959f3a2d4f224fbda03c8a8850f66f53d8cb3b Sebastian Thiel <byronimo@gmail.com> 1278525826 +0200 checkout: moving from f068cdc5a1a13539c4a1d756ae950aab65f5348b to master^2~4
73959f3a2d4f224fbda03c8a8850f66f53d8cb3b ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d Sebastian Thiel <byronimo@gmail.com> 1278525829 +0200 checkout: moving from 73959f3a2d4f224fbda03c8a8850f66f53d8cb3b to master
ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d 5fd6cc37fd07c25cb921b77b4f658b7e8fc132b3 Sebastian Thiel <byronimo@gmail.com> 1278536545 +0200 commit: Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
5fd6cc37fd07c25cb921b77b4f658b7e8fc132b3 76af62b3c5a26638fcad9a3fe401fba566fb7037 Sebastian Thiel <byronimo@gmail.com> 1278538933 +0200 commit (amend): Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
76af62b3c5a26638fcad9a3fe401fba566fb7037 b425301ad16f265157abdaf47f7af1c1ea879068 Sebastian Thiel <byronimo@gmail.com> 1278539147 +0200 commit (amend): Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
b425301ad16f265157abdaf47f7af1c1ea879068 3288a244428751208394d8137437878277ceb71f Sebastian Thiel <byronimo@gmail.com> 1278582561 +0200 commit: setup.py: fixed requirement - its interesting to see that there are two different keywords for distutils and setuptools, the latter one doesn't read the ones of the first one, unfortunately
3288a244428751208394d8137437878277ceb71f 08457a7a6b6ad4f518fad0d5bca094a2b5b38fbe Sebastian Thiel <byronimo@gmail.com> 1278670718 +0200 commit: Added python 2.4 support: Repo will now use the original GitCmdObjectDB in python 2.4, as the pure python implementation cannot work without memory maps
08457a7a6b6ad4f518fad0d5bca094a2b5b38fbe 258403da9c2a087b10082d26466528fce3de38d4 Sebastian Thiel <byronimo@gmail.com> 1278671744 +0200 commit: bumped verison to 0.3.0 beta2
258403da9c2a087b10082d26466528fce3de38d4 55b67e8194b8b4d9e73e27feadbf9af6593e4600 Sebastian Thiel <byronimo@gmail.com> 1278927490 +0200 pull gitorious master: Fast-forward
55b67e8194b8b4d9e73e27feadbf9af6593e4600 bcd37b68533d0cceb7e73dd1ed1428fa09f7dc17 Sebastian Thiel <byronimo@gmail.com> 1279007300 +0200 commit: Fixed incorrect use of Blob.data in performance test
bcd37b68533d0cceb7e73dd1ed1428fa09f7dc17 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279110447 +0200 commit: Added performance test to compare inst.__class__() vs type(inst)() class. The first one is faster, although I would have expected the latter one to be faster
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279130572 +0200 checkout: moving from master to integration
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 2603363b435a695f9bf1bbbd5c1c59c353ec0450 Sebastian Thiel <byronimo@gmail.com> 1279130575 +0200 pull git://gitorious.org/git-python/mainline.git refs/merge-requests/2104: Merge made by recursive.
2603363b435a695f9bf1bbbd5c1c59c353ec0450 c9c8d48a42d45d22a120e2191ae2f838483caccc Sebastian Thiel <byronimo@gmail.com> 1279130613 +0200 HEAD^2: updating HEAD
c9c8d48a42d45d22a120e2191ae2f838483caccc 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279130629 +0200 checkout: moving from integration to master
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 a64c5f23c38f06c37a0ca64796368019dfb0d818 Sebastian Thiel <byronimo@gmail.com> 1279130658 +0200 commit: Correct Repo documentation in API reference
a64c5f23c38f06c37a0ca64796368019dfb0d818 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279130719 +0200 HEAD~1: updating HEAD
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 17a172920fde8c6688c8a1a39f258629b8b73757 Sebastian Thiel <byronimo@gmail.com> 1279131269 +0200 commit: Fixed the missing Repo type documentation thanks to a hint of gasche, fixed a few more resT syntax errors on the way
17a172920fde8c6688c8a1a39f258629b8b73757 cbb58869063fe803d232f099888fe9c23510de7b Sebastian Thiel <byronimo@gmail.com> 1279197254 +0200 merge gitorious/master: Fast-forward
cbb58869063fe803d232f099888fe9c23510de7b 89422841e46efa99bda49acfbe33ee1ca5122845 Sebastian Thiel <byronimo@gmail.com> 1279533542 +0200 pull gitorious master: Fast-forward
89422841e46efa99bda49acfbe33ee1ca5122845 192472f9673b18c91ce618e64e935f91769c50e7 Sebastian Thiel <byronimo@gmail.com> 1279814094 +0200 merge gitorious/master: Fast-forward
192472f9673b18c91ce618e64e935f91769c50e7 fa3fce80aeb57299633535b9e1c9d08db710ff05 Sebastian Thiel <byronimo@gmail.com> 1281701051 +0200 commit: unicode handling in messages and trees was improved. Messages are now written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
fa3fce80aeb57299633535b9e1c9d08db710ff05 394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 Sebastian Thiel <byronimo@gmail.com> 1281702078 +0200 commit (amend): unicode handling in messages and trees was improved. Messages are now written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 Sebastian Thiel <byronimo@gmail.com> 1283969667 +0200 checkout: moving from master to integration
394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a Sebastian Thiel <byronimo@gmail.com> 1283969669 +0200 pull git://gitorious.org/git-python/mainline.git refs/merge-requests/14: Fast-forward
c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a 394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 Sebastian Thiel <byronimo@gmail.com> 1283969687 +0200 checkout: moving from integration to master
394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a Sebastian Thiel <byronimo@gmail.com> 1283969691 +0200 merge integration: Fast-forward
c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287134990 +0200 commit: Fixed bug in http://byronimo.lighthouseapp.com/projects/51787/tickets/44-remoteref-fails-when-there-is-character-in-the-name using supplied patch ( which was manually applied ).
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a fc650aa6869639548435ce2760d42c9cdd909d99 Sebastian Thiel <byronimo@gmail.com> 1287135891 +0200 commit: Added test to verify the actor class can handle unicode names correctly. This works because regex can handle unicode, and will return unicode instances instead of strings if required. Its quite amazing actually.
fc650aa6869639548435ce2760d42c9cdd909d99 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287136504 +0200 HEAD~1: updating HEAD
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287136515 +0200 checkout: moving from master to unicode
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a 0f88fb96869b6ac3ed4dac7d23310a9327d3c89c Sebastian Thiel <byronimo@gmail.com> 1287136588 +0200 commit: Added test to verify the actor type can handle and parse unicode if it is passed in
0f88fb96869b6ac3ed4dac7d23310a9327d3c89c d39889bcac1735e429ac640ac6838d0e56835afb Sebastian Thiel <byronimo@gmail.com> 1287138883 +0200 commit: Added unicode handling for author names. They will now be properly encoded into the byte stream, as well as decoded from it
d39889bcac1735e429ac640ac6838d0e56835afb 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287138889 +0200 checkout: moving from unicode to master
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a a88173281ec56cb378a293d0170e11a1bda96a55 Sebastian Thiel <byronimo@gmail.com> 1287138898 +0200 merge unicode: Merge made by recursive.
a88173281ec56cb378a293d0170e11a1bda96a55 d39889bcac1735e429ac640ac6838d0e56835afb Sebastian Thiel <byronimo@gmail.com> 1287139063 +0200 checkout: moving from master to unicode
d39889bcac1735e429ac640ac6838d0e56835afb a88173281ec56cb378a293d0170e11a1bda96a55 Sebastian Thiel <byronimo@gmail.com> 1287139078 +0200 checkout: moving from unicode to master
a88173281ec56cb378a293d0170e11a1bda96a55 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287139082 +0200 HEAD~1: updating HEAD
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a d39889bcac1735e429ac640ac6838d0e56835afb Sebastian Thiel <byronimo@gmail.com> 1287139092 +0200 checkout: moving from master to unicode
d39889bcac1735e429ac640ac6838d0e56835afb 0019d7dc8c72839d238065473a62b137c3c350f5 Sebastian Thiel <byronimo@gmail.com> 1287139239 +0200 commit (amend): Added unicode handling for author names. They will now be properly encoded into the byte stream, as well as decoded from it
0019d7dc8c72839d238065473a62b137c3c350f5 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287139252 +0200 checkout: moving from unicode to master
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a 13647590f96fb5a22cb60f12c5a70e00065a7f3a Sebastian Thiel <byronimo@gmail.com> 1287139254 +0200 merge unicode: Merge made by recursive.
13647590f96fb5a22cb60f12c5a70e00065a7f3a 94029ce1420ced83c3e5dcd181a2280b26574bc9 Sebastian Thiel <byronimo@gmail.com> 1287139994 +0200 commit: Adjusted regex to support whitespace - it was a little restrictive previously, although there was absolutely no need for that.
94029ce1420ced83c3e5dcd181a2280b26574bc9 cfd2121eda5fadd18fba6819f90efb8868fad14a Sebastian Thiel <byronimo@gmail.com> 1287729183 +0200 checkout: moving from master to dotsenko/stable
cfd2121eda5fadd18fba6819f90efb8868fad14a 7bfca5efce8988e6070e7284bd409d1a731a3fbc Sebastian Thiel <byronimo@gmail.com> 1287729293 +0200 checkout: moving from cfd2121eda5fadd18fba6819f90efb8868fad14a to HEAD~1
7bfca5efce8988e6070e7284bd409d1a731a3fbc 94029ce1420ced83c3e5dcd181a2280b26574bc9 Sebastian Thiel <byronimo@gmail.com> 1287729331 +0200 checkout: moving from 7bfca5efce8988e6070e7284bd409d1a731a3fbc to master
94029ce1420ced83c3e5dcd181a2280b26574bc9 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288000691 +0200 commit: .gitignore will now ignore netbeans projects
8858a63cb33319f3e739edcbfafdae3ec0fefa33 a2b9ded87baf0f32ae94c10c5851a0468a45f003 Sebastian Thiel <byronimo@gmail.com> 1288198935 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
a2b9ded87baf0f32ae94c10c5851a0468a45f003 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1288198941 +0200 checkout: moving from master to 0.2.0-beta1
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af a2b9ded87baf0f32ae94c10c5851a0468a45f003 Sebastian Thiel <byronimo@gmail.com> 1288198964 +0200 checkout: moving from 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af to master
a2b9ded87baf0f32ae94c10c5851a0468a45f003 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288198984 +0200 HEAD~1: updating HEAD
8858a63cb33319f3e739edcbfafdae3ec0fefa33 148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 Sebastian Thiel <byronimo@gmail.com> 1288198991 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1288198995 +0200 checkout: moving from master to 0.2.0-beta1
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af 148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 Sebastian Thiel <byronimo@gmail.com> 1288199017 +0200 checkout: moving from 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af to master
148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288199023 +0200 HEAD~1: updating HEAD
8858a63cb33319f3e739edcbfafdae3ec0fefa33 538e8265e04f69bb9bd73a10ddb4e8e9677fb140 Sebastian Thiel <byronimo@gmail.com> 1288199049 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
538e8265e04f69bb9bd73a10ddb4e8e9677fb140 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1288199066 +0200 checkout: moving from master to 0.2.0-beta1
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af ec97ed84d114ef131fa98acee4ce7be32f8c591f Sebastian Thiel <byronimo@gmail.com> 1288199163 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
ec97ed84d114ef131fa98acee4ce7be32f8c591f ec97ed84d114ef131fa98acee4ce7be32f8c591f Sebastian Thiel <byronimo@gmail.com> 1288199260 +0200 checkout: moving from ec97ed84d114ef131fa98acee4ce7be32f8c591f to 0.2fixes
ec97ed84d114ef131fa98acee4ce7be32f8c591f 538e8265e04f69bb9bd73a10ddb4e8e9677fb140 Sebastian Thiel <byronimo@gmail.com> 1288199399 +0200 checkout: moving from 0.2 to master
538e8265e04f69bb9bd73a10ddb4e8e9677fb140 97ab197140b16027975c7465a5e8786e6cc8fea1 Sebastian Thiel <byronimo@gmail.com> 1288203452 +0200 commit (amend): docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
97ab197140b16027975c7465a5e8786e6cc8fea1 3da3837fe2ec8152e1460f747d18290b52304868 Sebastian Thiel <byronimo@gmail.com> 1288203532 +0200 commit: cmd: improved error handling and debug printing
3da3837fe2ec8152e1460f747d18290b52304868 2c0b92e40ece170b59bced0cea752904823e06e7 Sebastian Thiel <byronimo@gmail.com> 1288203543 +0200 commit (amend): cmd: improved error handling and debug printing
2c0b92e40ece170b59bced0cea752904823e06e7 1b6b9510e0724bfcb4250f703ddf99d1e4020bbc Sebastian Thiel <byronimo@gmail.com> 1288205467 +0200 commit: Fixed bug that would cause the author's email to be a generic default one, instead of the existing and valid. The rest of the ConfigParser handling is correct, as it reads all configuration files available to git
1b6b9510e0724bfcb4250f703ddf99d1e4020bbc 0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f Sebastian Thiel <byronimo@gmail.com> 1288208986 +0200 commit: index.reset: updated parameter docs, but most importantly, the method now has better testing for the use of paths during reset. The IndexFile now implements this on its own, which also allows for something equivalent to git-reset --hard -- <paths>, which is not possible in the git command for some probably very good reason
0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f 702f3909520d39e8c343dece7b1e2d72e1479bbe Sebastian Thiel <byronimo@gmail.com> 1289032478 +0100 checkout: moving from master to integration
702f3909520d39e8c343dece7b1e2d72e1479bbe 0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f Sebastian Thiel <byronimo@gmail.com> 1289032798 +0100 checkout: moving from integration to master
0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f 735b28bc65964da5b181dffcccb1d05555b5acab Sebastian Thiel <byronimo@gmail.com> 1289033220 +0100 commit: test_refs: fixed failing tests just by making it less strict. It is dependent on the setup of the surrounding repository, hence the amount of ref-types found is actually variable, as long as they get more
735b28bc65964da5b181dffcccb1d05555b5acab 702f3909520d39e8c343dece7b1e2d72e1479bbe Sebastian Thiel <byronimo@gmail.com> 1289033228 +0100 checkout: moving from master to integration
702f3909520d39e8c343dece7b1e2d72e1479bbe b14a52ae2f8d6e38f57c34f8be150541cf00dafa Sebastian Thiel <byronimo@gmail.com> 1289034355 +0100 commit: Some cleanup of Daniels contribution. Now it appears to be ready for a merge
b14a52ae2f8d6e38f57c34f8be150541cf00dafa 90d73cd6ffa6e848da59cb2a35dec74e0fabd00a Sebastian Thiel <byronimo@gmail.com> 1289034615 +0100 commit (amend): Some cleanup of Daniels contribution. Now it appears to be ready for a merge
90d73cd6ffa6e848da59cb2a35dec74e0fabd00a 7bfca5efce8988e6070e7284bd409d1a731a3fbc Sebastian Thiel <byronimo@gmail.com> 1289034647 +0100 checkout: moving from integration to 0.1
7bfca5efce8988e6070e7284bd409d1a731a3fbc 90d73cd6ffa6e848da59cb2a35dec74e0fabd00a Sebastian Thiel <byronimo@gmail.com> 1289034656 +0100 merge integration: Fast-forward
90d73cd6ffa6e848da59cb2a35dec74e0fabd00a 735b28bc65964da5b181dffcccb1d05555b5acab Sebastian Thiel <byronimo@gmail.com> 1289034706 +0100 checkout: moving from 0.1 to master
735b28bc65964da5b181dffcccb1d05555b5acab bd7fb976ab0607592875b5697dc76c117a18dc73 Sebastian Thiel <byronimo@gmail.com> 1289034759 +0100 commit (amend): test_refs: fixed failing tests just by making it less strict. It is dependent on the setup of the surrounding repository, hence the amount of ref-types found is actually variable, as long as they get more
bd7fb976ab0607592875b5697dc76c117a18dc73 258403da9c2a087b10082d26466528fce3de38d4 Sebastian Thiel <byronimo@gmail.com> 1289338336 +0100 checkout: moving from master to 0.3.0-beta2
258403da9c2a087b10082d26466528fce3de38d4 bd7fb976ab0607592875b5697dc76c117a18dc73 Sebastian Thiel <byronimo@gmail.com> 1289338796 +0100 checkout: moving from 258403da9c2a087b10082d26466528fce3de38d4 to master
bd7fb976ab0607592875b5697dc76c117a18dc73 a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 Sebastian Thiel <byronimo@gmail.com> 1289379557 +0100 commit: tutorial: Fixed incorrect initialization code for bare repo, thank you, Bryan Bishop
a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 Sebastian Thiel <byronimo@gmail.com> 1289385325 +0100 checkout: moving from master to submodule
a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 a1e2f63e64875a29e8c01a7ae17f5744680167a5 Sebastian Thiel <byronimo@gmail.com> 1289817434 +0100 commit: submodule: Fleshed out interface, and a partial test which is not yet usable. It showed that the ConfigParser needs some work. If the root is set, it also needs to refer to the root_commit instead of to the root-tree, as it will have to decide whether it works on the working tree's version of the .gitmodules file or the one in the repository
a1e2f63e64875a29e8c01a7ae17f5744680167a5 4d36f8ff4d1274a8815e932285ad6dbd6b2888af Sebastian Thiel <byronimo@gmail.com> 1289819639 +0100 commit: Improved GitConfigurationParser to better deal with streams and the corresponding locks. Submodule class now operates on parent_commits, the configuration is either streamed from the repository or written directly into a blob ( or file ) dependending on whether we have a working tree checkout or not which matches our parent_commit
4d36f8ff4d1274a8815e932285ad6dbd6b2888af 00ce31ad308ff4c7ef874d2fa64374f47980c85c Sebastian Thiel <byronimo@gmail.com> 1289836392 +0100 commit: Objects: Constructor now manually checks and sets the input arguments to the local cache - previously a procedural approach was used, which was less code, but slower too. Especially in case of CommitObjects unrolling the loop manually makes a difference.
00ce31ad308ff4c7ef874d2fa64374f47980c85c f97653aa06cf84bcf160be3786b6fce49ef52961 Sebastian Thiel <byronimo@gmail.com> 1289842964 +0100 commit: Repo: added submodule query and iteration methods similar to the ones provided for Remotes, including test
f97653aa06cf84bcf160be3786b6fce49ef52961 624556eae1c292a1dc283d9dca1557e28abe8ee3 Sebastian Thiel <byronimo@gmail.com> 1289844233 +0100 commit: Optimized test-decorators, by completely removing with_bare_rw_repo, which was mainly copy-paste from with_rw_repo, what a shame
624556eae1c292a1dc283d9dca1557e28abe8ee3 ceee7d7e0d98db12067744ac3cd0ab3a49602457 Sebastian Thiel <byronimo@gmail.com> 1289855525 +0100 commit: Added partial implementation of update, but realized that using refs in general may be contradicting if a tag is given there, as well as a commit sha of the submodule. Hence it should really be only a branch
ceee7d7e0d98db12067744ac3cd0ab3a49602457 d923bce2a8964541cf804428ccf3953ebbbdcf7d Sebastian Thiel <byronimo@gmail.com> 1289863093 +0100 commit: Submodule now only supports branches to be given as hint that will svn-external like behaviour. Implemented first version of update, which works for now, but probably needs to see more features
d923bce2a8964541cf804428ccf3953ebbbdcf7d d4fd7fca515ba9b088a7c811292f76f47d16cd7b Sebastian Thiel <byronimo@gmail.com> 1289863587 +0100 commit (amend): Submodule now only supports branches to be given as hint that will svn-external like behaviour. Implemented first version of update, which works for now, but probably needs to see more features
d4fd7fca515ba9b088a7c811292f76f47d16cd7b af5abca21b56fcf641ff916bd567680888c364aa Sebastian Thiel <byronimo@gmail.com> 1289896210 +0100 commit: Added a few utility methods and improved the test. Refs need an improvement though to allow easy configuration of branch-specific settings
af5abca21b56fcf641ff916bd567680888c364aa 38b81ad137e5f5486ce97a35702c84b9f869ccef Sebastian Thiel <byronimo@gmail.com> 1289901931 +0100 commit: remote: added methods to set and query the tracking branch status of normal heads, including test.
38b81ad137e5f5486ce97a35702c84b9f869ccef 9f73e8ba55f33394161b403bf7b8c2e0e05f47b0 Sebastian Thiel <byronimo@gmail.com> 1289901972 +0100 commit (amend): remote: added methods to set and query the tracking branch status of normal heads, including test.
9f73e8ba55f33394161b403bf7b8c2e0e05f47b0 3035781875f3004734ff5fe3be77f66b3cef299e Sebastian Thiel <byronimo@gmail.com> 1289903243 +0100 commit: Improved efficiency of the submodule.update process, improved test
3035781875f3004734ff5fe3be77f66b3cef299e 21b4db556619db2ef25f0e0d90fef7e38e6713e5 Sebastian Thiel <byronimo@gmail.com> 1289903575 +0100 commit (amend): Improved efficiency of the submodule.update process, improved test
21b4db556619db2ef25f0e0d90fef7e38e6713e5 78d2cd65b8b778f3b0cfef5268b0684314ca22ef Sebastian Thiel <byronimo@gmail.com> 1289905889 +0100 commit: implemented update to_last_revision option including test. Its now possible to update submodules such as svn-externals
78d2cd65b8b778f3b0cfef5268b0684314ca22ef c750f599a1b05ac855b55abc771729a704119833 Sebastian Thiel <byronimo@gmail.com> 1289924204 +0100 commit: Implemented deletion of submodules including proper tests
c750f599a1b05ac855b55abc771729a704119833 3d061a1a506b71234f783628ba54a7bdf79bbce9 Sebastian Thiel <byronimo@gmail.com> 1289924802 +0100 commit (amend): Implemented deletion of submodules including proper tests
3d061a1a506b71234f783628ba54a7bdf79bbce9 98e6edb546116cd98abdc3b37c6744e859bbde5c Sebastian Thiel <byronimo@gmail.com> 1289930487 +0100 commit: Initial implementation of submodule.add without any tests. These are to come next
98e6edb546116cd98abdc3b37c6744e859bbde5c 33964afb47ce3af8a32e6613b0834e5f94bdfe68 Sebastian Thiel <byronimo@gmail.com> 1289938053 +0100 commit: Added tests for all failure modes of submodule add ( except for one ), and fixed a few issues on the way
33964afb47ce3af8a32e6613b0834e5f94bdfe68 7b3ef45167e1c2f7d1b7507c13fcedd914f87da9 Sebastian Thiel <byronimo@gmail.com> 1289938869 +0100 commit: The submodule's branch is now a branch instance, not a plain string anymore
7b3ef45167e1c2f7d1b7507c13fcedd914f87da9 ef48ca5f54fe31536920ec4171596ff8468db5fe Sebastian Thiel <byronimo@gmail.com> 1289950137 +0100 commit: Added rest of submodule.add test code which should be pretty much 100% coverage for it
ef48ca5f54fe31536920ec4171596ff8468db5fe e84d05f4bbf7090a9802e9cd198d1c383974cb12 Sebastian Thiel <byronimo@gmail.com> 1289989025 +0100 commit: Repo: scetched out submodule_update
e84d05f4bbf7090a9802e9cd198d1c383974cb12 403c31fe3c7075652c892ecd3b6dc6d321bb1226 Sebastian Thiel <byronimo@gmail.com> 1290001921 +0100 commit: index: Sped up reading and writing of the index file by reducing the amount of attribute lookups considerably
403c31fe3c7075652c892ecd3b6dc6d321bb1226 b03933057df80ea9f860cc616eb7733f140f866e Sebastian Thiel <byronimo@gmail.com> 1290001937 +0100 commit (amend): index: Sped up reading and writing of the index file by reducing the amount of attribute lookups considerably
b03933057df80ea9f860cc616eb7733f140f866e a1e6234c27abf041e4c8cd1a799950e7cd9104f6 Sebastian Thiel <byronimo@gmail.com> 1290003888 +0100 commit: Inital implementation of Submodule.move including a very simple and to-be-improved test
a1e6234c27abf041e4c8cd1a799950e7cd9104f6 abda960de327e922fd9eaa429bef9e92918c8387 Sebastian Thiel <byronimo@gmail.com> 1290010524 +0100 commit: submodule: removed module_path method as it is implemented in the abspath property alrdeady
abda960de327e922fd9eaa429bef9e92918c8387 609a46a72764dc71104aa5d7b1ca5f53d4237a75 Sebastian Thiel <byronimo@gmail.com> 1290011090 +0100 commit (amend): submodule: removed module_path method as it is implemented in the abspath property alrdeady
609a46a72764dc71104aa5d7b1ca5f53d4237a75 6066f04d529b04e96295b37b5cceb2556414a472 Sebastian Thiel <byronimo@gmail.com> 1290025995 +0100 commit: repo: Added create_submodule method which fits into the tradition of offering a create_* method for most important entities.
6066f04d529b04e96295b37b5cceb2556414a472 609a46a72764dc71104aa5d7b1ca5f53d4237a75 Sebastian Thiel <byronimo@gmail.com> 1290026006 +0100 HEAD~1: updating HEAD
609a46a72764dc71104aa5d7b1ca5f53d4237a75 7cc4d748a132377ffe63534e9777d7541a3253c5 Sebastian Thiel <byronimo@gmail.com> 1290026013 +0100 commit: repo: Added create_submodule method which fits into the tradition of offering a create_* method for most important entities.
7cc4d748a132377ffe63534e9777d7541a3253c5 1687283c13caf7ff8d1959591541dff6a171ca1e Sebastian Thiel <byronimo@gmail.com> 1290029890 +0100 commit: RootModule.update: initial implementation of update method, which should be able to handle submodule removals, additions, path changes and branch changes. All this still needs to be tested though
1687283c13caf7ff8d1959591541dff6a171ca1e 9a0c4009edb35bb81d7e41d7d235675ccdfcffba Sebastian Thiel <byronimo@gmail.com> 1290068415 +0100 commit: commit: when creating a new commit and advancing the head, it will now write the ORIG_HEAD reference as well
9a0c4009edb35bb81d7e41d7d235675ccdfcffba 7a320abc52307b4d4010166bd899ac75024ec9a7 Sebastian Thiel <byronimo@gmail.com> 1290068612 +0100 commit (amend): commit: when creating a new commit and advancing the head, it will now write the ORIG_HEAD reference as well
7a320abc52307b4d4010166bd899ac75024ec9a7 1185ee2c9cda379bada7e08694f13dc124b27e93 Sebastian Thiel <byronimo@gmail.com> 1290073216 +0100 commit: ORIG_HEAD handling is now implemented in the ref-class itself, instead of being a special case of the commit method; includes tests
1185ee2c9cda379bada7e08694f13dc124b27e93 82849578e61a7dfb47fc76dcbe18b1e3b6a36951 Sebastian Thiel <byronimo@gmail.com> 1290073599 +0100 commit (amend): ORIG_HEAD handling is now implemented in the ref-class itself, instead of being a special case of the commit method; includes tests
82849578e61a7dfb47fc76dcbe18b1e3b6a36951 0c1834134ce177cdbd30a56994fcc4bf8f5be8b2 Sebastian Thiel <byronimo@gmail.com> 1290076876 +0100 commit: Added test-setup which can test all aspects of the (smart) update method
0c1834134ce177cdbd30a56994fcc4bf8f5be8b2 50095005bab7ffae14cb7d2ec8faeee7eed579ee Sebastian Thiel <byronimo@gmail.com> 1290096572 +0100 commit: first update test succeeds, so it verifies that existing repositories can be moved later if the configuration changed
50095005bab7ffae14cb7d2ec8faeee7eed579ee ca86a09651674d4bd2c22fd7f2f2ae6ca1c1d3d6 Sebastian Thiel <byronimo@gmail.com> 1290097988 +0100 commit (amend): first update test succeeds, so it verifies that existing repositories can be moved later if the configuration changed
ca86a09651674d4bd2c22fd7f2f2ae6ca1c1d3d6 bf2f7449beafcfb4578d08c90370d3953ff5f073 Sebastian Thiel <byronimo@gmail.com> 1290098006 +0100 commit (amend): first update test succeeds, so it verifies that existing repositories can be moved later if the configuration changed, and actually it also verifies that the url-change is handled correctly (as we changed the url from the default to the local path)
bf2f7449beafcfb4578d08c90370d3953ff5f073 c0990b2a6dd2e777b46c1685ddb985b3c0ef59a2 Sebastian Thiel <byronimo@gmail.com> 1290098151 +0100 commit (amend): first update test succeeds, so it verifies that existing repositories can be moved later if the configuration changed, and actually it also verifies that the url-change is handled correctly (as we changed the url from the default to the local path)
c0990b2a6dd2e777b46c1685ddb985b3c0ef59a2 cf5eaddde33e983bc7b496f458bdd49154f6f498 Sebastian Thiel <byronimo@gmail.com> 1290109461 +0100 commit: Updated tests and implementation to verify functionality for handling submodule removals, as well as url changes
cf5eaddde33e983bc7b496f458bdd49154f6f498 3f2d76ba8e6d004ff5849ed8c7c34f6a4ac2e1e3 Sebastian Thiel <byronimo@gmail.com> 1290112561 +0100 commit: Added test for branch changes - it appears to work well, at least as far as the restricted tests are concerned
3f2d76ba8e6d004ff5849ed8c7c34f6a4ac2e1e3 ebe8f644e751c1b2115301c1a961bef14d2cce89 Sebastian Thiel <byronimo@gmail.com> 1290114666 +0100 commit: Added test for the recursive code path.
ebe8f644e751c1b2115301c1a961bef14d2cce89 ebe8f644e751c1b2115301c1a961bef14d2cce89 Sebastian Thiel <byronimo@gmail.com> 1290114835 +0100 checkout: moving from submodule to refactor
ebe8f644e751c1b2115301c1a961bef14d2cce89 4c34d5c3f2a4ed7194276a026e0ec6437d339c67 Sebastian Thiel <byronimo@gmail.com> 1290116693 +0100 commit: Split big submodule file into smaller files. Tried to manually get imports right, but its not yet tested
4c34d5c3f2a4ed7194276a026e0ec6437d339c67 9519f186ce757cdba217f222c95c20033d00f91d Sebastian Thiel <byronimo@gmail.com> 1290118223 +0100 commit: Fixed all imports, refactoring appears to be complete
9519f186ce757cdba217f222c95c20033d00f91d ebe8f644e751c1b2115301c1a961bef14d2cce89 Sebastian Thiel <byronimo@gmail.com> 1290118281 +0100 checkout: moving from refactor to submodule
ebe8f644e751c1b2115301c1a961bef14d2cce89 7cf2d5fcf0a3db793678dd6ba9fc1c24d4eeb36a Sebastian Thiel <byronimo@gmail.com> 1290118286 +0100 merge refactor: Merge made by recursive.
7cf2d5fcf0a3db793678dd6ba9fc1c24d4eeb36a a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 Sebastian Thiel <byronimo@gmail.com> 1290118288 +0100 checkout: moving from submodule to master
a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 f1545bd9cd6953c5b39c488bf7fe179676060499 Sebastian Thiel <byronimo@gmail.com> 1290118292 +0100 merge submodule: Merge made by recursive.
f1545bd9cd6953c5b39c488bf7fe179676060499 f1545bd9cd6953c5b39c488bf7fe179676060499 Sebastian Thiel <byronimo@gmail.com> 1290119272 +0100 checkout: moving from master to docs
f1545bd9cd6953c5b39c488bf7fe179676060499 75c75fa136f6181f6ba2e52b8b85a98d3fe1718e Sebastian Thiel <byronimo@gmail.com> 1290120222 +0100 commit: Changed name/id of gitdb submodule to something that doesn't look like a path
75c75fa136f6181f6ba2e52b8b85a98d3fe1718e a25e1d4aa7e5898ab1224d0e5cc5ecfbe8ed8821 Sebastian Thiel <byronimo@gmail.com> 1290122817 +0100 commit: Updated tutorial with a brief introduction to submodules
a25e1d4aa7e5898ab1224d0e5cc5ecfbe8ed8821 a8014d2ec56fd684dc81478dee73ca7eda0ab8a7 Sebastian Thiel <byronimo@gmail.com> 1290122851 +0100 commit: Updated gitdb submodule, and added note about how the submodule package manages its dependencies
a8014d2ec56fd684dc81478dee73ca7eda0ab8a7 f1545bd9cd6953c5b39c488bf7fe179676060499 Sebastian Thiel <byronimo@gmail.com> 1290122855 +0100 checkout: moving from docs to master
f1545bd9cd6953c5b39c488bf7fe179676060499 45c0f285a6d9d9214f8167742d12af2855f527fb Sebastian Thiel <byronimo@gmail.com> 1290122860 +0100 merge docs: Merge made by recursive.
45c0f285a6d9d9214f8167742d12af2855f527fb 315c303214cef855499f0c7eda46b7ed82dceecb Sebastian Thiel <byronimo@gmail.com> 1290158850 +0100 commit: test_submodule: fixed failures that arose due to changes of the original submodule names. Also, a major bug was fixed that cased submodules to always being updated recursively when using the RootModule.update method
315c303214cef855499f0c7eda46b7ed82dceecb 7dd618655c96ff32b5c30e41a5406c512bcbb65f Sebastian Thiel <byronimo@gmail.com> 1290158895 +0100 commit (amend): test_submodule: fixed failures that arose due to changes of the original submodule names. Also, a major bug was fixed that cased submodules to always being updated recursively when using the RootModule.update method
7dd618655c96ff32b5c30e41a5406c512bcbb65f 2ab454f0ccf09773a4f51045329a69fd73559414 Sebastian Thiel <byronimo@gmail.com> 1290188727 +0100 commit: remote: parsing of fetch information now reacts to fatal errors. Previously it would just bump into an assertion
2ab454f0ccf09773a4f51045329a69fd73559414 b00ad00130389f5b00da9dbfd89c3e02319d2999 Sebastian Thiel <byronimo@gmail.com> 1290196658 +0100 commit: submodule: When adding an existing submodule, when retrieving the binsha, we will now consider not only the tree, but the index too
b00ad00130389f5b00da9dbfd89c3e02319d2999 8867348ca772cdce7434e76eed141f035b63e928 Sebastian Thiel <byronimo@gmail.com> 1290196804 +0100 commit: Bumped version number to 0.3.1
8867348ca772cdce7434e76eed141f035b63e928 8d0aa1ef19e2c3babee458bd4504820f415148e0 Sebastian Thiel <byronimo@gmail.com> 1290271885 +0100 commit: Fixed performance tests which broke in the meanwhile - they definitely don't run often enough, which is because they intentionally don't have a package initialization file
8d0aa1ef19e2c3babee458bd4504820f415148e0 8e0e315a371cdfc80993a1532f938d56ed7acee4 Sebastian Thiel <byronimo@gmail.com> 1290280591 +0100 commit: submodule: Fixed capital error when handling the submodule's branch, which was returned in the submodules super repository, not in the submodule's module
8e0e315a371cdfc80993a1532f938d56ed7acee4 7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e Sebastian Thiel <byronimo@gmail.com> 1290286993 +0100 merge gitorious/win32: Merge made by recursive.
7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e 7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e Sebastian Thiel <byronimo@gmail.com> 1290287857 +0100 checkout: moving from master to osx
7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e 6c6223b854e4c7985b08493a027b47f668493832 Sebastian Thiel <byronimo@gmail.com> 1290287908 +0100 commit: testing:added special case for osx to solve a special issue with the temp directory
6c6223b854e4c7985b08493a027b47f668493832 20b07fa542d2376a287435a26c967a5ee104667f Sebastian Thiel <byronimo@gmail.com> 1290288287 +0100 commit (amend): testing:added special case for osx to solve a special issue with the temp directory
20b07fa542d2376a287435a26c967a5ee104667f 7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e Sebastian Thiel <byronimo@gmail.com> 1290288327 +0100 checkout: moving from osx to master
7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e 517ae56f517f5e7253f878dd1dc3c7c49f53df1a Sebastian Thiel <byronimo@gmail.com> 1290288333 +0100 merge osx: Merge made by recursive.
517ae56f517f5e7253f878dd1dc3c7c49f53df1a 22a88a7ec38e29827264f558f0c1691b99102e23 Sebastian Thiel <byronimo@gmail.com> 1290289085 +0100 commit: fixed performance tests ... again, previously I was just working on an incorrect repository
22a88a7ec38e29827264f558f0c1691b99102e23 685760ab33b8f9d7455b18a9ecb8c4c5b3315d66 Sebastian Thiel <byronimo@gmail.com> 1290342054 +0100 commit: Added zip_safe info to setup.py file
685760ab33b8f9d7455b18a9ecb8c4c5b3315d66 9d6310db456de9952453361c860c3ae61b8674ea Sebastian Thiel <byronimo@gmail.com> 1290342681 +0100 commit: docs: added final docs for version 0.3.0, started new release 0.3.1
9d6310db456de9952453361c860c3ae61b8674ea 0b813371f5a8af95152cae109d28c7c97bfaf79f Sebastian Thiel <byronimo@gmail.com> 1290358083 +0100 commit: Fixed API reference docs as far as possible
0b813371f5a8af95152cae109d28c7c97bfaf79f 0b813371f5a8af95152cae109d28c7c97bfaf79f Sebastian Thiel <byronimo@gmail.com> 1290363019 +0100 checkout: moving from master to structure
0b813371f5a8af95152cae109d28c7c97bfaf79f fafe8a77db75083de3e7af92185ecdb7f2d542d3 Sebastian Thiel <byronimo@gmail.com> 1290363468 +0100 commit: moved all contents, incl. submodule gitdb, up to the root directory
fafe8a77db75083de3e7af92185ecdb7f2d542d3 e6019e16d5a74dc49eb7129ee7fd78b4de51dac2 Sebastian Thiel <byronimo@gmail.com> 1290363544 +0100 commit: flattened test folder structure, didn't adjust any file content yet
e6019e16d5a74dc49eb7129ee7fd78b4de51dac2 83a9e4a0dad595188ff3fb35bc3dfc4d931eff6d Sebastian Thiel <byronimo@gmail.com> 1290366107 +0100 commit: Fixed setup script to work with changed folder structure
83a9e4a0dad595188ff3fb35bc3dfc4d931eff6d 557800a1eba3b9cface0f319d8e6aa6bd2ec188d Sebastian Thiel <byronimo@gmail.com> 1290367011 +0100 commit: Updated MANIFEST and setup to include fixtures. Adjusted includes in all tests to work with the new directory structure
557800a1eba3b9cface0f319d8e6aa6bd2ec188d 9ca0f897376e765989e92e44628228514f431458 Sebastian Thiel <byronimo@gmail.com> 1290371673 +0100 commit (amend): Updated MANIFEST and setup to include fixtures. Adjusted includes in all tests to work with the new directory structure
9ca0f897376e765989e92e44628228514f431458 0b813371f5a8af95152cae109d28c7c97bfaf79f Sebastian Thiel <byronimo@gmail.com> 1290372294 +0100 checkout: moving from structure to master
0b813371f5a8af95152cae109d28c7c97bfaf79f 9ca0f897376e765989e92e44628228514f431458 Sebastian Thiel <byronimo@gmail.com> 1290372302 +0100 checkout: moving from master to structure
9ca0f897376e765989e92e44628228514f431458 6befb28efd86556e45bb0b213bcfbfa866cac379 Sebastian Thiel <byronimo@gmail.com> 1290372430 +0100 commit: updated changelog
6befb28efd86556e45bb0b213bcfbfa866cac379 0b813371f5a8af95152cae109d28c7c97bfaf79f Sebastian Thiel <byronimo@gmail.com> 1290372432 +0100 checkout: moving from structure to master
0b813371f5a8af95152cae109d28c7c97bfaf79f 94140bbfc523ae13e1e8045ebfed8a76fe0a1872 Sebastian Thiel <byronimo@gmail.com> 1290372438 +0100 merge structure: Merge made by recursive.
94140bbfc523ae13e1e8045ebfed8a76fe0a1872 d01b428dbac4103b4f7d7b8fca32e01f70746c53 Sebastian Thiel <byronimo@gmail.com> 1290372442 +0100 commit (amend): !!WARNING!!: Directory structure changed, see commit message for instructions
d01b428dbac4103b4f7d7b8fca32e01f70746c53 db3423d1eab11d00c5475e36eae8952512b07f4e Sebastian Thiel <byronimo@gmail.com> 1290373147 +0100 commit (amend): !**WARNING**!: Directory structure changed, see commit message for instructions
db3423d1eab11d00c5475e36eae8952512b07f4e 5ed5b2011ec7cf72f19e6d53b588eea4adca68e5 Sebastian Thiel <byronimo@gmail.com> 1290373168 +0100 commit (amend): *!*WARNING*!*: Directory structure changed, see commit message for instructions
5ed5b2011ec7cf72f19e6d53b588eea4adca68e5 470d4a7cc865d2702c326d9d1d1b0ab7afb49f0e Sebastian Thiel <byronimo@gmail.com> 1290373186 +0100 commit (amend): !##WARNING##!: Directory structure changed, see commit message for instructions
470d4a7cc865d2702c326d9d1d1b0ab7afb49f0e e088424eb01bd47c6f0d313f465a21ee742e6f4a Sebastian Thiel <byronimo@gmail.com> 1290373209 +0100 commit (amend): If you use git-python as a submodule of your own project, which alters the sys.path to import it,
e088424eb01bd47c6f0d313f465a21ee742e6f4a 48a17c87c15b2fa7ce2e84afa09484f354d57a39 Sebastian Thiel <byronimo@gmail.com> 1290373245 +0100 commit (amend): -#######->WARNING<-####### Directory structure changed, see commit message
48a17c87c15b2fa7ce2e84afa09484f354d57a39 fca367548e365f93c58c47dea45507025269f59a Sebastian Thiel <byronimo@gmail.com> 1290374761 +0100 commit: Changed version to 0.3.1 (removed beta1) so that other projects can actually depend on git-python using the setuptools. Previously it would claim the version did not exist, probably because the setuptools are just comparing strings
fca367548e365f93c58c47dea45507025269f59a fca367548e365f93c58c47dea45507025269f59a Sebastian Thiel <byronimo@gmail.com> 1290435685 +0100 checkout: moving from master to refs
fca367548e365f93c58c47dea45507025269f59a dec4663129f72321a14efd6de63f14a7419e3ed2 Sebastian Thiel <byronimo@gmail.com> 1290500057 +0100 commit: Split ref implementation up into multiple files, to make room for the log implementation
dec4663129f72321a14efd6de63f14a7419e3ed2 fca367548e365f93c58c47dea45507025269f59a Sebastian Thiel <byronimo@gmail.com> 1290500094 +0100 checkout: moving from refs to master
fca367548e365f93c58c47dea45507025269f59a dec4663129f72321a14efd6de63f14a7419e3ed2 Sebastian Thiel <byronimo@gmail.com> 1290500104 +0100 checkout: moving from master to refs
dec4663129f72321a14efd6de63f14a7419e3ed2 739fa140235cc9d65c632eaf1f5cacc944d87cfb Sebastian Thiel <byronimo@gmail.com> 1290501284 +0100 commit: Fixed remaining tests - lets hope that everything is indeed working correctly - as imports changed, every line of code needs to be run to assure all names can be resolved
739fa140235cc9d65c632eaf1f5cacc944d87cfb d89b2cbcd57ecd5600ecf0202b396141c1a856a3 Sebastian Thiel <byronimo@gmail.com> 1290512134 +0100 commit: Initial interface including some of the implementation of the RefLog. TestCase scetched out for now
d89b2cbcd57ecd5600ecf0202b396141c1a856a3 6e5aae2fc8c3832bdae1cd5e0a269405fb059231 Sebastian Thiel <byronimo@gmail.com> 1290512159 +0100 commit (amend): Initial interface including some of the implementation of the RefLog. TestCase scetched out for now

View file

@ -0,0 +1,2 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1271229940 commit: conf.py: Adjusted version to match with the actual version

View file

@ -0,0 +1,2 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail. 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version

View file

@ -0,0 +1,2 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d Sebastian Thiel <byronimo@gmail.com> 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version

View file

@ -0,0 +1,2 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb3 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version

View file

@ -0,0 +1,2 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version

View file

@ -0,0 +1,124 @@
501bf602abea7d21c3dbb409b435976e92033145 82b8902e033430000481eb355733cd7065342037 Sebastian Thiel <byronimo@gmail.com> 1270634931 +0200 commit: Used this release for a first beta of the 0.2 branch of development
82b8902e033430000481eb355733cd7065342037 69361d96a59381fde0ac34d19df2d4aff05fb9a9 Sebastian Thiel <byronimo@gmail.com> 1271229940 +0200 commit: conf.py: Adjusted version to match with the actual version
69361d96a59381fde0ac34d19df2d4aff05fb9a9 0d6ceabf5b90e7c0690360fc30774d36644f563c Sebastian Thiel <byronimo@gmail.com> 1272614247 +0200 merge integration: Fast-forward
22a0289972b365b7912340501b52ca3dd98be289 143b927307d46ccb8f1cc095739e9625c03c82ff Sebastian Thiel <byronimo@gmail.com> 1272988814 +0200 commit: TODO: Removed all entries but left a mesage about where to find the issuee on lighthouse.
143b927307d46ccb8f1cc095739e9625c03c82ff e41c727be8dbf8f663e67624b109d9f8b135a4ab Sebastian Thiel <byronimo@gmail.com> 1273140152 +0200 commit: README: Added mailing list and issue tracker information
c083f3d0b853e723d0d4b00ff2f1ec5f65f05cba de5bc8f7076c5736ef1efa57345564fbc563bd19 Sebastian Thiel <byronimo@gmail.com> 1273522570 +0200 commit: Handle filenames with embedded spaces when generating diffs
de5bc8f7076c5736ef1efa57345564fbc563bd19 8caeec1b15645fa53ec5ddc6e990e7030ffb7c5a Sebastian Thiel <byronimo@gmail.com> 1273529174 +0200 commit: IndexFile.add: Fixed incorrect path handling if path rewriting was desired and absolute paths were given
600fcbc1a2d723f8d51e5f5ab6d9e4c389010e1c 1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af Sebastian Thiel <byronimo@gmail.com> 1274811103 +0200 commit: diff: by limiting the splitcount to 5, a subtle bug was introduced as the newline at the end of the split line was not split away automatically. Added test for this, and the trivial fix
1019d4cf68d1acdbb4d6c1abb7e71ac9c0f581af 17af1f64d5f1e62d40e11b75b1dd48e843748b49 Sebastian Thiel <byronimo@gmail.com> 1274877948 +0200 commit: BlockingLockFile: added sanity check that raises IOError if the directory containing the lock was removed. This is unlikely to happen in a production envrironment, but may happen during testing, as folders are moved/deleted once the test is complete. Daemons might still be waiting for something, and they should be allowed to terminate instead of waiting for a possibly long time
17af1f64d5f1e62d40e11b75b1dd48e843748b49 34ba8ffba0b3b4d21da7bcea594cc3631e422142 Sebastian Thiel <byronimo@gmail.com> 1274906080 +0200 commit: refs: a Reference can now be created by assigning a commit or object (for convenience)
34ba8ffba0b3b4d21da7bcea594cc3631e422142 11dc82538cc1ebb537c866c8e76146e384cdfe24 Sebastian Thiel <byronimo@gmail.com> 1274906333 +0200 commit: refs: a Reference can now be created by assigning a commit or object (for convenience)
11dc82538cc1ebb537c866c8e76146e384cdfe24 34ba8ffba0b3b4d21da7bcea594cc3631e422142 Sebastian Thiel <byronimo@gmail.com> 1274906338 +0200 HEAD~1: updating HEAD
34ba8ffba0b3b4d21da7bcea594cc3631e422142 de84cbdd0f9ef97fcd3477b31b040c57192e28d9 Sebastian Thiel <byronimo@gmail.com> 1274906431 +0200 commit (amend): refs: a Reference can now be created by assigning a commit or object (for convenience)
de84cbdd0f9ef97fcd3477b31b040c57192e28d9 ecf37a1b4c2f70f1fc62a6852f40178bf08b9859 Sebastian Thiel <byronimo@gmail.com> 1274910053 +0200 commit: index: index-add fixed to always append a newline after each item. In git has unified its way it reads from stdin, now it wants all items to be terminated by a newline usually. Previously, it could have been that it really didn't want to have a termination character when the last item was written to the file. Bumped the minimum requirements to 1.7.0 to be sure it is working as I think it will.
ecf37a1b4c2f70f1fc62a6852f40178bf08b9859 1ee2afb00afaf77c883501eac8cd614c8229a444 Sebastian Thiel <byronimo@gmail.com> 1274914700 +0200 commit: cmd: By default, on linux, the parent file handles will be closed to leave the child less cluttered, and make it easier to debug as it will only have the file descriptors we set. It appears to be more stable regarding the stdin-is-closed-but-child-doesn't-realize-this issue
1ee2afb00afaf77c883501eac8cd614c8229a444 bd45e9267ab0d3f37e59ecc8b87d0ad19abad4ad Sebastian Thiel <byronimo@gmail.com> 1275324366 +0200 commit: gitcmd: may now receive extra keyword arguments to be passed directly to the subproces.Popen invocation. It could be used to pass custom environments, without changing the own one
bd45e9267ab0d3f37e59ecc8b87d0ad19abad4ad 6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e Sebastian Thiel <byronimo@gmail.com> 1275324409 +0200 commit (amend): gitcmd: may now receive extra keyword arguments to be passed directly to the subproces.Popen invocation. It could be used to pass custom environments, without changing the own one (#26)
6d9b1f4f9fa8c9f030e3207e7deacc5d5f8bba4e e79999c956e2260c37449139080d351db4aa3627 Sebastian Thiel <byronimo@gmail.com> 1275549608 +0200 commit: git.cmd: moved hardcoded chunksize when duplicating stream data into easy-to-change class member variable
e79999c956e2260c37449139080d351db4aa3627 412632599479a8e5991a07ecb67bc52b85c60755 Sebastian Thiel <byronimo@gmail.com> 1275550524 +0200 commit: git.cmd: using communicate in the main branch of execution, which might not make a big difference, but perhaps its smarter about broken pipes.
412632599479a8e5991a07ecb67bc52b85c60755 25dca42bac17d511b7e2ebdd9d1d679e7626db5f Sebastian Thiel <byronimo@gmail.com> 1275550670 +0200 commit (amend): git.cmd: using communicate in the main branch of execution, which might not make a big difference, but perhaps its smarter about broken pipes.
25dca42bac17d511b7e2ebdd9d1d679e7626db5f 6fbb69306c0e14bacb8dcb92a89af27d3d5d631f Sebastian Thiel <byronimo@gmail.com> 1275665431 +0200 commit (merge): Merge branch 'odb'
6fbb69306c0e14bacb8dcb92a89af27d3d5d631f a243827ab3346e188e99db2f9fc1f916941c9b1a Sebastian Thiel <byronimo@gmail.com> 1275685591 +0200 commit: Implemented stream tests, found a bug on the way, slowly a test-framework for streams starts to show up, but its not yet there
a243827ab3346e188e99db2f9fc1f916941c9b1a 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1275690001 +0200 commit: Removed compression flag from IStream and OStream types, as a valid object will always be compressed if generated by the system ( even future memory db's will compress it )
7c1169f6ea406fec1e26e99821e18e66437e65eb c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca Sebastian Thiel <byronimo@gmail.com> 1275746174 +0200 commit: Added basic channel implementation including test
c69b6b979e3d6bd01ec40e75b92b21f7a391f0ca 7c1169f6ea406fec1e26e99821e18e66437e65eb Sebastian Thiel <byronimo@gmail.com> 1275746196 +0200 HEAD~1: updating HEAD
7c1169f6ea406fec1e26e99821e18e66437e65eb f91495e271597034226f1b9651345091083172c4 Sebastian Thiel <byronimo@gmail.com> 1276339280 +0200 merge async: Merge made by recursive.
f91495e271597034226f1b9651345091083172c4 5c631ca192848fed3068b31b1389cd92a0c0cdca Sebastian Thiel <byronimo@gmail.com> 1276340638 +0200 commit: Removed async from this repository, put it into own one which now comes in as external, using a git-submodule
5c631ca192848fed3068b31b1389cd92a0c0cdca f91495e271597034226f1b9651345091083172c4 Sebastian Thiel <byronimo@gmail.com> 1276345979 +0200 HEAD~1: updating HEAD
f91495e271597034226f1b9651345091083172c4 86ea63504f3e8a74cfb1d533be9d9602d2d17e27 Sebastian Thiel <byronimo@gmail.com> 1276346049 +0200 commit: Removed async from tree
86ea63504f3e8a74cfb1d533be9d9602d2d17e27 6c1faef799095f3990e9970bc2cb10aa0221cf9c Sebastian Thiel <byronimo@gmail.com> 1276356043 +0200 commit: Removed odb from project, it is now used as a submodule named gitdb, which was added instead
6c1faef799095f3990e9970bc2cb10aa0221cf9c 28ed48c93f4cc8b6dd23c951363e5bd4e6880992 Sebastian Thiel <byronimo@gmail.com> 1276503381 +0200 commit: Implemented initial version of tree serialization which appears to work according to a simple test
28ed48c93f4cc8b6dd23c951363e5bd4e6880992 fe5289ed8311fecf39913ce3ae86b1011eafe5f7 Sebastian Thiel <byronimo@gmail.com> 1276506168 +0200 commit: tree now uses less memory for its cache as it stores the bare deserialized information - this also speeds up later serialization after changes. its clear though that retrieving actual objects is slower currently as these are not cached anymore. Its worth thinking about moving these encoding, decoding routines to gitdb
fe5289ed8311fecf39913ce3ae86b1011eafe5f7 f8dabbf4f92a7023181777e9d40355562474f71a Sebastian Thiel <byronimo@gmail.com> 1276512508 +0200 commit: tree: added TreeModifier, allowing to adjust existing trees safely and or fast, while staying compatible with serialization which requires it to be sorted
f8dabbf4f92a7023181777e9d40355562474f71a d9240918aa03e49feabe43af619019805ac76786 Sebastian Thiel <byronimo@gmail.com> 1276512707 +0200 commit (amend): tree: added TreeModifier, allowing to adjust existing trees safely and or fast, while staying compatible with serialization which requires it to be sorted
d9240918aa03e49feabe43af619019805ac76786 38b3cfb9b24a108e0720f7a3f8d6355f7e0bb1a9 Sebastian Thiel <byronimo@gmail.com> 1276527612 +0200 merge index: Merge made by recursive.
38b3cfb9b24a108e0720f7a3f8d6355f7e0bb1a9 c9dbf201b4f0b3c2b299464618cb4ecb624d272c Sebastian Thiel <byronimo@gmail.com> 1276529105 +0200 commit: Moved small types that had their own module into the utils module
c9dbf201b4f0b3c2b299464618cb4ecb624d272c 45e87305bd4f050c2d0309c32fe5de499fc38df3 Sebastian Thiel <byronimo@gmail.com> 1276554725 +0200 commit: Reimplemented Lock handling to be conforming to the git lock protocol, which is actually more efficient than the previous implementation
45e87305bd4f050c2d0309c32fe5de499fc38df3 06590aee389f4466e02407f39af1674366a74705 Sebastian Thiel <byronimo@gmail.com> 1276555536 +0200 commit (amend): Reimplemented Lock handling to be conforming to the git lock protocol, which is actually more efficient than the previous implementation
06590aee389f4466e02407f39af1674366a74705 1d2307532d679393ae067326e4b6fa1a2ba5cc06 Sebastian Thiel <byronimo@gmail.com> 1276556905 +0200 commit: Moved LockedFD and its test into the gitdb project
1d2307532d679393ae067326e4b6fa1a2ba5cc06 e837b901dcfac82e864f806c80f4a9cbfdb9c9f3 Sebastian Thiel <byronimo@gmail.com> 1276607908 +0200 commit: Move LazyMixin type to gitdb, index reading now uses file_contents_ro from gitdb as well
e837b901dcfac82e864f806c80f4a9cbfdb9c9f3 b82dbf538ac0d03968a0f5b7e2318891abefafaa Sebastian Thiel <byronimo@gmail.com> 1276870827 +0200 commit: GitCmd implementation of gitdb base moved to git-python where it belongs. Previously it was located in gitdb, which doesn't have any facilities to use the git command
b82dbf538ac0d03968a0f5b7e2318891abefafaa f164627a85ed7b816759871a76db258515b85678 Sebastian Thiel <byronimo@gmail.com> 1277057845 +0200 commit: db: added pure python git database
f164627a85ed7b816759871a76db258515b85678 ac62760c52abf28d1fd863f0c0dd48bc4a23d223 Sebastian Thiel <byronimo@gmail.com> 1277117506 +0200 commit: index.add: now uses gitdb.store functionality instead of git-hash-file. The python version is about as fast, but could support multithreading using async
ac62760c52abf28d1fd863f0c0dd48bc4a23d223 0fdf6c3aaff49494c47aaeb0caa04b3016e10a26 Sebastian Thiel <byronimo@gmail.com> 1277127929 +0200 commit: index: Entries are now using flags internally, instead of reducing the flag information to just the stage ( just to be closer to the git-original )
0fdf6c3aaff49494c47aaeb0caa04b3016e10a26 0aeb491d3d8f53e07fb21f36251be4880170c5ab Sebastian Thiel <byronimo@gmail.com> 1277129321 +0200 commit: index.add does not need the git clt anymore
0aeb491d3d8f53e07fb21f36251be4880170c5ab 91725f0fc59aa05ef68ab96e9b29009ce84668a5 Sebastian Thiel <byronimo@gmail.com> 1277129385 +0200 commit (amend): index.add does not need the git clt anymore
91725f0fc59aa05ef68ab96e9b29009ce84668a5 778234d544b3f58dd415aaf10679d15b01a5281f Sebastian Thiel <byronimo@gmail.com> 1277201033 +0200 merge writetree: Merge made by recursive.
778234d544b3f58dd415aaf10679d15b01a5281f 57050184f3d962bf91511271af59ee20f3686c3f Sebastian Thiel <byronimo@gmail.com> 1277301014 +0200 merge fromtree: Merge made by recursive.
57050184f3d962bf91511271af59ee20f3686c3f 129f90aa8d83d9b250c87b0ba790605c4a2bb06a Sebastian Thiel <byronimo@gmail.com> 1277334478 +0200 commit: Multiple partly critical bugfixes related to index handling
129f90aa8d83d9b250c87b0ba790605c4a2bb06a a1adb421c2ee3e4868ea70d440dd82896219ed8f Sebastian Thiel <byronimo@gmail.com> 1277388148 +0200 commit: aggressive_tree_merge: fixed incorrect handling of one branch, it was just not implemented causing incorrect merge results. Added test to cover this issue
a1adb421c2ee3e4868ea70d440dd82896219ed8f 55dcc17c331f580b3beeb4d5decf64d3baf94f2e Sebastian Thiel <byronimo@gmail.com> 1277395720 +0200 commit (amend): aggressive_tree_merge: fixed incorrect handling of one branch, it was just not implemented causing incorrect merge results. Added test to cover this issue
55dcc17c331f580b3beeb4d5decf64d3baf94f2e ca131dd61e26f46f49ee3f70763f994cf9512665 Sebastian Thiel <byronimo@gmail.com> 1277401303 +0200 commit: GitCmdStreamReader: fixed terrible bug which only kicked in if the stream was actually empty. This is a rare case that can happen during stream testing. Theoretically there shouldn't be any empty streams of course, but practically they do exist sometimes ;)
ca131dd61e26f46f49ee3f70763f994cf9512665 feb1ea0f4aacb9ea6dc4133900e65bf34c0ee02d Sebastian Thiel <byronimo@gmail.com> 1277401306 +0200 commit (amend): GitCmdStreamReader: fixed terrible bug which only kicked in if the stream was actually empty. This is a rare case that can happen during stream testing. Theoretically there shouldn't be any empty streams of course, but practically they do exist sometimes ;); fixed stream.seek implementation, which previously used seek on standard output
feb1ea0f4aacb9ea6dc4133900e65bf34c0ee02d 402a6c2808db4333217aa300d0312836fd7923bd Sebastian Thiel <byronimo@gmail.com> 1277407147 +0200 commit: IndexFile.add: writing of the index file can now optionally be turned off. The default is to write the physical index, which is the behaviour you would expect
402a6c2808db4333217aa300d0312836fd7923bd 58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 Sebastian Thiel <byronimo@gmail.com> 1277473196 +0200 merge index: Fast-forward
58fb1187b7b8f1e62d3930bdba9be5aba47a52c6 8d2239f24f6a54d98201413d4f46256df0d6a5f3 Sebastian Thiel <byronimo@gmail.com> 1277745383 +0200 merge sha20: Merge made by recursive.
8d2239f24f6a54d98201413d4f46256df0d6a5f3 f1401803ccf7db5d897a5ef4b27e2176627c430e Sebastian Thiel <byronimo@gmail.com> 1277756712 +0200 commit: Fixed performance tests which broke in the course of the sha1-20 byte changes
f1401803ccf7db5d897a5ef4b27e2176627c430e 6917ae4ce9eaa0f5ea91592988c1ea830626ac3a Sebastian Thiel <byronimo@gmail.com> 1277806256 +0200 commit: Diff: fixed bug that caused a string to end up as a blob mode
6917ae4ce9eaa0f5ea91592988c1ea830626ac3a fd96cceded27d1372bdc1a851448d2d8613f60f3 Sebastian Thiel <byronimo@gmail.com> 1277999899 +0200 merge docs: Merge made by recursive.
fd96cceded27d1372bdc1a851448d2d8613f60f3 f683c6623f73252645bb2819673046c9d397c567 Sebastian Thiel <byronimo@gmail.com> 1278082451 +0200 commit: Fixed broken 0.2 documentation, it didn't contain the API reference previously due to import errors and a somewhat inconsistent working tree that occurred when switching branches ...
f683c6623f73252645bb2819673046c9d397c567 a4287f65878000b42d11704692f9ea3734014b4c Sebastian Thiel <byronimo@gmail.com> 1278092317 +0200 commit: win32 compatability adjustments
a4287f65878000b42d11704692f9ea3734014b4c ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d Sebastian Thiel <byronimo@gmail.com> 1278517416 +0200 merge revparse: Merge made by recursive.
ca288d443f4fc9d790eecb6e1cdf82b6cdd8dc0d 5fd6cc37fd07c25cb921b77b4f658b7e8fc132b3 Sebastian Thiel <byronimo@gmail.com> 1278536545 +0200 commit: Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
5fd6cc37fd07c25cb921b77b4f658b7e8fc132b3 76af62b3c5a26638fcad9a3fe401fba566fb7037 Sebastian Thiel <byronimo@gmail.com> 1278538933 +0200 commit (amend): Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
76af62b3c5a26638fcad9a3fe401fba566fb7037 b425301ad16f265157abdaf47f7af1c1ea879068 Sebastian Thiel <byronimo@gmail.com> 1278539147 +0200 commit (amend): Adjusted clone method to allow static classmethod clone ( using clone_from ) as well as the previous instance method clone to keep it compatible
b425301ad16f265157abdaf47f7af1c1ea879068 3288a244428751208394d8137437878277ceb71f Sebastian Thiel <byronimo@gmail.com> 1278582561 +0200 commit: setup.py: fixed requirement - its interesting to see that there are two different keywords for distutils and setuptools, the latter one doesn't read the ones of the first one, unfortunately
3288a244428751208394d8137437878277ceb71f 08457a7a6b6ad4f518fad0d5bca094a2b5b38fbe Sebastian Thiel <byronimo@gmail.com> 1278670718 +0200 commit: Added python 2.4 support: Repo will now use the original GitCmdObjectDB in python 2.4, as the pure python implementation cannot work without memory maps
08457a7a6b6ad4f518fad0d5bca094a2b5b38fbe 258403da9c2a087b10082d26466528fce3de38d4 Sebastian Thiel <byronimo@gmail.com> 1278671744 +0200 commit: bumped verison to 0.3.0 beta2
258403da9c2a087b10082d26466528fce3de38d4 55b67e8194b8b4d9e73e27feadbf9af6593e4600 Sebastian Thiel <byronimo@gmail.com> 1278927490 +0200 pull gitorious master: Fast-forward
55b67e8194b8b4d9e73e27feadbf9af6593e4600 bcd37b68533d0cceb7e73dd1ed1428fa09f7dc17 Sebastian Thiel <byronimo@gmail.com> 1279007300 +0200 commit: Fixed incorrect use of Blob.data in performance test
bcd37b68533d0cceb7e73dd1ed1428fa09f7dc17 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279110447 +0200 commit: Added performance test to compare inst.__class__() vs type(inst)() class. The first one is faster, although I would have expected the latter one to be faster
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 a64c5f23c38f06c37a0ca64796368019dfb0d818 Sebastian Thiel <byronimo@gmail.com> 1279130658 +0200 commit: Correct Repo documentation in API reference
a64c5f23c38f06c37a0ca64796368019dfb0d818 24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 Sebastian Thiel <byronimo@gmail.com> 1279130719 +0200 HEAD~1: updating HEAD
24740f22c59c3bcafa7b2c1f2ec997e4e14f3615 17a172920fde8c6688c8a1a39f258629b8b73757 Sebastian Thiel <byronimo@gmail.com> 1279131269 +0200 commit: Fixed the missing Repo type documentation thanks to a hint of gasche, fixed a few more resT syntax errors on the way
17a172920fde8c6688c8a1a39f258629b8b73757 cbb58869063fe803d232f099888fe9c23510de7b Sebastian Thiel <byronimo@gmail.com> 1279197254 +0200 merge gitorious/master: Fast-forward
cbb58869063fe803d232f099888fe9c23510de7b 89422841e46efa99bda49acfbe33ee1ca5122845 Sebastian Thiel <byronimo@gmail.com> 1279533542 +0200 pull gitorious master: Fast-forward
89422841e46efa99bda49acfbe33ee1ca5122845 192472f9673b18c91ce618e64e935f91769c50e7 Sebastian Thiel <byronimo@gmail.com> 1279814094 +0200 merge gitorious/master: Fast-forward
192472f9673b18c91ce618e64e935f91769c50e7 fa3fce80aeb57299633535b9e1c9d08db710ff05 Sebastian Thiel <byronimo@gmail.com> 1281701051 +0200 commit: unicode handling in messages and trees was improved. Messages are now written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
fa3fce80aeb57299633535b9e1c9d08db710ff05 394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 Sebastian Thiel <byronimo@gmail.com> 1281702078 +0200 commit (amend): unicode handling in messages and trees was improved. Messages are now written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
394ed7006ee5dc8bddfd132b64001d5dfc0ffdd3 c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a Sebastian Thiel <byronimo@gmail.com> 1283969691 +0200 merge integration: Fast-forward
c4d5caa79e6d88bb3f98bfbefa3bfa039c7e157a 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287134990 +0200 commit: Fixed bug in http://byronimo.lighthouseapp.com/projects/51787/tickets/44-remoteref-fails-when-there-is-character-in-the-name using supplied patch ( which was manually applied ).
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a fc650aa6869639548435ce2760d42c9cdd909d99 Sebastian Thiel <byronimo@gmail.com> 1287135891 +0200 commit: Added test to verify the actor class can handle unicode names correctly. This works because regex can handle unicode, and will return unicode instances instead of strings if required. Its quite amazing actually.
fc650aa6869639548435ce2760d42c9cdd909d99 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287136504 +0200 HEAD~1: updating HEAD
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a a88173281ec56cb378a293d0170e11a1bda96a55 Sebastian Thiel <byronimo@gmail.com> 1287138898 +0200 merge unicode: Merge made by recursive.
a88173281ec56cb378a293d0170e11a1bda96a55 741dfaadf732d4a2a897250c006d5ef3d3cd9f3a Sebastian Thiel <byronimo@gmail.com> 1287139082 +0200 HEAD~1: updating HEAD
741dfaadf732d4a2a897250c006d5ef3d3cd9f3a 13647590f96fb5a22cb60f12c5a70e00065a7f3a Sebastian Thiel <byronimo@gmail.com> 1287139254 +0200 merge unicode: Merge made by recursive.
13647590f96fb5a22cb60f12c5a70e00065a7f3a 94029ce1420ced83c3e5dcd181a2280b26574bc9 Sebastian Thiel <byronimo@gmail.com> 1287139994 +0200 commit: Adjusted regex to support whitespace - it was a little restrictive previously, although there was absolutely no need for that.
94029ce1420ced83c3e5dcd181a2280b26574bc9 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288000691 +0200 commit: .gitignore will now ignore netbeans projects
8858a63cb33319f3e739edcbfafdae3ec0fefa33 a2b9ded87baf0f32ae94c10c5851a0468a45f003 Sebastian Thiel <byronimo@gmail.com> 1288198935 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
a2b9ded87baf0f32ae94c10c5851a0468a45f003 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288198984 +0200 HEAD~1: updating HEAD
8858a63cb33319f3e739edcbfafdae3ec0fefa33 148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 Sebastian Thiel <byronimo@gmail.com> 1288198991 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
148eb761aeaa4c3913e1766db0a7df0a5b5c8b20 8858a63cb33319f3e739edcbfafdae3ec0fefa33 Sebastian Thiel <byronimo@gmail.com> 1288199023 +0200 HEAD~1: updating HEAD
8858a63cb33319f3e739edcbfafdae3ec0fefa33 538e8265e04f69bb9bd73a10ddb4e8e9677fb140 Sebastian Thiel <byronimo@gmail.com> 1288199049 +0200 commit: docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
538e8265e04f69bb9bd73a10ddb4e8e9677fb140 97ab197140b16027975c7465a5e8786e6cc8fea1 Sebastian Thiel <byronimo@gmail.com> 1288203452 +0200 commit (amend): docs: untracked_files is a property, but was used like a function, see http://groups.google.com/group/git-python/browse_thread/thread/84ed1835e26a5296?hl=en
97ab197140b16027975c7465a5e8786e6cc8fea1 3da3837fe2ec8152e1460f747d18290b52304868 Sebastian Thiel <byronimo@gmail.com> 1288203532 +0200 commit: cmd: improved error handling and debug printing
3da3837fe2ec8152e1460f747d18290b52304868 2c0b92e40ece170b59bced0cea752904823e06e7 Sebastian Thiel <byronimo@gmail.com> 1288203543 +0200 commit (amend): cmd: improved error handling and debug printing
2c0b92e40ece170b59bced0cea752904823e06e7 1b6b9510e0724bfcb4250f703ddf99d1e4020bbc Sebastian Thiel <byronimo@gmail.com> 1288205467 +0200 commit: Fixed bug that would cause the author's email to be a generic default one, instead of the existing and valid. The rest of the ConfigParser handling is correct, as it reads all configuration files available to git
1b6b9510e0724bfcb4250f703ddf99d1e4020bbc 0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f Sebastian Thiel <byronimo@gmail.com> 1288208986 +0200 commit: index.reset: updated parameter docs, but most importantly, the method now has better testing for the use of paths during reset. The IndexFile now implements this on its own, which also allows for something equivalent to git-reset --hard -- <paths>, which is not possible in the git command for some probably very good reason
0d5bfb5d6d22f8fe8c940f36e1fbe16738965d5f 735b28bc65964da5b181dffcccb1d05555b5acab Sebastian Thiel <byronimo@gmail.com> 1289033220 +0100 commit: test_refs: fixed failing tests just by making it less strict. It is dependent on the setup of the surrounding repository, hence the amount of ref-types found is actually variable, as long as they get more
735b28bc65964da5b181dffcccb1d05555b5acab bd7fb976ab0607592875b5697dc76c117a18dc73 Sebastian Thiel <byronimo@gmail.com> 1289034759 +0100 commit (amend): test_refs: fixed failing tests just by making it less strict. It is dependent on the setup of the surrounding repository, hence the amount of ref-types found is actually variable, as long as they get more
bd7fb976ab0607592875b5697dc76c117a18dc73 a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 Sebastian Thiel <byronimo@gmail.com> 1289379557 +0100 commit: tutorial: Fixed incorrect initialization code for bare repo, thank you, Bryan Bishop
a1d1d2cb421f16bd277d7c4ce88398ff0f5afb29 f1545bd9cd6953c5b39c488bf7fe179676060499 Sebastian Thiel <byronimo@gmail.com> 1290118292 +0100 merge submodule: Merge made by recursive.
f1545bd9cd6953c5b39c488bf7fe179676060499 45c0f285a6d9d9214f8167742d12af2855f527fb Sebastian Thiel <byronimo@gmail.com> 1290122860 +0100 merge docs: Merge made by recursive.
45c0f285a6d9d9214f8167742d12af2855f527fb 315c303214cef855499f0c7eda46b7ed82dceecb Sebastian Thiel <byronimo@gmail.com> 1290158850 +0100 commit: test_submodule: fixed failures that arose due to changes of the original submodule names. Also, a major bug was fixed that cased submodules to always being updated recursively when using the RootModule.update method
315c303214cef855499f0c7eda46b7ed82dceecb 7dd618655c96ff32b5c30e41a5406c512bcbb65f Sebastian Thiel <byronimo@gmail.com> 1290158895 +0100 commit (amend): test_submodule: fixed failures that arose due to changes of the original submodule names. Also, a major bug was fixed that cased submodules to always being updated recursively when using the RootModule.update method
7dd618655c96ff32b5c30e41a5406c512bcbb65f 2ab454f0ccf09773a4f51045329a69fd73559414 Sebastian Thiel <byronimo@gmail.com> 1290188727 +0100 commit: remote: parsing of fetch information now reacts to fatal errors. Previously it would just bump into an assertion
2ab454f0ccf09773a4f51045329a69fd73559414 b00ad00130389f5b00da9dbfd89c3e02319d2999 Sebastian Thiel <byronimo@gmail.com> 1290196658 +0100 commit: submodule: When adding an existing submodule, when retrieving the binsha, we will now consider not only the tree, but the index too
b00ad00130389f5b00da9dbfd89c3e02319d2999 8867348ca772cdce7434e76eed141f035b63e928 Sebastian Thiel <byronimo@gmail.com> 1290196804 +0100 commit: Bumped version number to 0.3.1
8867348ca772cdce7434e76eed141f035b63e928 8d0aa1ef19e2c3babee458bd4504820f415148e0 Sebastian Thiel <byronimo@gmail.com> 1290271885 +0100 commit: Fixed performance tests which broke in the meanwhile - they definitely don't run often enough, which is because they intentionally don't have a package initialization file
8d0aa1ef19e2c3babee458bd4504820f415148e0 8e0e315a371cdfc80993a1532f938d56ed7acee4 Sebastian Thiel <byronimo@gmail.com> 1290280591 +0100 commit: submodule: Fixed capital error when handling the submodule's branch, which was returned in the submodules super repository, not in the submodule's module
8e0e315a371cdfc80993a1532f938d56ed7acee4 7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e Sebastian Thiel <byronimo@gmail.com> 1290286993 +0100 merge gitorious/win32: Merge made by recursive.
7c72b9a3eaabbe927ba77d4f69a62f35fbe60e2e 517ae56f517f5e7253f878dd1dc3c7c49f53df1a Sebastian Thiel <byronimo@gmail.com> 1290288333 +0100 merge osx: Merge made by recursive.
517ae56f517f5e7253f878dd1dc3c7c49f53df1a 22a88a7ec38e29827264f558f0c1691b99102e23 Sebastian Thiel <byronimo@gmail.com> 1290289085 +0100 commit: fixed performance tests ... again, previously I was just working on an incorrect repository
22a88a7ec38e29827264f558f0c1691b99102e23 685760ab33b8f9d7455b18a9ecb8c4c5b3315d66 Sebastian Thiel <byronimo@gmail.com> 1290342054 +0100 commit: Added zip_safe info to setup.py file
685760ab33b8f9d7455b18a9ecb8c4c5b3315d66 9d6310db456de9952453361c860c3ae61b8674ea Sebastian Thiel <byronimo@gmail.com> 1290342681 +0100 commit: docs: added final docs for version 0.3.0, started new release 0.3.1
9d6310db456de9952453361c860c3ae61b8674ea 0b813371f5a8af95152cae109d28c7c97bfaf79f Sebastian Thiel <byronimo@gmail.com> 1290358083 +0100 commit: Fixed API reference docs as far as possible
0b813371f5a8af95152cae109d28c7c97bfaf79f 94140bbfc523ae13e1e8045ebfed8a76fe0a1872 Sebastian Thiel <byronimo@gmail.com> 1290372438 +0100 merge structure: Merge made by recursive.
94140bbfc523ae13e1e8045ebfed8a76fe0a1872 d01b428dbac4103b4f7d7b8fca32e01f70746c53 Sebastian Thiel <byronimo@gmail.com> 1290372442 +0100 commit (amend): !!WARNING!!: Directory structure changed, see commit message for instructions
d01b428dbac4103b4f7d7b8fca32e01f70746c53 db3423d1eab11d00c5475e36eae8952512b07f4e Sebastian Thiel <byronimo@gmail.com> 1290373147 +0100 commit (amend): !**WARNING**!: Directory structure changed, see commit message for instructions
db3423d1eab11d00c5475e36eae8952512b07f4e 5ed5b2011ec7cf72f19e6d53b588eea4adca68e5 Sebastian Thiel <byronimo@gmail.com> 1290373168 +0100 commit (amend): *!*WARNING*!*: Directory structure changed, see commit message for instructions
5ed5b2011ec7cf72f19e6d53b588eea4adca68e5 470d4a7cc865d2702c326d9d1d1b0ab7afb49f0e Sebastian Thiel <byronimo@gmail.com> 1290373186 +0100 commit (amend): !##WARNING##!: Directory structure changed, see commit message for instructions
470d4a7cc865d2702c326d9d1d1b0ab7afb49f0e e088424eb01bd47c6f0d313f465a21ee742e6f4a Sebastian Thiel <byronimo@gmail.com> 1290373209 +0100 commit (amend): If you use git-python as a submodule of your own project, which alters the sys.path to import it,
e088424eb01bd47c6f0d313f465a21ee742e6f4a 48a17c87c15b2fa7ce2e84afa09484f354d57a39 Sebastian Thiel <byronimo@gmail.com> 1290373245 +0100 commit (amend): -#######->WARNING<-####### Directory structure changed, see commit message
48a17c87c15b2fa7ce2e84afa09484f354d57a39 fca367548e365f93c58c47dea45507025269f59a Sebastian Thiel <byronimo@gmail.com> 1290374761 +0100 commit: Changed version to 0.3.1 (removed beta1) so that other projects can actually depend on git-python using the setuptools. Previously it would claim the version did not exist, probably because the setuptools are just comparing strings

View file

@ -0,0 +1,3 @@
4c8124ffcf4039d292442eeccabdeca5af5c5017
634396b2f541a9f2d58b00be1a07f0c358b999b3
ab25fd8483882c3bda8a458ad2965d2248654335

View file

@ -0,0 +1,51 @@
commit cf37099ea8d1d8c7fbf9b6d12d7ec0249d3acb8b (dist=2)
tree 01fb5ddba393df486d850c37f40c9a87f4a28a14
parent bfdc8e26d36833b3a7106c306fdbe6d38dec817e
author Florian Apolloner <florian@apolloner.eu> 1218480521 +0200
committer Florian Apolloner <florian@apolloner.eu> 1218480521 +0200
use shell=True in windows (git.exe needs to be on %PATH%)
One bug remaining: git on windows is returning status 0 for `git this-does-not-exist`, so no GitCommandError is raised.
commit 33ebe7acec14b25c5f84f35a664803fcab2f7781 (dist=1)
tree 960b40fe368a9882221bcdd8635b9080dec01ec6
author Michael Trier <mtrier@gmail.com> 1210193388 -0400
committer Michael Trier <mtrier@gmail.com> 1210193388 -0400
initial project
commit a6604a00a652e754cb8b6b0b9f194f839fc38d7c (dist=1)
tree 547e8af2f10ffa77c4ed4d0a8381e64141f986b4
parent cf37099ea8d1d8c7fbf9b6d12d7ec0249d3acb8b
author Florian Apolloner <florian@apolloner.eu> 1219330141 +0200
committer Florian Apolloner <florian@apolloner.eu> 1219330141 +0200
fixed unneeded list unpacking
commit 8df638c22c75ddc9a43ecdde90c0c9939f5009e7 (dist=0)
tree 43a63b045e538a38161c8da5e154ff1c9436ea4e
parent a6604a00a652e754cb8b6b0b9f194f839fc38d7c
parent 127e511ea2e22f3bd9a0279e747e9cfa9509986d
author Florian Apolloner <florian@apolloner.eu> 1219330182 +0200
committer Florian Apolloner <florian@apolloner.eu> 1219330182 +0200
Merge branch 'master' of git@gitorious.org:git-python/mainline
commit c231551328faa864848bde6ff8127f59c9566e90 (dist=-1)
tree 991ed402b4f6562209ea56550a3c5050d1aa0118
parent 8df638c22c75ddc9a43ecdde90c0c9939f5009e7
author David Aguilar <davvid@gmail.com> 1220418344 -0700
committer David Aguilar <davvid@gmail.com> 1220418344 -0700
commit: handle --bisect-all output in Commit.list_from_string
Rui Abreu Ferrerira pointed out that "git rev-list --bisect-all"
returns a slightly different format which we can easily accomodate
by changing the way we parse rev-list output.
http://groups.google.com/group/git-python/browse_thread/thread/aed1d5c4b31d5027
This resolves the issue mentioned in that thread.
Signed-off-by: David Aguilar <davvid@gmail.com>

View file

@ -0,0 +1,8 @@
commit 91169e1f5fa4de2eaea3f176461f5dc784796769
tree 802ed53edbf6f02ad664af3f7e5900f514024b2f
parent 038af8c329ef7c1bae4568b98bd5c58510465493
author Tom Preston-Werner <tom@mojombo.com> 1193200199 -0700
committer Tom Preston-Werner <tom@mojombo.com> 1193200199 -0700
fix some initialization warnings

View file

@ -0,0 +1,8 @@
commit 80f136f500dfdb8c3e8abf4ae716f875f0a1b57f
tree 3fffd0fce0655433c945e6bdc5e9f338b087b211
parent 44f82e5ac93ba322161019dce44b78c5bd1fdce2
author tom <tom@taco.(none)> 1195608462 -0800
committer tom <tom@taco.(none)> 1195608462 -0800
fix tests on other machines

View file

@ -0,0 +1,7 @@
commit 634396b2f541a9f2d58b00be1a07f0c358b999b3
tree b35b4bf642d667fdd613eebcfe4e17efd420fb8a
author Tom Preston-Werner <tom@mojombo.com> 1191997100 -0700
committer Tom Preston-Werner <tom@mojombo.com> 1191997100 -0700
initial grit setup

View file

@ -0,0 +1,655 @@
72223ed47d7792924083f1966e550694a0259d36
f7cd338ee316482c478805aa8b636a33df3e4299
994566139b90fffdc449c3f1104f42626e90f89f
e34590b7a2d186b3bb9a1170d02d52b36c791c78
8977833d74f8681aa0d9a5e84b0dd3d81519774d
6f5561530cb3a94e4c86454e84732197325be172
ee419e04a961543444be6db66aef52e6e37936d6
d845de9d438e1a249a0c2fcb778e8ea3b7e06cef
0bba4a6c10060405a94d52533af2f9bdacd4f29c
77711c0722964ead965e0ba2ee9ed4a03cb3d292
501d23cac6dd911511f15d091ee031a15b90ebde
07c9bd0abcd47cf9ca68af5d2403e28de33154f1
103ca320fc8bd48fed16e074df6ace6562bed4b5
55544624fb9be54a3b9f9e2ec85ef59e08bd0376
e5c8246dec64eccad0c095c67f5a8bbea7f11aca
1b54d9f82ee6f3f2129294c85fad910178bef185
36062a1634fb25de2c4b8f6b406ae3643805baf5
0896bb9b8d2217163e78b5f1f75022a330d9ddc8
6646dfce607b043ab7bbe36e51321422673b7c56
f0bad592abc255fabe6c6d6c62b604b3de5cdce2
5705e15c71f9e10ca617c0a234b37609cfb74d23
b006d8b73912eb028355c49e7bfe53a29f97ce7c
b21eb6173dbe07cac63f4571e353188dde46f049
a3256f3150ccec73c50b61b85d54e30e39a65848
c5a32e937166d65757f3dd4c1b6fd4f5ecc10970
1e90e2c654aab0d81088f615c090d6d46f03ca4c
924e7685fcd62d83aac19480837e4edd9c4bae5e
489e1468aea658a333481132957069708127c69f
970b6b13726889f6883e4347e34d8f9d66deb7c9
df74c45e8fdb4d29a7de265ac08d0bff76b78a83
936aa0b946155b2d47528073433fc08b17a4c7cc
3b6a5e8f12b6269a0a3e0eaeede81abfb3fc4896
8e0f306dae96d78aa1ea9a08e82647fd95fc1a74
5eb099e5e274be44c0fd27ce8928d2dc8483dab7
050fbed693d4806ac6c03460103777b2a4befcf8
c5d4b6dac74e323d474fa8878a7ea0c233d57019
8e5daf911943d5ef025025c137fcf97164467141
bcdf7c2421302b15f4ee4ebbdeae7b644a4518e7
e2874a42835cbb2fe8856a398f5c4b49a9cd8d30
f50ea97159e4ae7132e057fbf5ea1e75ec961282
5dbd614c20e9473240082239894d99c24de42282
0490e1ac1ffafcb9117029286b224ab39671a015
ad3620d47f0ea96f24904227d3c7a7f9548c34dd
fd37e7191ae3d312ced0877a1492cd2ea4578275
b7f8cc51c9056a469006b5601a4993b67c07e099
1d849af5083073b8864487938a9a2a8e21d71529
26d0bb4c9ee3d8591fe291c86f495b2d1900bf9b
7a25e3056a7225c1ff8542c2c2c1cf6f3a8e13d4
d0e0de0b13b9c81d2bcf9d54eecdb20591fd6d2f
0bf82343ade1e07c0aebd14ee66df688a4cc0e87
d81de0fb6a19342a90cdba9a664659da66296162
9105667175797bbadea80879e98a5cf849a40065
12f5af2a169c658cfae1677ceafd527d3775873f
00ae94689600b5949bd0fcf68205f31f95a36aa4
8f5d34224e4620c51c16c01578786e76567d025d
3385eb31651c84384b4c7e93d82bc5b592edf9fb
eda9179b9af0275d62c4074480e7a0103d356435
982c2d1e55165fddb4f4c69065e2c4ac39542c84
7117495ef012719769582939ea59a5533077fc8f
b7dae75dab5b59a320b8df8a67060d238fed3a8e
37c684e1a46599fe4d34d1601875685a70b1b879
0a694fa0cb044a31bb844564776b490c151ac317
e77c6b459f01ce078aa59183189226a6d48fdf38
dd0c0eaefdebc38610bb1986e51324a0392e829a
d8bc2414e9504172da640f29db1b2d29d834a94b
a9f1119667dd0f5aa9413dec23965a747d1dac05
f52775f6bc21d999382f4b9b38b108b814114ea1
e82c77ac679887140867e471a9f47fd3b2d95039
2db3fff5673bbd4bfcc8139d8398727d243c9efd
c1805c000c6233a20ac0824cad21c1fe40f93100
83f7807585cf70018a9a06179af9d89d4a8204b2
730c326beb29cc6d2624915b125633792a40ca36
bea422b653d74dd03ec068dcce938169149aa822
586a57666618299464519c450033eecc3ce89664
82fba8cf4796f2adbec5ad336bd750ad60a075fd
9d9b899f836a199fe854075e99091d1ef083de24
4670357c662596aa2c2922d826de84abd9f877ea
9b562567430544c74009ea4a6173f44ddb4a44e5
013d51fbb5f3a60bc748449b1ab73158da9a3203
3fe67cb90fca9ea76292deb793cb480f4eb5e8d6
91c80e489fee08e71a79bfbea79fcc28e1aa27f2
dd9104095bdb08fe399af46d91b334e760986ddd
a9198904586546a038f855bc6fc0e7cc413722fb
574a7bad1017d9ed466474881e1f068f892207f4
f95acec9297b7816284d8b24e984cd5c82104c89
3907dac65a125b7759172a8eae959b0e70220299
e5b44576eb2182b16c7b6770fab5977eedbc03c6
9f4aad9833d0f9a609dd2556e7db784ba813d8fa
579309c96651a1fed75fdd18f80019db8e6624ec
5e1a9a48e6c96099d6a0c3aff1e31c9be16b7b8d
cae4b811038f4e0dd4a8e68122c3db955e10ae81
fccee1c818f5af5fce593de0949f5a8ecd35b443
d4187d5a5f9ffe1f882c74f6ced7e0ba1c260ff2
02ff197aa41d892e623dc668b0055806294bd6c0
3f81af24214761a6ed77fd4dcd6e45a651dd8f84
5cb08c5232a669a881606a6d8c4a4cd23aad6755
5212b25869e0b9aff485af6f5371a159e89f8f07
a778322bb60f8438a68112a73df78e05a97093ff
b55c30c3992a766628dfc4a7e22db4d8d9e46b5f
1d3e4a32e0407f16f641be316c745c1a48f16e2b
7f35ca3333944165e0ec82a3a95c185f67fba904
ef6c5bbe2dffe76e4a9698df03b8ee08af702033
aeb90405ed696c1efcb29d0664b43a52a2bf824f
e0b8bebd78172229666dfd425933f9bc21863928
2a71a55154edf75ab51dcb4f2f7dc63592410e16
a5d25352d326c77d083a2e089c2d80b4ea923624
a3fbc38b9f1b86bb5f5e6540048083fc1dc6062b
bbe67e1bdadf4aff186769145a40727f78e39e01
a02a58c6c6d04001873ba91ac3dc902275879d0f
eb5281d4f40e18b0e21d275ee5c5964bbbcc855c
19e9939a098b9cb93c8c1d0d069d46861afb507a
7a72471f9a4587cc4a7d37da0d26122b0eadaddc
c6a043eb057cd544130b77bf99f39b7738e0a204
723b6223726c6772e034d9f4ba5c710e66a1991f
25b4ff1a26dd3694a98c1ef2eba04a5a500c0b28
7c571ac2c35a7e1f399651242e904596c93beeb0
0c90015733521720688bfcb59ad2a3978b2fbbc3
d6b99183122a97a590e4e54f4617b58f13b90df8
6b663271af39d69082422866e61ff7801c2b3fa7
2e9e6ab7651e4c215110eb381678e0ea2bc0f7d8
967b91e045661c9b6d2a5f011ec152da391db7ec
7fda8d15bdb3d3d61fce49413153a216849721f9
f7d7e83ee1cec103a768ddc9f68b6d5075849894
925953da542a9c21a3fde1ab0891175fb6212a12
ea2f54455427506583437391cbaf470a1ef4edeb
f0bdb2cdddefb3a391ec2e3fa9b78ed06d7c874a
8d289566fa92a96a83ff3c2e24c1f3d12b1718ed
7fb102615532952c6833e87389668831b37a13d6
7f7bbe8473158ab606a89ad66d607ffd0e5ba1f7
a98ea5a00d19406f3e644448039f13db496cefd5
39f03072d9d84d622ae974b09dd11cf7a2515a7c
e2050a1c488fff4b114614d7f75096dd0a149f5b
d2851f113530fbe211b3e948b6181152d30d1fa3
1eef0fe740f6db35a91e790fe77d4ba1c9065e99
9608403b012908cc58223db44962553704cab8af
4911a005ea6b55f34f8b0f504a6a0934c0df896a
a4400fb8e7d0f1261634dbb89588da86b8b6c93f
f310729583f6733ee60f534a9732b7a3a9e414d4
49e78793487ce4d8d7e624b5245fca8a9cc1ba66
2f2501ce5d28e5ada6018504ee8dcecbbee70428
f1e127253e1eb07b537b221e9cc96beb16333790
8bf1684ca9b5a37d91671dd0d63d0ac59bea987a
24838a6042a134b11fe945bbaa5ab1b2b3fc6eb0
f53c57af21fded3735fd479b3785fcf7adf80268
aa8d0a63d61d13524b1395972563b516cd263f05
16803d64332412a66121ef3fd10cd0d88598d3be
5f2715ed4d9416fa4940c2cd29b5ca18b6a79b8c
851ede1f8dceef7d681f35e4769e5693160c0a04
5264588c6c20c38d54394059eef0a854683aa3fc
111800d8e66ff86f0757df7eb6533fc62040a22f
b04de89d31003e468c191cd08dd2a4629d99c38e
6aef629094e9ee6b4fac2431897844c4dddf2f57
d1168c999fdae7d1eaac8c163b2b1190afb1815c
6afc3257929528d9f4de964e8828822d2fa2c93a
436f30ce1b562efe4f34696def45b0145eb98304
9afbf904be0e6154f6c424377ad596e86ea38807
a3cf657305d9283525711e867e03684a2e4b39cc
5813b4d04b25c385359af4437027b4fe763cd2ba
0fa594594c97a0d3579312f4ec073304c1436106
cb7b36c28adb38b1e597fa3f3b5c24c988a25b0e
5b0c867cbda81ce34df1b5fb67557b556ea24e9e
44090e9c550c7c5ded01dc2a681a7c934ba901b6
9ccc89b61736c4a9c02faaa679e97a9ec063dd29
7828d6d18115b0720888a45e3b547b697910c59e
618497e48e46fdc00dee67c07cd0f40860e819f9
69a14ed4f36d880e8322a530d8c5bfd9888a8c13
0a0cd655e40903abff4840c23b57628fb1a88122
cb262098646f47e1d80a89662f1480c216bfd81b
d60e59fce6f698a8bb97e2b4a935c069584621b1
ca77ba0d6d301cee1d45edb24742dc5cdabd4b83
17b598510967922690f5181903f20ddae5758e86
30ad3d9f3164966afb2974640f772387fb796b7d
48964c5dcc94234dea1737d7fa23220f9eab0fb7
0fe241f4db12f455c2f5976c6bf6497cc485f503
04953aca41bd372d990da7f68cc795f4a8b78d94
2dc9a061595a291d8c53168c42da8d14da52d610
68b15d34903038e3f2e327f03f0486b2d38784bc
30ceaaf39b10f9f9c7b4362505144d1650035a40
e75891a5760f6a51f54a33b671951c16fbce1558
b2a35989ad3392f26e070b158f89d1d8b75327f2
8468830b8b37f7c1cdda926a966c0aba2893a7c0
6a6112e8cde1bafebfa12e4c863dab5834c38e12
eafcd2ffc25d17fce41eff2afd5c4521730a23ab
f7eda0752f45c3a4eb13e075b24b86d7e7dd5016
b634d0d48d0a113bc060a47972b10c9353621428
49f95235a174f0a056e44bb5c704fea4ab345353
6eec70a31a6376ffd7d6b143be0968a195ad59d6
7c9ae1a71aa39efe28a678c18c8a03d759deabed
a19fd6f13c16720dc38a1f572eebf960022015ad
87052ac2cbaec195094e1d1a2bad4ac480bd111e
2cde1b0e69f97a8a67bb47d729c53af3ba8e5700
91a06d1a4efb6376959c3b444a536fe6b4fd4d6b
07f73b465b6c509b337c2776fe7a73b56ee178ec
15218bab55236d62fb8b911c2ae1ee05dde1ee60
900180ff2aa70e7d857403412753df6384553d26
a9c43cbeb0542cf6538fe8025edc8863d2526c68
d7d8f0c9b7d56f554d5a5cf5759f30cc3d36771c
d703e5d9ac82b8601b8f4bfe402567b5ce3ebbf9
3905a12ad511ffe157cb893e7769f79335e64181
73a933454b09ee48ffc873b0ee767e0229f2d609
c2c91403aa9d95efa09843bffe83ace4d52d3446
c90f480010097efa3fb7046abe7fac3c9b8b3975
13e888d5624e8087ea63638de7f4375f5c13ac55
19344e551c8c5e56e91de14253b4f08ca05f9e69
b1b8f098bb1e2f0f08cf82805d7bd29d2931f63e
3a3e025bbb2f3e49facac00e270d8afa5d31b962
195116405307f7bd9575f9621fd93344304341d1
31252094210748399f7e43e7b6149190990f4e8c
357e549bf43126e371a1f85c393d2560597cb32d
df1f8ab23f915420e9c48744decbc45375f180d3
f96c2eedf6800b8fc31032a02caf0d2b469ba9ec
73405f0505813ec1bd25f03f2825315f3520bcca
7e2447536c35ae67e3737a031fa1ac57026475a0
970d4c4854dbcc3b0bf9b16edf1d47eabf3be242
3c73519e6b54d3559555ffac40072957041f62d4
46d461676fc1fb16fd7dee027065441d9a8b87d5
f11f64bb55240dcc1767a1ec823aecd3531f1d20
038e91a424078c5d81cba6c820cd981f0be6086b
157d6e98ba894cba5582caeb15b429ca0dcbf2d9
2c768cf9d1bdb6d3d84f662a847966b69c898f59
4fd0f29459ec3ea65625b943b147df85e5826cd9
c7e90c64e580ce5f95147eb4e117b56b5cda254b
cd4f2496b274b0d55b7c48388c2ec0365d9bc266
68b5e288a29ebbcd65e6d0a8eed47702ee4e689c
22abd4a7ed7b061364e002f1fe08857850a309ad
4c3b38be6fda8ba32fe6f29226539e03bd0c55ce
355e946ca8b8a5e4c17317446b12fc374399810a
1fc5c0122fffdada1630febc1f2e42952cdc7e2e
8db042e1faef7be24d62b9287fd3b9add7a1b4cb
1cbea023ce354939ae9082a62810b46f38ab1cd8
f5edf5b99d1bae09314b9680e58766a4e3c1bbc0
58a5ef79958b58736603f47cf211494fe5819601
8f2038bec169ae6d62885f522202d8171e3f5f5c
5488e29e68684648b4d733e90c6e3188d3bd5bad
84c88e813117db46c6ac68b16a7739018eb99e24
789c3655197585ba8771ce68c0117cbdd41ea390
0510404a3c0d337763e90e5315548043bac65b06
2a665d7c6cab59ea8e3bb7fc65249ee947e51fec
d53423de534d3b5e68a7644d4218d835a8bfe6ce
73f2a3f332f23579a29e090f70825dcf84dcdbac
f79ae7f27e750c97c139cdbdd7c3223b39ed1a70
c84a75f7a4b274c5c133b1df3648a5a24ed9f687
cdf8e5a49192b81bcd39d9f4e39aa4812b58b80c
1180461f564674e373222fec3b4fe8c2861ea6a6
150d93bd910597b85500e74b97b96e7eb4bce2f6
ec3b819ffe3392bf193483fea94d4404c88966b1
729fc8ffd38c02a9576640b56376c36b49edf52e
2ee31128fbd86244d547e3ff66b802dda699210f
f87f28c563ad602cba605e84bee95693b77b8840
9e92c5fb59af58867acf5512e95138fc368f7dae
76b1489042e1bb45909832f7064f9a5437b68b18
66f5d86face564c095b3c95848f070f50fe4688a
f9b2b3ec52b88dbd68b2f2c6b246bf07f632b40c
14f689f05c4fae52ac8bb95762ff43b9f7f4e567
5ca84af5f7a3f4533b353c43a332b552cb2fc5e4
c5f33e9eb55201c41691e14fff0d45e32c989a42
9f83cf471949164a6352cb9e3a201b8bb317b89a
5532c7b06a2f02e9cafd6673d5099798c4144690
0d28c20ab4f03b5d8579132048c060affc36c466
cddce1dfd9d4d7f1fc49003aa211f018bf8fad2a
169617e3672bac804a271c0aaff9cdbac7b4b45e
fdebb28d6ae398ccba88f3e2e63ef6d7f10f62f4
0651bfe384a8d5865d6cab808ca0ce803af93878
de89eb007459fd5400cd344dddf240fc33fd0b65
c6a14beb887170d8c901e522f2f4dce3bf0b9ed8
13dd0647b3ee39fae1140f8eff2b15d7f63ee546
9f89105c1462f2a80e620ada1b95c3d08a121c3e
1ed6496751273cf472538779266dcc3dc9797192
4e8dffa66fc7be8f864cb48cf26abcef4cc32379
5543fce145ff28a1c424b730b376fd4e3cfa0956
bd951a4a8574baac21b7e1f3a09d1265aa51850a
3fd1c12fa880ee45b0ff7b794238a8894306a790
830ec14bc9edbd2c6522ff46ed0acfe477e7e32a
e68c3109a709e2b732d0945f860495de161754a2
1e0f4fda735167ff6d27c76a67b8b4a4ab31aaf6
c6c40dd0ff4420708c2e0f5a0e0dadde93eae336
baf0c18ac24acb9ac3d1a7c0030ad5675eeb64d7
8d30906e9f2f68024eb716be9f482de5cec5b302
ec9fce551828795e1dace26a11f57f9aaf1af37a
28fb918d7e9840a7118b7aa0b6151b496f1fc1f0
b9e58c5b98f7c89054ed5c0a0226066ba9d93c8d
0c5db457cdd3852182ce70b96cb376337b8ad7ad
36a48168274cbb6f31c35777a74ee16c06e1a853
07ef3ad40bb01bc7798b241c88fda2eaba7aad19
02aa9f2ba871e9639891986a97618e0917955fc8
5f776d3c74ad532f36ab75a71bcbece6a62c831d
f31ea9eeea91106481e1b2d30026b601555b6699
c3d7f6bac18fbf8041662fbdda4f04e3f3b25e3a
6280c4bcf1195c011d7a7abb5bf689df11d66419
45fc4ef9adaf514bbe21f496cdea8869a147c81b
fa1160786e34c057cf1212efd59a72c3931eb2a3
09b285cc7d7c8768917c7d4e5513e3e73d752b68
a8da5db6094c887f1087162c5ddfddf601560523
b6134a31d236c376193e969a2df65c8427d280a0
793e0d19fef38f8a151622257b13edf6786e469e
e40e6a17b4df5be46a2cafaa3fca5f4c3cec5001
4d82e160cb874da6dbddc27af7dfd1036772b8f6
745ee8e3e74dc0674dd8018999707f025a9634f5
f507baf298549096f08dc33de22f7301e9799814
bd7ebd663da867692f2316b94db73c42c0f9a5d1
697f07726d209cac519b528018559f8957c56069
2297b5172c0c1c83f2d78fc726fac0803be6eeb9
91e3543f82039a446c5be8293d5a79ec767d1444
e997169214440256b5b759f6e7e255a302838c97
77d174ae14afbc6e212eb7d957b11a231a036d96
3e81ee29892006f16d5f1f26d9d6b341a8958fb1
59957e1d84f8fe8117d9697154c3951ba2959480
96c6fa03962edb98a9b6aa7793be4ff54e79bfd5
068a293fd6b4fcf216fb84ca982699095613af37
b3b1804ffad1b7d274bc3f8f5aa11b15049ac030
63e394c13a50de0d9f6cef55a8c91830200c3dac
e7ed33eba96d590bbc7179fd26db707c910d1dc5
6b2084340a988f4123e71c6e30817806ec4cf3a3
da721d3f48f821faa90d1a4778d77b03fd3dcdeb
a433cb8d56a4fcd50bfc74b0204c916e08c9d5e6
067fae6fd778d5b1d6b6436aedc0d25db58334d1
e34c192a5aef80c7e83c78c2372602830671ca5a
861a44dc56a983262caebf909be96c62254930cf
417ed493a824863e30922deda64b9729b1c6d6e7
2df6a0d803ac21f0d20ae9fce0a970b35b3663ec
44bedcfc59292d3ff6b36759b324812fcb779b2f
c620f7e60c8ce4ddee8fc1072b2a161fee862545
82ce5a39b422aec7572d9a773f85be8eaecb1618
dc0ea6defad83a0569896a9c23f11f5052a48107
e1c15f1da71a3aabdd43a8ad669d2a755f315c77
c78ee1aaa5c499019948c9a3dfca3aaa2f897860
e66d0d34c541c6588da3ae06c6aff7e7c9ef5745
c24d513d46b3db5b4c53b36b7e43ce5fdfd5a2e5
a75d0a4bf6d2e1a9c4026586cb707f254691eb3b
41e98ebf4526e78d78ab16182b503f237e77fbd7
2182dce8c27c33f9452e7c910f59750d1e58b1e3
6b7aa9fdbdd0160ec29b6b3b591169c627fd0f01
b39470063e41ee5773f47de325a845666d0721ce
c7941bdc8822ae1842d2a2f42924f31d2d37e864
fad6e836009429e88c788ab7e7a679d422d8cae1
a478917ebcf70c5dd6f56c7cd139832108696189
4101b1ae3b17e229c1a80d9c302b74d215d98f04
b051ec4e69a99e26d6a6e5d7a393014f841eed6a
5298ce551a104605b7d5d9872387f3eb704fe5e9
b14a12bed26d53eaccd1a2c172ca4a38773e1d45
4ae0790397d05a758013e0496ba2c2b23363361f
431f01bf3aea6f8baaf06669172561a3ec9e82db
12476263aa193c7e921ad4b183fc648bd73d2a1e
8e937050fb12a62e99b0cf685578213552774cc4
b85a487787454f6dac84be59f905b8c929f0ee94
dbb2116e0f03fe6d84d2158d67ddd02761938bda
57186ad57242ad0bcd737c4ca4ecb7c063979a95
cdb4a295593cb3ad424b4ab86d74154d7bbb97bd
8e9e1ae0edb776f0a490005b838f8ef82b368be7
73f8f21a69a03cdc2b1031bca214a6b84f4c867c
b913c6d878ac5cf570e6f8ba9b5ff022ed601a8b
b98879530fd51f328441d33c64c6c5f311097e15
325b21b5370a0c179b40fd596b9daea00b3615c3
6e722a5c5393dda24172de6f8e08138bcbfb10b8
44b396caab82c97a6270eb7391d6f96502c9fcf9
4e6ed6d22079b68551bbb83e5dd797517796a438
b611fe79daa20893683475cc459dff98b2d4892b
017d40f9b23f4a4379c74ceeb89ce7b4bccb7460
a31b0a7fc7190218136d6ff6ffb3ee6af3244135
861bd42abb90a61ed757728e1fef7cee2d6aa081
6e9ff586de744d166a9f6f213b609e7386692472
a790ca7384982e872092766c036d6faa86bff71a
13485c50ca4dfd885d516154421bdb23cb034230
c5471e696f3166942a245e77796bcddafe6a607c
600308daf62d0d651fcfc874110e7bd4f5de648a
bada607744ec7f37ba9d05c09bb8f41e7fc3d06a
d3b230b209fd7c3f4a39db965b239ab600fac1fe
6d730b7ae0b662b1f987101e8ccf9c1828554d69
f0757668fcd3f8d1f2fe83ce9f0e2355b6be75f9
40819d9a5631a184a17d38e36240d1171a6fc923
8a6847ca68ec998df0543c4b5bd5c709c05d5f12
d8eb0646ae1360b5b984ba7d99bc64e00dd67016
761bf1cc1e2b86437e71c9a106fc9c341097c3bd
3b620d960d29fa7719f95cf945163b04e43d2dad
6be8590f72c2ef158202486e75f273d8598be6bc
d7f22a15d66139efd65bae28ba780b0bf8d1a914
e1ebbf612cf9d49cb08d0e0770ac1678ce1436ab
4db9912f07ce63e4519053f52dbe521ec95c0fba
b9fd4f4760ef65934b5d38e8b7c0eb2f77822861
0e0178ecfacd553526afd221734607971b6911f1
8cd4823a8ac9f846930408ad1759da4496384f9d
e96cf22a972cc3185739ef1c1ce74a978ab71d11
a9d63829aa54049801d37429b597eb04c9e1412d
2519d617e18fa35974e20d10414f1262013501bb
d02fc8d8483903871d9f65261b32c6acd2e4362d
569456505d5c97934344d4f989a08fdcdb522de9
f56d4c60ffb8df8fc1516d32a0512def0b6f8296
745e899452ec746d3ffbb7b082995b7939a85387
8c11f9ca2433bf9381840696218c245ec700666c
bc2a868d1ba12b485a6eac460cefee67bd9ee899
e628b072d054d982ecbbd7aa7fec628e0d9ee8d6
e3390afd65e721dd8ef228f48fd4244228de2986
35102507bd653296eaaa5e7d475405cc1feafbe3
e2e5342f92148238391665fba101b1ca7dad5582
621f4743f0165c6ca3f1571773867d2e0da67961
5f558819695a49bbb92d5d1e07b9f12072874024
eb45e9da84875e2d1325b78157d2f9e96374bdae
bc0ab7e4f643e779cf9554f03e567d4f4708bd4d
fd55e896d6df035cba49a20e26ed6ddd2d7b6024
dcb9d95840c9a0514f8fd0a7b3b17cc228950c7e
0bedc3d7a01f9819171c0b664e16900d9965c3ae
94f6e372fd90e96cfd9a393a5952aa850485de66
0b889a9cf37997c58a9f8979850da1f4bc84de9b
b70ec5facdea7fc681c2a10dfb14ca0d8fed6f1d
03e0192fb34134f25784a2b14791fbfdf69461bf
9266cc52df3725107edf513aea4a02c131aa153c
0820a412fdc9941567d86cba02793ca6a6378275
f1a72254956f63393f6039a7d5da5fca943fcd2c
abeb9e16d924c1a87c5b525ed12c43031ef1cb2f
d5813fad322c97bc31d7dd37f838c7442aa68f35
428b26fdca0ba98a3a01e89629bdb778dec9e8ab
19ff672db65a7ee25ee0d48baa3f9bbf2d145ecd
d1eb6283ece7d9c814b0d3d5223207b905d3d720
9ba934b83a40d26ebc5e8d7304ff29c32541e82d
9b600cbf0209ad6079d00dd5d6a5270d858d5929
0f22868d790bfab8a41894fc7eca161256ab6854
fba092070b6e03432f6d47154f5ae4734e935a05
11b1bf011fc24c2ca6dd8c81206c7338ac2b2915
d93c82b17d7416e4c57ed036d6b75a323859d837
27f762e8d3f1ed8bd0254800c121d0f16e914c2e
e252d9d270330072e9e5e91257e90f255e7e968d
e55c3c30785eb50b5dc36f9568e6b6ae39e6de11
63491807090d814bd7ffccfe44cb05795830eb3b
8111dbaeb71c53132229c4064c34247746a3769e
8fe37ca0d79dd1f8132e9add06aa206d371964e3
eb32fae4665b9f11ffd06a342e763b9d212e1353
4e923698ee5566143fc6d32fdcc6fb46fcda2d23
2e3910e29142382f9bbd1705ab9c605d1937a1ae
533cc5f884885f771d3f6df4164fbfa29bae0e6d
3fea0404fc58822cfc60d4f10ca404e3223f82a4
733404a081eda804707c3dde1d6b8161e7a34b3d
d2be0ea2923344abed57aa21f13dc816d4537eda
7884465bb9da51c8b6e95a1cbc9888ed696ff68d
6e63e5a03bfbba52dc3b4f504e6bc41951f56707
44a9d3ed75c44e817a6e4b56e30be06a15f453c9
91e12aff0f988bf414e64b97a8c20b9699440309
008119e510f6a7f8714e63d2ec33ca7cd7776ea2
27822b01ad020374ff6169428649fd667abf7f8b
0c972fb8903c656cb7e750b1d5c1ea1f26bd8c50
3d8f3e1fae697a905e87250aa5c0ae1f6c60ad66
744421b6f1d3aa30c7558570da8aa1d52f11d39d
ac017796cd3a5558dd78f73ecb82a6b961d8a3ec
e11f534a2fd666ecd841f657faf0751d5fe02034
eca5d275376911916c3e018c2d163cb8eb914263
a3144ddce360b6ac1b55fc27d19a318be1f224c4
84fc7d68bf3a309b3687da768f0dc206e647e653
fd5132bf8e99230a9074ce9bb3d950cd26b3d25b
720ceb5e566d26803db85af3ef69fc4fa14d355e
e97f338a79e2248afd3a2b9077d8ac1c334cdf38
0173ccf8d04014bcc4cc53df4d6574540f4231e4
52da09b8812d96c14d3e57a77784d56e5749a8ae
5169648c7429788c777947e21527e121d35aebe9
41c8c94cdd1c646296946a00dc72dff8fcb6556f
9b341f77b72b55674a030ad0209ac297e41c5570
6aacd7b9b8fc571e930d18da63efc8be46e31bdc
9875e5d15c0750b6ee4c41b0e1321e1dc0bb7810
fd60909d92b0e124957aa0783ea03471c73fd732
2f299011d707ffd8502e5a597f38f0d25ab3099b
6c10423816abd3b0f327863c9b8fcf55cd6265bf
14cc60568455ac2210f00ccb238ae41ddb473fcb
74cf0e9a42bf241d3f76f25aaed46e4b6550d842
9a0eacdab0398ced7d729f5c7a9b173eada2dcaf
3057f2e5ac8cd11cd018780c062da7c2bb11d2f7
dab224a6b259d9d7e16af4cf7e2718af8ba4a74c
fe6dc165cde8c826a3935b536c8cfd1c10ba7d62
7f3572bca7fd48b66649d761a054412b8369deba
2ea30dde468795a3ccb307343cd50eb7041f5ee3
5d4099ededa31d823a355d4ef0e53bed6b833539
69eb5257143b2de63c8c7471216ba6f025b6d7ef
e4c7387b32e314cca7e0ee2b1df197340272fad1
01f14dd38700098d97f933008327c8456c75af34
94040e25d5aacae0e55c3e9a91fe24d7daaaaaca
cd64f093886bf092b8d88c75ccd2e2f9118d3ba9
ceb96f9512f80188fafc61ec8d8d61c93d51a5c2
9a4e9bf98bd371cee2b69ef62a1189c24cd8baa4
dd861f56b65404a625538978d50819924f384a60
b2960c129e39d30f446d27e38f726975bef7b4f0
8351c6b1293bb0cc4a2e1235995c16433c84c463
008ba61116504d01558fe8afea0d5b3e90944b76
cce20d2824a877ffed6a912e3f22d7db3d8e5043
5e02e12edf58e1dfe37ed770fb32171e64993a81
7966a56b3a3c9c9ac6db5b9355ba5e96558ea7b6
5dea2f86730665894cf03f2b1fac98c1217a9fb4
451a4d8118d2c9c746c687efceaacac799e67ad9
059dfb5adcde569a19a9260c2ff85c7b47f8c516
da7449db2898c567fcfb40c595c0c21536c901b8
db97ce996b09b15049a9f818ce27a680e585bd11
e1f95b9a8fe2394e1cfb41fe83f130bdb68fe6b4
fc2c03e29a331cafc8b08abd5eade336904f40dc
385b11a95469f7477bdcf5b9c743982c4a866c65
d7e31d19b9ed766048ccf9129723ebe36b4842dc
9c9af56fb29f510ef75221a39964c128448526bd
83e3c642af5648aaaa119cce34dfef6ef3c560bc
a831fc506ca30a11c9d9b33c9cb2c43f6f01a446
62c5ebf183a0cc2332f04c1ee3323005a9878438
6bb31edda343bbbc4410e2f780c432129e610b47
846ef94e8af8f09340a740d11c93157c81079bc0
47aec581139d8a3ab4f2969b481868c1485e2ac6
e3f68d2cd84e15063c4f73c8420a444f9fb64a7a
3db1240470361a7314ea096f63c0fde74810caba
ae951371c666cc605ef69b5ca3f5f31d0cd30298
8ec035e739f01aeaa09742a92154f02ab3dbfe93
4737a65f7c1e125ba37ef35acbc6e99c4db2bed6
7005d4cae81a16a5a860fcd3c259d6ec07597072
d98807cb107ad2e9bf95138ee4bfb566bf75cb50
1e8cbd548f12e1ec861f3aed5fa9f080cf2782c4
25c2b2cad9cf873edc80747cd2df5874034282aa
676749cf8f76eadb469289b1d918cb5e485cd56b
8cba76ab8a5034ee21e95a99196f257b7e527b49
0151aa85f5a178da21ddf7d5e81398fff87604dc
f881500552171b5a8a8c3ec7a2dc06e493a1ebbe
8d39edf2ae13ed33d0529164d4e172bd4d060d7a
b5c3f29c81e524e860e5f9ebefdc573f83fc600d
b686bc7a882e461987ffb7bf1a25bdc6f82ccdd3
ebc1f42a059e7863adb57890562878f652922b56
b30835cea58d0b827cb56aaf9e4d5f6e673a1bf1
a2cf1028df49cbf53c57d0f599083fec59cc38b7
6efa045dbdfb4272f075255411f54fe436c31b8a
0c3f085a4044e9231287c11e34504624b04ee7cf
b8e628fdc2a7627283e0601ebfe8e978e91dfc00
d84e30103d59d6bace53223fc0d5787f03d7f028
2e0e70d0466bde79d134a215a399b20c2a9d0981
142de640101e2bee71fe2dc98e567d688c7e3aa7
8b02a5e91092f7363443a1cf96933dc445f0ce51
753c065260b1659c0d8d247b62f6b0fbe986c7b2
1113b6978475c9941be9b140e8cd6bc267469657
0a01d10b21c039484410c7898250afc4079db28d
b9bd23fa584a8f1900ada4addb96eeb750ef0a68
5ecc9b675c4cc5c1bdcd8f84e1a52457ad30144d
d91b0a31122b251998915b4eb274350fd42a841e
a829cb9c850cc75546547aa95fa3ca6100ce16f7
4b9bba5d1063d986be6463e4c5740eb18befc7b6
ffb2f17926143e242efc18b32ee0c630b5447687
3feb18fbff52f17a541abb1ebbb4894beec18d55
4acbde9bdb24bd802ba5bb0ebe19d71c8d753240
c9dba689c67ad7b16c8f6b1bf1bd382369fdec4e
ff956cafd71e4787e9ef7b64725142fe8838a65a
e2c090f1ca171b51d08e6ecbb74b27410bdfa7eb
73aa4812a2effb88bb64a42f93713a54a88e1ccb
8e0e0c69b0adb9a65098b18a7b96d6ed3a43940a
5dc8620cb17c3e606b635f8f95ecebdd66af04ee
18f8afd6fc87b3731145f61818f23b4b766da703
0d2d0bd0680557dc28f4f7b23562495cdbb3afc0
94da53667213590ad9767b335a9f2e51fe1e2c5d
c6cb97a42dcea5461a2931b097ddfd53b9cc5870
62a3d5192232ed847f3c7810344c43607a361e68
aa6992567e763a0b081e6bce753cc42bc287e9d3
1d67358d33250d456040091d8b29083b1b47d9bb
65d399a4ac7dc36df20b8b2bc773bbc6fa67f43b
acf7ea014fd1b7eb351dc6946b199ad2cc98f845
7e4dcbb7f0fc2b051e33b555c4fdc67796dbbab9
a07916245a9c21f3874a7b8c898638ca3b65df42
bb7368d9b07b02aecfbca6d01788a7327743ffed
60454c29275aac27c450323f0141d60ea8202842
c4d0ff10c85ca4c12ddfda1830cee475408205d5
a5da3671524fb761552a4eb5c1e27dd433f80fe4
43142e711f392ae1bcdade749dbaa9dd98664228
7aa0bdd118c78d8929e737392457d14f87d625ae
be921331245c4e04ef9f0ff7e359907e2d101cac
d6f654de1b8c27f84e34fbff12aadffb30342465
fef2680b335ffd861021ceff2a2637f5a360f037
79de53d3b87469e21d510ed6ddb33d809c05a3f6
475b10017d25db725e73eef11ca789ad7dfcf4ac
d14f3734dc27ecccfdb4683cf7ef3334a5a70b3f
f0c394dd6a109b97ba4a9ab16cc71b789d9ee38b
a57cd5c8278e1fd6fae6f02947c13880be4f3b62
83c6e4b636f3bf115955b6eeb3f91a5689e7f00b
b881752a8cc16f49ca605bf6a35af106e7e19c9a
8362e4bcc30e73460ae1b9731bc545fd2b12d8f0
b01216229149bed7c110221551353b54ff8e4704
10ad0e68785b27bab975868b83bc463b9c9c9153
7a66612abaa223ef0410fae66727a8abac3add03
8a7bdba957536b078f0421faf5dfaf8d65ff5add
defd6d03526345a410437eda15cbd067124f9c2c
f7e6c29aa4d1f7a607e0c87ea20105afeee0372a
751363e461257a4036a8f2aa740195401883c1ea
a8d66b5855eda5abf699ebf9c6dd721928007fb8
35ca716114bdf87a89857f2d633be3f4b13cbc70
cf319abfba8fc1b33de4c6a6f99e21864cc72563
4fd36e634e762ff2f94e9d66f24ceabe164f9e26
d0364113a1b57ed5017dbea6126b0cc5a5c2886d
9b3d7bf551d20acae4ee943a86c3cf898b6280ba
b35351d566efdde005747503c7f121d49e864848
57b1dc2b20f2e67c3313f0c6127b05041d125fb4
fadcdf4c98e9167f8f06a45dafa08d3acce7a741
3bcfcb7717bfc0e50c5b8f5c7beaed9f3ddf5478
b8388b7b5973dd3e84902c25c5378f9a412d6147
814f07ea363eb0464380ccfce7b4cf5209f1dcb2
b33315c8551bede3fb867efb3fdb1134cdff5115
c7bade1e7cc239e8fceb2c0b06f880e60eb8ebec
bb193f4f0f5b1b8bdc9cc72967f8fa6387faf7c4
b727e8d9f4a4987cbad41c75c630cfdb445c37a0
a2103d7fe328871d8231f8e07ba5dc9182f637b3
e36d269d16660db5bba028746564b5699721def5
35f9c486cc26bdff903241f4ab2b1dac2536059f
cd5314af7e8e120bceda896a3c17daa8eeedd528
200e09df8f0f7b94eb8941136482cf7c60fffb0d
17a618f241a6236c93af5ba2e09238369fc7d784
15aeb2bb0401d428cb7058e1d6554e20369ed352
40b0a406cc23467af8bb63d9a62378fa871e2031
7abd7f4cb237ef33b9e019f4529b6fb05b84284f
ac614b7506e820457417c3ea15ba99fbc8146155
8afd5a714da3f45389e0e4edeb64f49576c57c76
77d10571047d8b4153180e7a89d5c9aae6a84060
35479ce1706725f73bfe99428c43e8fe2e3f9157
360a0864ece712571d3df95e86251d6883bcdf7d
b5cd910848f592e33efb6de3226c07ae545a2aad
f5a9c28ca029ec5d1c5d3c594afa09374adf04e5
b9fce5928a1c5056f66706b67c01cd564e6c0a90
e5a2250e35706127304cd5ed86b81575f2636b5b
f30cffe4cef93aa190bcb1caf407ca0767107d06
45535f6e0af6785676531c81b4a2a3c480a98e70
740bd201b23beded9ade92a93301cddc67c4d106
70460e9e601171276dd6844cd6addd8db5eb2465
44dff2c35acb4736b183cef9e46155386f579716
46ea31f673bc9365fcca558f15c862ef6a899018
34556caf76c2422a76be3d1cecd223fcf435d93c
fea67ed9483b5cc76dc55eb4dd6f52baf445394d
31b1897ece6222826f379c1aebda891384b4b63a
80dcf3713b85b78979d4eb443fce9e992675b5c0
11993c742658321c0c5c200f48231583216d636c
7b5a089ed3007252e61df0aee3fc17c14d051745
890881c9a552c22f4be01dee16ee902c88f6700f
401ba79da09dded82a73996c8e0609a87cbd728b
e06313f41971de730085dcddf640a4549fc54fc3
054d52e86a954a615ed1f5add7f9d6842737d965
d8a60982c456a9cae3de745a37dc3f5985814f7f
2b39f575a510cf581aa828df494e633cc76fafa6
e11d353191175b329b3c9f9af7fa33e3ef9f837d
32ac2659ce98765aaae9c10cc7216d1f1faf155e
5f7f801227868c7abcce7e58dee3eff855011955
a013eaf0fe38d8689e27278bddd4ebf87ac5476b
401b3f3d2d96fa785c5321bb64c97cfb17c509e3
1fa4fd4321fa708b3db5cfb514e2192b00672aff
77976b24ff839c59c3b20d80cb28351ccb5e59a8
09b76d2966e2370a78ed37a31c2f7c23d08609c3
7000b24511618a21d40b39ee213d397e1d29497d
c2a6adfcd18c0d95dbed6ea62ac9c9a912d18123
6ba3609953d5c46a76ca1d0d3d83018be61454e6
3dff6074fe205e36fae219f277ef87aab097e236
1cdc8437fa6c621d96c4dfa5f6370c8fdb9cbc3d
d471720bc8f7ce7109276b49dd9c76b6163007d9
a67b1bdd027629dfc38601b21dc564272e28712c
20125a6d37d5c1614ffe1de94ca064095968e7f0
2b642751ef86265a1c953186810e118740f8bd2d
e562c1d74e2b6744572184e66a0673e55f9ba0b8
ba9687b5d746dda28d4a19c5c96d0679d7c77b15
f39d7d293c3e342b4f447bb440a9b6f72d2d20cc
95750ad9e700efd15d137963ba0dc443e6c9b6b0
0f76d8445048dc0bfcaf05e30b61b338a08f0e48
1a9a4c61d6a371d9e95eaef44fa2452d17a09d22
912b41aad5983d9735379d322eae8f6d40d8bdca
eea0b559472874ff48c34f16bb805108967e6489
ad4e7ba4032e6b1c047230b3144848dbcf66a127
b6d93107393dee6eebb05376a67f2e4dfcb44311

View file

@ -0,0 +1,8 @@
e34590b7a2d186b3bb9a1170d02d52b36c791c78
8977833d74f8681aa0d9a5e84b0dd3d81519774d
6f5561530cb3a94e4c86454e84732197325be172
ee419e04a961543444be6db66aef52e6e37936d6
d845de9d438e1a249a0c2fcb778e8ea3b7e06cef
0bba4a6c10060405a94d52533af2f9bdacd4f29c
77711c0722964ead965e0ba2ee9ed4a03cb3d292
501d23cac6dd911511f15d091ee031a15b90ebde

View file

@ -0,0 +1,11 @@
4c8124ffcf4039d292442eeccabdeca5af5c5017
634396b2f541a9f2d58b00be1a07f0c358b999b3
ab25fd8483882c3bda8a458ad2965d2248654335
e34590b7a2d186b3bb9a1170d02d52b36c791c78
8977833d74f8681aa0d9a5e84b0dd3d81519774d
6f5561530cb3a94e4c86454e84732197325be172
ee419e04a961543444be6db66aef52e6e37936d6
d845de9d438e1a249a0c2fcb778e8ea3b7e06cef
0bba4a6c10060405a94d52533af2f9bdacd4f29c
77711c0722964ead965e0ba2ee9ed4a03cb3d292
501d23cac6dd911511f15d091ee031a15b90ebde

View file

@ -0,0 +1,7 @@
commit 4c8124ffcf4039d292442eeccabdeca5af5c5017
tree 672eca9b7f9e09c22dcb128c283e8c3c8d7697a4
parent 634396b2f541a9f2d58b00be1a07f0c358b999b3
author Tom Preston-Werner <tom@mojombo.com> 1191999972 -0700
committer Tom Preston-Werner <tom@mojombo.com> 1191999972 -0700
implement Grit#heads

View file

@ -0,0 +1 @@
80f136f

View file

@ -0,0 +1,6 @@
commit 1e3824339762bd48316fe87bfafc853732d43264
tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author Tom Preston-Werner <tom@mojombo.com> 1157392833 +0000
committer Tom Preston-Werner <tom@mojombo.com> 1157392833 +0000
initial directory structure

View file

@ -0,0 +1,6 @@
c2e3c20affa3e2b61a05fdc9ee3061dd416d915e 'refs/pull/1/head' of http://github.com/loic-bot/testrepo
fd8695d980e2c6df62b7785f93fd6292d1e283fb 'refs/pull/1/merge' of http://github.com/loic-bot/testrepo
bb46faf089720d1a3f9e4dc3b11ed5ff77d7e764 'refs/pull/2/head' of http://github.com/loic-bot/testrepo
5faa366d58454eceea811e0e34c502bdd7b37e4b 'refs/pull/2/merge' of http://github.com/loic-bot/testrepo
b3ad3c4f1864b50d4d3e09320947a1a3c34c9ea2 'refs/pull/3/head' of http://github.com/loic-bot/testrepo
71fe57e511776042b009ed4bb281b62b0522b434 'refs/pull/3/merge' of http://github.com/loic-bot/testrepo

View file

@ -0,0 +1,6 @@
= [up to date] refs/pull/1/head -> pull/1/head
= [up to date] refs/pull/1/merge -> pull/1/merge
= [up to date] refs/pull/2/head -> pull/2/head
= [up to date] refs/pull/2/merge -> pull/2/merge
= [up to date] refs/pull/3/head -> pull/3/head
= [up to date] refs/pull/3/merge -> pull/3/merge