@@ -2225,6 +2225,7 @@ static void parse_new_tag(void)
2225
2225
struct tag * t ;
2226
2226
uintmax_t from_mark = 0 ;
2227
2227
unsigned char sha1 [20 ];
2228
+ enum object_type type ;
2228
2229
2229
2230
/* Obtain the new tag name from the rest of our command */
2230
2231
sp = strchr (command_buf .buf , ' ' ) + 1 ;
@@ -2245,19 +2246,18 @@ static void parse_new_tag(void)
2245
2246
s = lookup_branch (from );
2246
2247
if (s ) {
2247
2248
hashcpy (sha1 , s -> sha1 );
2249
+ type = OBJ_COMMIT ;
2248
2250
} else if (* from == ':' ) {
2249
2251
struct object_entry * oe ;
2250
2252
from_mark = strtoumax (from + 1 , NULL , 10 );
2251
2253
oe = find_mark (from_mark );
2252
- if (oe -> type != OBJ_COMMIT )
2253
- die ("Mark :%" PRIuMAX " not a commit" , from_mark );
2254
+ type = oe -> type ;
2254
2255
hashcpy (sha1 , oe -> sha1 );
2255
2256
} else if (!get_sha1 (from , sha1 )) {
2256
2257
unsigned long size ;
2257
2258
char * buf ;
2258
2259
2259
- buf = read_object_with_reference (sha1 ,
2260
- commit_type , & size , sha1 );
2260
+ buf = read_sha1_file (sha1 , & type , & size );
2261
2261
if (!buf || size < 46 )
2262
2262
die ("Not a valid commit: %s" , from );
2263
2263
free (buf );
@@ -2282,7 +2282,7 @@ static void parse_new_tag(void)
2282
2282
"object %s\n"
2283
2283
"type %s\n"
2284
2284
"tag %s\n" ,
2285
- sha1_to_hex (sha1 ), commit_type , t -> name );
2285
+ sha1_to_hex (sha1 ), typename ( type ) , t -> name );
2286
2286
if (tagger )
2287
2287
strbuf_addf (& new_data ,
2288
2288
"tagger %s\n" , tagger );
0 commit comments