Use hexsha's in Index API.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 30 Apr 2009 11:25:18 +0000 (11:27 +0002)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 30 Apr 2009 11:25:18 +0000 (11:27 +0002)
dulwich/index.py
dulwich/tests/test_index.py

index bfc90d6bfcd346a620c12ce5d32f732f3960d729..3e44e5fd082879464830bb38a0437c55dbf78bff 100644 (file)
@@ -20,6 +20,9 @@
 
 import struct
 
+from dulwich.objects import sha_to_hex, hex_to_sha
+
+
 def read_cache_time(f):
     return struct.unpack(">LL", f.read(8))
 
@@ -49,7 +52,8 @@ def read_cache_entry(f):
     # Padding:
     real_size = ((f.tell() - beginoffset + 7) & ~7)
     f.seek(beginoffset + real_size)
-    return (name, ctime, mtime, ino, dev, mode, uid, gid, size, sha, flags)
+    return (name, ctime, mtime, ino, dev, mode, uid, gid, size, 
+            sha_to_hex(sha), flags)
 
 
 def write_cache_entry(f, entry):
@@ -63,7 +67,7 @@ def write_cache_entry(f, entry):
     (name, ctime, mtime, ino, dev, mode, uid, gid, size, sha, flags) = entry
     write_cache_time(f, ctime)
     write_cache_time(f, mtime)
-    f.write(struct.pack(">LLLLLL20sH", ino, dev, mode, uid, gid, size, sha, flags))
+    f.write(struct.pack(">LLLLLL20sH", ino, dev, mode, uid, gid, size, hex_to_sha(sha), flags))
     f.write(name)
     f.write(chr(0))
     real_size = ((f.tell() - beginoffset + 7) & ~7)
index da06438ffbec813de6f3ad939412612c9126db99..5b8aadc366727cbaacbb1ec9ddc5c86ee4375a16 100644 (file)
@@ -42,7 +42,7 @@ class SimpleIndexTestcase(IndexTestCase):
         self.assertEquals(['bla'], list(self.get_simple_index("index")))
 
     def test_getitem(self):
-        self.assertEquals( ((1230680220, 0), (1230680220, 0), 2050, 3761020, 33188, 1000, 1000, 0, '\xe6\x9d\xe2\x9b\xb2\xd1\xd6CK\x8b)\xaewZ\xd8\xc2\xe4\x8cS\x91', 3)
+        self.assertEquals( ((1230680220, 0), (1230680220, 0), 2050, 3761020, 33188, 1000, 1000, 0, 'e69de29bb2d1d6434b8b29ae775ad8c2e48c5391', 3)
             , 
                 self.get_simple_index("index")["bla"])
 
@@ -50,7 +50,7 @@ class SimpleIndexTestcase(IndexTestCase):
 class SimpleIndexWriterTestCase(IndexTestCase):
 
     def test_simple_write(self):
-        entries = [('barbla', (1230680220, 0), (1230680220, 0), 2050, 3761020, 33188, 1000, 1000, 0, '\xe6\x9d\xe2\x9b\xb2\xd1\xd6CK\x8b)\xaewZ\xd8\xc2\xe4\x8cS\x91', 3)]
+        entries = [('barbla', (1230680220, 0), (1230680220, 0), 2050, 3761020, 33188, 1000, 1000, 0, 'e69de29bb2d1d6434b8b29ae775ad8c2e48c5391', 3)]
         x = open('test-simple-write-index', 'w+')
         try:
             write_index(x, entries)