Skip to content

Commit

Permalink
storage: dotgit, head reference usually comes first
Browse files Browse the repository at this point in the history
When reading the repository references from DotGit, the HEAD reference
should always come first.

This mimics the behavior of `git show-ref --head`
  • Loading branch information
aymanbagabas committed Apr 26, 2024
1 parent 1ddd78a commit 6bc850b
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions storage/filesystem/dotgit/dotgit.go
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ func (d *DotGit) objectPacks() ([]plumbing.Hash, error) {
continue
}

h := plumbing.NewHash(n[5 : len(n)-5]) //pack-(hash).pack
h := plumbing.NewHash(n[5 : len(n)-5]) // pack-(hash).pack
if h.IsZero() {
// Ignore files with badly-formatted names.
continue
Expand Down Expand Up @@ -701,16 +701,16 @@ func (d *DotGit) SetRef(r, old *plumbing.Reference) error {
// Symbolic references are resolved and included in the output.
func (d *DotGit) Refs() ([]*plumbing.Reference, error) {
var refs []*plumbing.Reference
var seen = make(map[plumbing.ReferenceName]bool)
if err := d.addRefsFromRefDir(&refs, seen); err != nil {
seen := make(map[plumbing.ReferenceName]bool)
if err := d.addRefFromHEAD(&refs); err != nil {
return nil, err
}

if err := d.addRefsFromPackedRefs(&refs, seen); err != nil {
if err := d.addRefsFromRefDir(&refs, seen); err != nil {
return nil, err
}

if err := d.addRefFromHEAD(&refs); err != nil {
if err := d.addRefsFromPackedRefs(&refs, seen); err != nil {
return nil, err
}

Expand Down Expand Up @@ -815,7 +815,8 @@ func (d *DotGit) addRefsFromPackedRefsFile(refs *[]*plumbing.Reference, f billy.
}

func (d *DotGit) openAndLockPackedRefs(doCreate bool) (
pr billy.File, err error) {
pr billy.File, err error,
) {
var f billy.File
defer func() {
if err != nil && f != nil {
Expand Down Expand Up @@ -1020,7 +1021,7 @@ func (d *DotGit) readReferenceFile(path, name string) (ref *plumbing.Reference,

func (d *DotGit) CountLooseRefs() (int, error) {
var refs []*plumbing.Reference
var seen = make(map[plumbing.ReferenceName]bool)
seen := make(map[plumbing.ReferenceName]bool)
if err := d.addRefsFromRefDir(&refs, seen); err != nil {
return 0, err
}
Expand Down

0 comments on commit 6bc850b

Please sign in to comment.