@@ -14,6 +14,7 @@ import (
1414 "code.gitea.io/gitea/models/db"
1515 "code.gitea.io/gitea/models/unittest"
1616 user_model "code.gitea.io/gitea/models/user"
17+ git_module "code.gitea.io/gitea/modules/git"
1718 "code.gitea.io/gitea/modules/gitrepo"
1819 "code.gitea.io/gitea/modules/test"
1920 repo_service "code.gitea.io/gitea/services/repository"
@@ -176,12 +177,12 @@ func TestCompareRawDiffNormal(t *testing.T) {
176177 r , _ := gitrepo .OpenRepository (db .DefaultContext , repo )
177178
178179 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
179- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
180+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
180181
181182 testEditFile (t , session , user1 .Name , repo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
182183
183184 newRef , _ := r .GetBranchCommit (repo .DefaultBranch )
184- newBlobRef , _ := r . RevParse ( newRef .ID .String (), "README.md" )
185+ newBlobRef , _ := revParse ( r , newRef .ID .String (), "README.md" )
185186
186187 req := NewRequest (t , "GET" , fmt .Sprintf ("/user1/test_raw_diff/compare/%s...%s.diff" , oldRef .ID .String (), newRef .ID .String ()))
187188 resp := session .MakeRequest (t , req , http .StatusOK )
@@ -216,12 +217,12 @@ func TestCompareRawDiffPatch(t *testing.T) {
216217
217218 // Get the old commit and blob reference
218219 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
219- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
220+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
220221
221222 resp := testEditFile (t , session , user1 .Name , repo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
222223
223224 newRef , _ := r .GetBranchCommit (repo .DefaultBranch )
224- newBlobRef , _ := r . RevParse ( newRef .ID .String (), "README.md" )
225+ newBlobRef , _ := revParse ( r , newRef .ID .String (), "README.md" )
225226
226227 // Get the last modified time from the response header
227228 respTs , _ := time .Parse (time .RFC1123 , resp .Result ().Header .Get ("Last-Modified" ))
@@ -281,12 +282,12 @@ func TestCompareRawDiffNormalSameOwnerDifferentRepo(t *testing.T) {
281282 hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
282283
283284 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
284- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
285+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
285286
286287 testEditFile (t , session , user1 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
287288
288289 newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
289- newBlobRef , _ := hr . RevParse ( newRef .ID .String (), "README.md" )
290+ newBlobRef , _ := revParse ( hr , newRef .ID .String (), "README.md" )
290291
291292 req := NewRequest (t , "GET" , fmt .Sprintf ("/user1/test_raw_diff/compare/%s...%s/%s:%s.diff" , oldRef .ID .String (), user1 .LowerName , headRepo .LowerName , newRef .ID .String ()))
292293 resp := session .MakeRequest (t , req , http .StatusOK )
@@ -332,13 +333,13 @@ func TestCompareRawDiffNormalAcrossForks(t *testing.T) {
332333 hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
333334
334335 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
335- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
336+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
336337
337338 testEditFile (t , session , user2 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
338339 session = loginUser (t , user1 .Name )
339340
340341 newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
341- newBlobRef , _ := hr . RevParse ( newRef .ID .String (), "README.md" )
342+ newBlobRef , _ := revParse ( hr , newRef .ID .String (), "README.md" )
342343
343344 session = loginUser (t , user1 .Name )
344345
@@ -358,3 +359,15 @@ index %s..%s 100644
358359 assert .Equal (t , expected , resp .Body .String ())
359360 })
360361}
362+
363+ // helper function to use rev-parse
364+ // revParse resolves a revision reference to other git-related objects
365+ func revParse (repo * git_module.Repository , ref , file string ) (string , error ) {
366+ stdout , _ , err := git_module .NewCommand ("rev-parse" ).
367+ AddDynamicArguments (ref + ":" + file ).
368+ RunStdString (repo .Ctx , & git_module.RunOpts {Dir : repo .Path })
369+ if err != nil {
370+ return "" , err
371+ }
372+ return strings .TrimSpace (stdout ), nil
373+ }
0 commit comments