@@ -111,17 +111,17 @@ static void write_trailer(void)
111
111
* queues up writes, so that all our write(2) calls write exactly one
112
112
* full block; pads writes to RECORDSIZE
113
113
*/
114
- static int stream_blocked (const unsigned char * sha1 )
114
+ static int stream_blocked (const struct object_id * oid )
115
115
{
116
116
struct git_istream * st ;
117
117
enum object_type type ;
118
118
unsigned long sz ;
119
119
char buf [BLOCKSIZE ];
120
120
ssize_t readlen ;
121
121
122
- st = open_istream (sha1 , & type , & sz , NULL );
122
+ st = open_istream (oid -> hash , & type , & sz , NULL );
123
123
if (!st )
124
- return error ("cannot stream blob %s" , sha1_to_hex ( sha1 ));
124
+ return error ("cannot stream blob %s" , oid_to_hex ( oid ));
125
125
for (;;) {
126
126
readlen = read_istream (st , buf , sizeof (buf ));
127
127
if (readlen <= 0 )
@@ -218,22 +218,22 @@ static void prepare_header(struct archiver_args *args,
218
218
}
219
219
220
220
static void write_extended_header (struct archiver_args * args ,
221
- const unsigned char * sha1 ,
221
+ const struct object_id * oid ,
222
222
const void * buffer , unsigned long size )
223
223
{
224
224
struct ustar_header header ;
225
225
unsigned int mode ;
226
226
memset (& header , 0 , sizeof (header ));
227
227
* header .typeflag = TYPEFLAG_EXT_HEADER ;
228
228
mode = 0100666 ;
229
- xsnprintf (header .name , sizeof (header .name ), "%s.paxheader" , sha1_to_hex ( sha1 ));
229
+ xsnprintf (header .name , sizeof (header .name ), "%s.paxheader" , oid_to_hex ( oid ));
230
230
prepare_header (args , & header , mode , size );
231
231
write_blocked (& header , sizeof (header ));
232
232
write_blocked (buffer , size );
233
233
}
234
234
235
235
static int write_tar_entry (struct archiver_args * args ,
236
- const unsigned char * sha1 ,
236
+ const struct object_id * oid ,
237
237
const char * path , size_t pathlen ,
238
238
unsigned int mode )
239
239
{
@@ -257,7 +257,7 @@ static int write_tar_entry(struct archiver_args *args,
257
257
mode = (mode | ((mode & 0100 ) ? 0777 : 0666 )) & ~tar_umask ;
258
258
} else {
259
259
return error ("unsupported file mode: 0%o (SHA1: %s)" ,
260
- mode , sha1_to_hex ( sha1 ));
260
+ mode , oid_to_hex ( oid ));
261
261
}
262
262
if (pathlen > sizeof (header .name )) {
263
263
size_t plen = get_path_prefix (path , pathlen ,
@@ -268,22 +268,22 @@ static int write_tar_entry(struct archiver_args *args,
268
268
memcpy (header .name , path + plen + 1 , rest );
269
269
} else {
270
270
xsnprintf (header .name , sizeof (header .name ), "%s.data" ,
271
- sha1_to_hex ( sha1 ));
271
+ oid_to_hex ( oid ));
272
272
strbuf_append_ext_header (& ext_header , "path" ,
273
273
path , pathlen );
274
274
}
275
275
} else
276
276
memcpy (header .name , path , pathlen );
277
277
278
278
if (S_ISREG (mode ) && !args -> convert &&
279
- sha1_object_info (sha1 , & size ) == OBJ_BLOB &&
279
+ sha1_object_info (oid -> hash , & size ) == OBJ_BLOB &&
280
280
size > big_file_threshold )
281
281
buffer = NULL ;
282
282
else if (S_ISLNK (mode ) || S_ISREG (mode )) {
283
283
enum object_type type ;
284
- buffer = sha1_file_to_archive (args , path , sha1 , old_mode , & type , & size );
284
+ buffer = sha1_file_to_archive (args , path , oid -> hash , old_mode , & type , & size );
285
285
if (!buffer )
286
- return error ("cannot read %s" , sha1_to_hex ( sha1 ));
286
+ return error ("cannot read %s" , oid_to_hex ( oid ));
287
287
} else {
288
288
buffer = NULL ;
289
289
size = 0 ;
@@ -292,7 +292,7 @@ static int write_tar_entry(struct archiver_args *args,
292
292
if (S_ISLNK (mode )) {
293
293
if (size > sizeof (header .linkname )) {
294
294
xsnprintf (header .linkname , sizeof (header .linkname ),
295
- "see %s.paxheader" , sha1_to_hex ( sha1 ));
295
+ "see %s.paxheader" , oid_to_hex ( oid ));
296
296
strbuf_append_ext_header (& ext_header , "linkpath" ,
297
297
buffer , size );
298
298
} else
@@ -308,7 +308,7 @@ static int write_tar_entry(struct archiver_args *args,
308
308
prepare_header (args , & header , mode , size_in_header );
309
309
310
310
if (ext_header .len > 0 ) {
311
- write_extended_header (args , sha1 , ext_header .buf ,
311
+ write_extended_header (args , oid , ext_header .buf ,
312
312
ext_header .len );
313
313
}
314
314
strbuf_release (& ext_header );
@@ -317,7 +317,7 @@ static int write_tar_entry(struct archiver_args *args,
317
317
if (buffer )
318
318
write_blocked (buffer , size );
319
319
else
320
- err = stream_blocked (sha1 );
320
+ err = stream_blocked (oid );
321
321
}
322
322
free (buffer );
323
323
return err ;
0 commit comments