@@ -99,6 +99,12 @@ func (r *Repo) PrintCmdOnExec() *Repo {
9999 return r
100100}
101101
102+ // SetDryRun settings.
103+ func (r * Repo ) SetDryRun (dr bool ) * Repo {
104+ r .gw .DryRun = dr
105+ return r
106+ }
107+
102108// Init run git init for the repo dir.
103109func (r * Repo ) Init () error {
104110 return r .gw .Init ().Run ()
@@ -431,21 +437,26 @@ func (r *Repo) CurBranchName() string {
431437 return brName
432438 }
433439
434- // cat .git/HEAD
440+ // cat .git/HEAD
435441 // OR
436- // git symbolic-ref HEAD // out: refs/heads/fea_pref
437- // git symbolic-ref --short -q HEAD // on checkout tag, run will error
438- // git rev-parse --abbrev-ref -q HEAD
439- str , err := r .gw .RevParse ("--abbrev-ref" , "-q" , "HEAD" ).Output ()
440- if err != nil {
441- r .setErr (err )
442- return ""
442+ // git branch --show-current // on high version git
443+ // OR
444+ // git symbolic-ref HEAD // out: refs/heads/fea_pref
445+ // git symbolic-ref --short -q HEAD // on checkout tag, run will error
446+ // Or
447+ // git rev-parse --abbrev-ref -q HEAD // on init project, will error
448+
449+ str := r .gw .Branch ("--show-current" ).SafeOutput ()
450+ if len (str ) == 0 {
451+ str , r .err = r .gw .RevParse ("--abbrev-ref" , "-q" , "HEAD" ).Output ()
452+ if r .err != nil {
453+ return ""
454+ }
443455 }
444456
445457 // eg: fea_pref
446458 brName = cmdr .FirstLine (str )
447459 r .cache .Set (cacheCurrentBranch , brName )
448-
449460 return brName
450461}
451462
@@ -690,3 +701,8 @@ func (r *Repo) Git() *GitWrap {
690701func (r * Repo ) Cmd (name string , args ... string ) * GitWrap {
691702 return r .gw .Cmd (name , args ... )
692703}
704+
705+ // QuickRun git command
706+ func (r * Repo ) QuickRun (cmd string , args ... string ) error {
707+ return r .gw .Cmd (cmd , args ... ).Run ()
708+ }
0 commit comments