@@ -386,11 +386,11 @@ func (d *DotGit) processLine(line string) (*plumbing.Reference, error) {
386
386
}
387
387
388
388
func (d * DotGit ) addRefsFromRefDir (refs * []* plumbing.Reference ) error {
389
- return d .walkReferencesTree (refs , refsPath )
389
+ return d .walkReferencesTree (refs , [] string { refsPath } )
390
390
}
391
391
392
- func (d * DotGit ) walkReferencesTree (refs * []* plumbing.Reference , relPath string ) error {
393
- files , err := d .fs .ReadDir (relPath )
392
+ func (d * DotGit ) walkReferencesTree (refs * []* plumbing.Reference , relPath [] string ) error {
393
+ files , err := d .fs .ReadDir (d . fs . Join ( relPath ... ) )
394
394
if err != nil {
395
395
if os .IsNotExist (err ) {
396
396
return nil
@@ -400,7 +400,7 @@ func (d *DotGit) walkReferencesTree(refs *[]*plumbing.Reference, relPath string)
400
400
}
401
401
402
402
for _ , f := range files {
403
- newRelPath := d . fs . Join ( relPath , f .Name ())
403
+ newRelPath := append ( append ([] string ( nil ), relPath ... ) , f .Name ())
404
404
if f .IsDir () {
405
405
if err = d .walkReferencesTree (refs , newRelPath ); err != nil {
406
406
return err
@@ -409,7 +409,7 @@ func (d *DotGit) walkReferencesTree(refs *[]*plumbing.Reference, relPath string)
409
409
continue
410
410
}
411
411
412
- ref , err := d .readReferenceFile ("." , newRelPath )
412
+ ref , err := d .readReferenceFile ("." , strings . Join ( newRelPath , "/" ) )
413
413
if err != nil {
414
414
return err
415
415
}
@@ -436,9 +436,8 @@ func (d *DotGit) addRefFromHEAD(refs *[]*plumbing.Reference) error {
436
436
return nil
437
437
}
438
438
439
- func (d * DotGit ) readReferenceFile (refsPath , refFile string ) (ref * plumbing.Reference , err error ) {
440
- path := d .fs .Join (refsPath , refFile )
441
-
439
+ func (d * DotGit ) readReferenceFile (path , name string ) (ref * plumbing.Reference , err error ) {
440
+ path = d .fs .Join (path , d .fs .Join (strings .Split (name , "/" )... ))
442
441
f , err := d .fs .Open (path )
443
442
if err != nil {
444
443
return nil , err
@@ -451,7 +450,7 @@ func (d *DotGit) readReferenceFile(refsPath, refFile string) (ref *plumbing.Refe
451
450
}
452
451
453
452
line := strings .TrimSpace (string (b ))
454
- return plumbing .NewReferenceFromStrings (refFile , line ), nil
453
+ return plumbing .NewReferenceFromStrings (name , line ), nil
455
454
}
456
455
457
456
// Module return a billy.Filesystem poiting to the module folder
0 commit comments