From c9664e9eacb8c2c3821fadf1a2e1af02e63e92cb Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Sat, 2 May 2015 16:55:29 +0200 Subject: [PATCH] Remove unused function saveTree() --- archiver.go | 93 ----------------------------------------------------- 1 file changed, 93 deletions(-) diff --git a/archiver.go b/archiver.go index e38e2df94..31d4966aa 100644 --- a/archiver.go +++ b/archiver.go @@ -212,99 +212,6 @@ func (arch *Archiver) SaveFile(p *Progress, node *Node) error { return err } -func (arch *Archiver) saveTree(p *Progress, t *Tree) (backend.ID, error) { - debug.Log("Archiver.saveTree", "saveTree(%v)\n", t) - var wg sync.WaitGroup - - // TODO: do all this in parallel - for _, node := range t.Nodes { - if node.tree != nil { - id, err := arch.saveTree(p, node.tree) - if err != nil { - return nil, err - } - node.Subtree = id - p.Report(Stat{Dirs: 1}) - } else if node.Type == "file" { - if len(node.Content) > 0 { - removeContent := false - - // check content - for _, id := range node.Content { - packID, _, _, _, err := arch.s.Index().Lookup(id) - if err != nil { - debug.Log("Archiver.saveTree", "unable to find storage id for data blob %v: %v", id.Str(), err) - arch.Error(node.path, nil, fmt.Errorf("unable to find storage id for data blob %v: %v", id.Str(), err)) - removeContent = true - continue - } - - if ok, err := arch.s.Test(backend.Data, packID.String()); !ok || err != nil { - debug.Log("Archiver.saveTree", "pack %v of blob %v not in repository (error is %v)", packID, id, err) - arch.Error(node.path, nil, fmt.Errorf("pack %v of blob %v not in repository (error is %v)", packID, id, err)) - removeContent = true - } - } - - if removeContent { - debug.Log("Archiver.saveTree", "removing content for %s", node.path) - node.Content = node.Content[:0] - } - } - - if len(node.Content) == 0 { - // start goroutine - wg.Add(1) - go func(n *Node) { - defer wg.Done() - - n.err = arch.SaveFile(p, n) - p.Report(Stat{Files: 1}) - }(node) - } - } - } - - wg.Wait() - - usedIDs := backend.NewIDSet() - - // check for invalid file nodes - for _, node := range t.Nodes { - if node.Type == "file" && node.Content == nil && node.err == nil { - return nil, fmt.Errorf("node %v has empty content", node.Name) - } - - // remember used hashes - if node.Type == "file" && node.Content != nil { - for _, id := range node.Content { - usedIDs.Insert(id) - } - } - - if node.Type == "dir" && node.Subtree != nil { - usedIDs.Insert(node.Subtree) - } - - if node.err != nil { - err := arch.Error(node.path, nil, node.err) - if err != nil { - return nil, err - } - - // save error message in node - node.Error = node.err.Error() - } - } - - id, err := arch.SaveTreeJSON(t) - if err != nil { - return nil, err - } - - return id, nil -} - func (arch *Archiver) fileWorker(wg *sync.WaitGroup, p *Progress, done <-chan struct{}, entCh <-chan pipe.Entry) { defer func() { debug.Log("Archiver.fileWorker", "done")