@@ -8,21 +8,25 @@ static const char * const git_symbolic_ref_usage[] = {
88 NULL
99};
1010
11+ static int shorten ;
12+
1113static void check_symref (const char * HEAD , int quiet )
1214{
1315 unsigned char sha1 [20 ];
1416 int flag ;
15- const char * refs_heads_master = resolve_ref_unsafe (HEAD , sha1 , 0 , & flag );
17+ const char * refname = resolve_ref_unsafe (HEAD , sha1 , 0 , & flag );
1618
17- if (!refs_heads_master )
19+ if (!refname )
1820 die ("No such ref: %s" , HEAD );
1921 else if (!(flag & REF_ISSYMREF )) {
2022 if (!quiet )
2123 die ("ref %s is not a symbolic ref" , HEAD );
2224 else
2325 exit (1 );
2426 }
25- puts (refs_heads_master );
27+ if (shorten )
28+ refname = shorten_unambiguous_ref (refname , 0 );
29+ puts (refname );
2630}
2731
2832int cmd_symbolic_ref (int argc , const char * * argv , const char * prefix )
@@ -32,6 +36,7 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)
3236 struct option options [] = {
3337 OPT__QUIET (& quiet ,
3438 "suppress error message for non-symbolic (detached) refs" ),
39+ OPT_BOOL (0 , "short" , & shorten , "shorten ref output" ),
3540 OPT_STRING ('m' , NULL , & msg , "reason" , "reason of the update" ),
3641 OPT_END (),
3742 };
0 commit comments