3737
3838from gitdb .base import IStream
3939from gitdb .typ import str_tree_type
40+ from git .compat import defenc
4041
4142__all__ = ('write_cache' , 'read_cache' , 'write_tree_from_cache' , 'entry_key' ,
4243 'stat_mode_to_index_mode' , 'S_IFGITLINK' )
@@ -86,9 +87,9 @@ def write_cache(entries, stream, extension_data=None, ShaStreamCls=IndexFileSHA1
8687 flags = plen | (entry [2 ] & CE_NAMEMASK_INV ) # clear possible previous values
8788 write (pack (">LLLLLL20sH" , entry [6 ], entry [7 ], entry [0 ],
8889 entry [8 ], entry [9 ], entry [10 ], entry [1 ], flags ))
89- write (path )
90+ write (path . encode ( defenc ) )
9091 real_size = ((tell () - beginoffset + 8 ) & ~ 7 )
91- write ("\0 " * ((beginoffset + real_size ) - tell ()))
92+ write (b "\0 " * ((beginoffset + real_size ) - tell ()))
9293 # END for each entry
9394
9495 # write previously cached extensions data
@@ -102,7 +103,7 @@ def write_cache(entries, stream, extension_data=None, ShaStreamCls=IndexFileSHA1
102103def read_header (stream ):
103104 """Return tuple(version_long, num_entries) from the given stream"""
104105 type_id = stream .read (4 )
105- if type_id != "DIRC" :
106+ if type_id != b "DIRC" :
106107 raise AssertionError ("Invalid index file header: %r" % type_id )
107108 version , num_entries = unpack (">LL" , stream .read (4 * 2 ))
108109
@@ -142,7 +143,7 @@ def read_cache(stream):
142143 (dev , ino , mode , uid , gid , size , sha , flags ) = \
143144 unpack (">LLLLLL20sH" , read (20 + 4 * 6 + 2 ))
144145 path_size = flags & CE_NAMEMASK
145- path = read (path_size )
146+ path = read (path_size ). decode ( defenc )
146147
147148 real_size = ((tell () - beginoffset + 8 ) & ~ 7 )
148149 read ((beginoffset + real_size ) - tell ())
0 commit comments