tijo-export: reduce memory usage

andybalholm
Apr 12, 2023, 6:30 PM
4ROXGUTY2IM5NTYAS5XANJAQH3Z6375RVGZAS776ISEP7I23YTHQC

Dependencies

Change contents

  • edit in cmd/tijo-export/main.go at line 151
    [2.5771][2.5771:5883]()
    }
    if err := stream.WriteTo(os.Stdout); err != nil {
    printErrorAndExit("Error writing output stream:", err)
  • replacement in cmd/tijo-export/fast-export.go at line 6
    [2.6750][2.6750:6756]()
    "io"
    [2.6750]
    [2.6756]
    "os"
  • replacement in cmd/tijo-export/fast-export.go at line 15
    [2.6818][2.6818:6939]()
    func (f FileModify) WriteTo(w io.Writer) error {
    _, err := fmt.Fprintf(w, "M 644 :%d %s\n", f.Blob, f.Path)
    return err
    [2.6818]
    [2.6939]
    func (f FileModify) write() {
    fmt.Printf("M 644 :%d %s\n", f.Blob, f.Path)
  • replacement in cmd/tijo-export/fast-export.go at line 30
    [2.7143][2.7143:7279]()
    func (c Commit) WriteTo(w io.Writer) error {
    if _, err := fmt.Fprintln(w, "commit refs/heads/"+c.Branch); err != nil {
    return err
    }
    [2.7143]
    [2.7279]
    func (c Commit) write() {
    fmt.Println("commit refs/heads/" + c.Branch)
  • replacement in cmd/tijo-export/fast-export.go at line 33
    [2.7297][2.7297:7647]()
    if _, err := fmt.Fprintf(w, "mark :%d\n", c.Mark); err != nil {
    return err
    }
    }
    if _, err := fmt.Fprintln(w, "committer", c.Committer, formatTime(c.Timestamp)); err != nil {
    return err
    }
    if _, err := fmt.Fprintln(w, "data", len(c.Message)); err != nil {
    return err
    }
    if _, err := fmt.Fprintln(w, c.Message); err != nil {
    return err
    [2.7297]
    [2.7647]
    fmt.Printf("mark :%d\n", c.Mark)
  • edit in cmd/tijo-export/fast-export.go at line 35
    [2.7650]
    [2.7650]
    fmt.Println("committer", c.Committer, formatTime(c.Timestamp))
    fmt.Println("data", len(c.Message))
    fmt.Println(c.Message)
  • replacement in cmd/tijo-export/fast-export.go at line 39
    [2.7668][2.7668:7752]()
    if _, err := fmt.Fprintf(w, "from :%d\n", c.From); err != nil {
    return err
    }
    [2.7668]
    [2.7752]
    fmt.Printf("from :%d\n", c.From)
  • replacement in cmd/tijo-export/fast-export.go at line 42
    [2.7773][2.7773:7849]()
    if _, err := fmt.Fprintln(w, "deleteall"); err != nil {
    return err
    }
    [2.7773]
    [2.7849]
    fmt.Println("deleteall")
  • replacement in cmd/tijo-export/fast-export.go at line 45
    [2.7889][2.7889:8006]()
    if err := m.WriteTo(w); err != nil {
    return err
    }
    }
    if _, err := fmt.Fprintln(w); err != nil {
    return err
    [2.7889]
    [2.8006]
    m.write()
  • replacement in cmd/tijo-export/fast-export.go at line 47
    [2.8009][2.8009:8021]()
    return nil
    [2.8009]
    [2.8021]
    fmt.Println()
  • replacement in cmd/tijo-export/fast-export.go at line 55
    [2.8069][2.8069:8180]()
    func (b Blob) WriteTo(w io.Writer) error {
    if _, err := fmt.Fprintln(w, "blob"); err != nil {
    return err
    }
    [2.8069]
    [2.8180]
    func (b Blob) write() {
    fmt.Println("blob")
  • replacement in cmd/tijo-export/fast-export.go at line 58
    [2.8198][2.8198:8282]()
    if _, err := fmt.Fprintf(w, "mark :%d\n", b.Mark); err != nil {
    return err
    }
    [2.8198]
    [2.8282]
    fmt.Printf("mark :%d\n", b.Mark)
  • replacement in cmd/tijo-export/fast-export.go at line 60
    [2.8285][2.8285:8498]()
    if _, err := fmt.Fprintln(w, "data", len(b.Data)); err != nil {
    return err
    }
    if _, err := w.Write(b.Data); err != nil {
    return err
    }
    if _, err := fmt.Fprintln(w); err != nil {
    return err
    }
    return nil
    [2.8285]
    [2.8498]
    fmt.Println("data", len(b.Data))
    os.Stdout.Write(b.Data)
    fmt.Println()
  • replacement in cmd/tijo-export/fast-export.go at line 65
    [2.8501][2.8501:8579]()
    // A FastExportStream is an in-memory representation of a fast-export stream.
    [2.8501]
    [2.8579]
    // A FastExportStream is a representation of a fast-export stream.
  • edit in cmd/tijo-export/fast-export.go at line 67
    [2.8610][2.8610:8645]()
    Commits []Commit
    Blobs []Blob
  • replacement in cmd/tijo-export/fast-export.go at line 75
    [2.8789][2.8789:9243]()
    f.Commits = append(f.Commits, c)
    }
    func (f *FastExportStream) ReverseCommits() {
    for i, j := 0, len(f.Commits)-1; j > i; i, j = i+1, j-1 {
    f.Commits[i], f.Commits[j] = f.Commits[j], f.Commits[i]
    }
    }
    func (f *FastExportStream) WriteTo(w io.Writer) error {
    for _, b := range f.Blobs {
    if err := b.WriteTo(w); err != nil {
    return err
    }
    }
    for _, c := range f.Commits {
    if err := c.WriteTo(w); err != nil {
    return err
    }
    }
    return nil
    [2.8789]
    [2.9243]
    c.write()
  • edit in cmd/tijo-export/fast-export.go at line 88
    [2.9498][2.9498:9528]()
    f.Blobs = append(f.Blobs, b)
  • edit in cmd/tijo-export/fast-export.go at line 94
    [2.9625]
    [2.9625]
    b.write()