Permalink
Browse files

Make it more like a real project.

Add copyright statements, and license the code under the GPLv2.

Also add a README file.
  • Loading branch information...
1 parent a029d7b commit c4c19475f32c7eb7a195c2134f30f81aa279f4cc @james-w james-w committed Mar 25, 2007
Showing with 489 additions and 0 deletions.
  1. +339 −0 COPYING
  2. +39 −0 README
  3. +18 −0 git/__init__.py
  4. +21 −0 git/objects.py
  5. +18 −0 git/repository.py
  6. +18 −0 git/tests/__init__.py
  7. +18 −0 git/tests/test_objects.py
  8. +18 −0 git/tests/test_repository.py
View
339 COPYING

Large diffs are not rendered by default.

Oops, something went wrong.
View
39 README
@@ -0,0 +1,39 @@
+This is the python-git project.
+
+It aims to give an interface to git repos that doesn't call out to git
+directly. It is probably going to be implemented in pure python.
+
+Currently can read blobs, trees and commits from the files. It reads both
+legacy and new headers. However it is untested for anything but the simple
+case.
+
+Can also understand a little about the repository format.
+
+The testsuite uses the nosetests program from Turbogears, as I got annoyed
+trying to set up unittest.
+
+Open up a repo by passing it the path to the .git dir. You can then ask for
+HEAD with repo.head() or a ref with repo.ref(name). Both return the SHA id
+they currently point to. You can then grab this object with
+repo.get_object(sha).
+
+For the actual objects the ShaFile.from_file(filename) will return the object
+stored in the file whatever it is. To ensure you get the correct type then
+call {Blob,Tree,Commit}.from_file(filename). I will add repo methods to do
+this for you with file lookup soon.
+
+There is also support for creating blobs. Blob.from_string(string) will create
+a blob object from the string. You can then call blob.sha() to get the sha
+object for this blob, and hexdigest() on that will get its ID. There is
+currently no method that allows you to write it out though.
+
+Everything is currently done with assertions, where much of it should probably
+be exceptions. This was merely done for expediency. If you hit an assertion,
+it either means you have done something wrong, there is corruption, or
+you are trying an unsupported operation.
+
+If you have any comments or questions you can contact me at
+jw+debian@jameswestby.net
+
+James Westby
+
View
@@ -0,0 +1,18 @@
+# __init__.py -- The git module of python-git
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
View
@@ -1,3 +1,24 @@
+# objects.py -- Acces to base git objects
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+# The header parsing code is based on that from git itself, which is
+# Copyright (C) 2005 Linus Torvalds
+# and licensed under v2 of the GPL.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
import mmap
import os
import sha
View
@@ -1,3 +1,21 @@
+# repository.py -- For dealing wih git repositories.
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
import os
from objects import ShaFile
View
@@ -1,3 +1,21 @@
+# __init__.py -- The tests for python-git
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
import unittest
import test_objects
View
@@ -1,3 +1,21 @@
+# test_objects.py -- tests for objects.py
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
import os
import unittest
@@ -1,3 +1,21 @@
+# test_repository.py -- tests for repository.py
+# Copyright (C) 2007 James Westby <jw+debian@jameswestby.net>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
import os
import unittest

0 comments on commit c4c1947

Please sign in to comment.