From c062312f04c4c0dfd5cf973657b93fac29513c0e Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Tue, 16 Jun 2015 19:13:29 +0900 Subject: [PATCH] Fixing version scanning issues --- database.go | 12 ++++++++---- version.go | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/database.go b/database.go index 0ece936..543fbcd 100644 --- a/database.go +++ b/database.go @@ -88,9 +88,7 @@ func (this *database) buildVersions(base string) (versionList, error) { return nil, err } - var parent *version var vers versionList - for _, node := range nodes { if !node.IsDir() { continue @@ -101,16 +99,22 @@ func (this *database) buildVersions(base string) (versionList, error) { return nil, err } - ver, err := newVersion(path.Join(base, node.Name()), timestamp, this, parent) + ver, err := newVersion(path.Join(base, node.Name()), timestamp, this) if err != nil { return nil, err } vers = append(vers, ver) - parent = ver } sort.Sort(vers) + + var parentVer *version + for _, ver := range vers { + ver.parent = parentVer + parentVer = ver + } + return vers, nil } diff --git a/version.go b/version.go index df4b6ef..2f4b5d5 100644 --- a/version.go +++ b/version.go @@ -48,13 +48,13 @@ type version struct { db *database } -func newVersion(base string, timestamp time.Time, db *database, parent *version) (*version, error) { +func newVersion(base string, timestamp time.Time, db *database) (*version, error) { meta, err := newVersionMetadata(filepath.Join(base, "meta.json")) if err != nil { return nil, err } - return &version{base, parent, timestamp, meta, nil, db}, nil + return &version{base, nil, timestamp, meta, nil, db}, nil } func (this *version) scanDir(path string) (versionedNodeMap, error) {