@ -31,8 +31,13 @@ func (repo *Repository) GetTagCommitID(name string) (string, error) {
// ConvertToSHA1 returns a Hash object from a potential ID string
// ConvertToSHA1 returns a Hash object from a potential ID string
func ( repo * Repository ) ConvertToSHA1 ( commitID string ) ( SHA1 , error ) {
func ( repo * Repository ) ConvertToSHA1 ( commitID string ) ( SHA1 , error ) {
if len ( commitID ) != 40 {
if len ( commitID ) == 40 {
var err error
sha1 , err := NewIDFromString ( commitID )
if err == nil {
return sha1 , nil
}
}
actualCommitID , err := NewCommand ( "rev-parse" , "--verify" , commitID ) . RunInDir ( repo . Path )
actualCommitID , err := NewCommand ( "rev-parse" , "--verify" , commitID ) . RunInDir ( repo . Path )
if err != nil {
if err != nil {
if strings . Contains ( err . Error ( ) , "unknown revision or path" ) ||
if strings . Contains ( err . Error ( ) , "unknown revision or path" ) ||
@ -41,9 +46,8 @@ func (repo *Repository) ConvertToSHA1(commitID string) (SHA1, error) {
}
}
return SHA1 { } , err
return SHA1 { } , err
}
}
commitID = actualCommitID
}
return NewIDFromString ( actualCommitID )
return NewIDFromString ( commitID )
}
}
// GetCommit returns commit object of by ID string.
// GetCommit returns commit object of by ID string.