@@ -203,45 +203,45 @@ func (repo *Repository) commitsByRange(id SHA1, page int) (*list.List, error) {
203203
204204func (repo * Repository ) searchCommits (id SHA1 , opts SearchCommitsOptions ) (* list.List , error ) {
205205 cmd := NewCommand ("log" , id .String (), "-100" , "-i" , prettyLogFormat )
206- args := []string { "log" , "-i" , prettyLogFormat }
206+ var args []string
207207 if len (opts .Authors ) > 0 {
208208 for _ , v := range opts .Authors {
209- cmd .AddArguments ("--author=" + v )
210209 args = append (args , "--author=" + v )
211210 }
212211 }
213212 if len (opts .Committers ) > 0 {
214213 for _ , v := range opts .Committers {
215- cmd .AddArguments ("--committer=" + v )
216214 args = append (args , "--committer=" + v )
217215 }
218216 }
219217 if len (opts .After ) > 0 {
220- cmd .AddArguments ("--after=" + opts .After )
221218 args = append (args , "--after=" + opts .After )
222219 }
223220 if len (opts .Before ) > 0 {
224- cmd .AddArguments ("--before=" + opts .Before )
225221 args = append (args , "--before=" + opts .Before )
226222 }
227223 if opts .All {
228- cmd .AddArguments ("--all" )
229224 args = append (args , "--all" )
230225 }
231226 if len (opts .Keywords ) > 0 {
232227 for _ , v := range opts .Keywords {
233228 cmd .AddArguments ("--grep=" + v )
234229 }
235230 }
231+ cmd .AddArguments (args ... )
236232 stdout , err := cmd .RunInDirBytes (repo .Path )
237233 if err != nil {
238234 return nil , err
239235 }
236+ if len (stdout ) != 0 {
237+ stdout = append (stdout , '\n' )
238+ }
240239 if len (opts .Keywords ) > 0 {
241240 for _ , v := range opts .Keywords {
242241 if len (v ) >= 4 {
243- hashCmd := NewCommand (args ... )
244- hashCmd .AddArguments ("-1" , v )
242+ hashCmd := NewCommand ("log" , "-1" , prettyLogFormat )
243+ hashCmd .AddArguments (args ... )
244+ hashCmd .AddArguments (v )
245245 hashMatching , err := hashCmd .RunInDirBytes (repo .Path )
246246 if err != nil || bytes .Contains (stdout , hashMatching ) {
247247 continue
0 commit comments