@@ -13,6 +13,7 @@ import (
1313
1414 "code.gitea.io/gitea/models/unittest"
1515 user_model "code.gitea.io/gitea/models/user"
16+ git_module "code.gitea.io/gitea/modules/git"
1617 "code.gitea.io/gitea/modules/gitrepo"
1718 "code.gitea.io/gitea/modules/test"
1819 repo_service "code.gitea.io/gitea/services/repository"
@@ -175,12 +176,12 @@ func TestCompareRawDiffNormal(t *testing.T) {
175176 r , _ := gitrepo .OpenRepository (db .DefaultContext , repo )
176177
177178 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
178- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
179+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
179180
180181 testEditFile (t , session , user1 .Name , repo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
181182
182183 newRef , _ := r .GetBranchCommit (repo .DefaultBranch )
183- newBlobRef , _ := r . RevParse ( newRef .ID .String (), "README.md" )
184+ newBlobRef , _ := revParse ( r , newRef .ID .String (), "README.md" )
184185
185186 req := NewRequest (t , "GET" , fmt .Sprintf ("/user1/test_raw_diff/compare/%s...%s.diff" , oldRef .ID .String (), newRef .ID .String ()))
186187 resp := session .MakeRequest (t , req , http .StatusOK )
@@ -215,12 +216,12 @@ func TestCompareRawDiffPatch(t *testing.T) {
215216
216217 // Get the old commit and blob reference
217218 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
218- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
219+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
219220
220221 resp := testEditFile (t , session , user1 .Name , repo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
221222
222223 newRef , _ := r .GetBranchCommit (repo .DefaultBranch )
223- newBlobRef , _ := r . RevParse ( newRef .ID .String (), "README.md" )
224+ newBlobRef , _ := revParse ( r , newRef .ID .String (), "README.md" )
224225
225226 // Get the last modified time from the response header
226227 respTs , _ := time .Parse (time .RFC1123 , resp .Result ().Header .Get ("Last-Modified" ))
@@ -280,12 +281,12 @@ func TestCompareRawDiffNormalSameOwnerDifferentRepo(t *testing.T) {
280281 hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
281282
282283 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
283- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
284+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
284285
285286 testEditFile (t , session , user1 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
286287
287288 newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
288- newBlobRef , _ := hr . RevParse ( newRef .ID .String (), "README.md" )
289+ newBlobRef , _ := revParse ( hr , newRef .ID .String (), "README.md" )
289290
290291 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 ()))
291292 resp := session .MakeRequest (t , req , http .StatusOK )
@@ -331,13 +332,13 @@ func TestCompareRawDiffNormalAcrossForks(t *testing.T) {
331332 hr , _ := gitrepo .OpenRepository (db .DefaultContext , headRepo )
332333
333334 oldRef , _ := r .GetBranchCommit (repo .DefaultBranch )
334- oldBlobRef , _ := r . RevParse ( oldRef .ID .String (), "README.md" )
335+ oldBlobRef , _ := revParse ( r , oldRef .ID .String (), "README.md" )
335336
336337 testEditFile (t , session , user2 .Name , headRepo .Name , "main" , "README.md" , strings .Repeat ("a\n " , 2 ))
337338 session = loginUser (t , user1 .Name )
338339
339340 newRef , _ := hr .GetBranchCommit (headRepo .DefaultBranch )
340- newBlobRef , _ := hr . RevParse ( newRef .ID .String (), "README.md" )
341+ newBlobRef , _ := revParse ( hr , newRef .ID .String (), "README.md" )
341342
342343 session = loginUser (t , user1 .Name )
343344
@@ -357,3 +358,15 @@ index %s..%s 100644
357358 assert .Equal (t , expected , resp .Body .String ())
358359 })
359360}
361+
362+ // helper function to use rev-parse
363+ // revParse resolves a revision reference to other git-related objects
364+ func revParse (repo * git_module.Repository , ref , file string ) (string , error ) {
365+ stdout , _ , err := git_module .NewCommand ("rev-parse" ).
366+ AddDynamicArguments (ref + ":" + file ).
367+ RunStdString (repo .Ctx , & git_module.RunOpts {Dir : repo .Path })
368+ if err != nil {
369+ return "" , err
370+ }
371+ return strings .TrimSpace (stdout ), nil
372+ }
0 commit comments