37
37
38
38
from gitdb .base import IStream
39
39
from gitdb .typ import str_tree_type
40
+ from git .compat import defenc
40
41
41
42
__all__ = ('write_cache' , 'read_cache' , 'write_tree_from_cache' , 'entry_key' ,
42
43
'stat_mode_to_index_mode' , 'S_IFGITLINK' )
@@ -86,9 +87,9 @@ def write_cache(entries, stream, extension_data=None, ShaStreamCls=IndexFileSHA1
86
87
flags = plen | (entry [2 ] & CE_NAMEMASK_INV ) # clear possible previous values
87
88
write (pack (">LLLLLL20sH" , entry [6 ], entry [7 ], entry [0 ],
88
89
entry [8 ], entry [9 ], entry [10 ], entry [1 ], flags ))
89
- write (path )
90
+ write (path . encode ( defenc ) )
90
91
real_size = ((tell () - beginoffset + 8 ) & ~ 7 )
91
- write ("\0 " * ((beginoffset + real_size ) - tell ()))
92
+ write (b "\0 " * ((beginoffset + real_size ) - tell ()))
92
93
# END for each entry
93
94
94
95
# write previously cached extensions data
@@ -102,7 +103,7 @@ def write_cache(entries, stream, extension_data=None, ShaStreamCls=IndexFileSHA1
102
103
def read_header (stream ):
103
104
"""Return tuple(version_long, num_entries) from the given stream"""
104
105
type_id = stream .read (4 )
105
- if type_id != "DIRC" :
106
+ if type_id != b "DIRC" :
106
107
raise AssertionError ("Invalid index file header: %r" % type_id )
107
108
version , num_entries = unpack (">LL" , stream .read (4 * 2 ))
108
109
@@ -142,7 +143,7 @@ def read_cache(stream):
142
143
(dev , ino , mode , uid , gid , size , sha , flags ) = \
143
144
unpack (">LLLLLL20sH" , read (20 + 4 * 6 + 2 ))
144
145
path_size = flags & CE_NAMEMASK
145
- path = read (path_size )
146
+ path = read (path_size ). decode ( defenc )
146
147
147
148
real_size = ((tell () - beginoffset + 8 ) & ~ 7 )
148
149
read ((beginoffset + real_size ) - tell ())
0 commit comments