Start on data structures to represent fast-export stream

andybalholm
Mar 11, 2023, 10:05 PM
5ETDKF5FO7AE7G6ZGP5WAMMY6VQZT2KQ75UZ3OD2WM24Q2JZPAOQC

Dependencies

  • [2] KZ4XMKSP Make a temporary clone of the repository
  • [3] RFMRCLJX Remove empty parentheses after author name
  • [4] RTQQLOCO Use real metadata, but no content yet
  • [*] Y7VFVY6E Initial dummy version
  • [*] YANQZYFX

Change contents

  • edit in main.go at line 74
    [3.974][3.974:1000]()
    previousCommitMark := 0
  • replacement in main.go at line 82
    [3.1217][3.1217:1244]()
    commitMark := nextMark()
    [3.1217]
    [3.1244]
    var commit Commit
    commit.Mark = nextMark()
  • edit in main.go at line 85
    [3.1245][3.1245:1326](),[3.1326][3.12:13]()
    fmt.Println("commit refs/heads/master")
    fmt.Printf("mark :%d\n", commitMark)
  • replacement in main.go at line 90
    [2.1166][3.89:149](),[3.89][3.89:149]()
    fmt.Println("committer", author, formatTime(c.Timestamp))
    [2.1166]
    [3.1392]
    commit.Committer = author
    commit.Timestamp = c.Timestamp
  • replacement in main.go at line 97
    [3.1484][3.1484:1622]()
    fmt.Println("data", len(message))
    fmt.Println(message)
    if previousCommitMark != 0 {
    fmt.Printf("from :%d\n", previousCommitMark)
    [3.1484]
    [3.1622]
    commit.Message = message
    if err := commit.WriteTo(os.Stdout); err != nil {
    printErrorAndExit("Error writing commit:", err)
  • edit in main.go at line 102
    [3.1626][3.1626:1677]()
    fmt.Println()
    previousCommitMark = commitMark
  • file addition: fast-export.go (----------)
    [7.1]
    package main
    import (
    "fmt"
    "io"
    "time"
    )
    type Commit struct {
    Mark int
    Committer string
    Timestamp time.Time
    Message string
    }
    func (c Commit) WriteTo(w io.Writer) error {
    if _, err := fmt.Fprintln(w, "commit refs/heads/master"); err != nil {
    return err
    }
    if c.Mark != 0 {
    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
    }
    if _, err := fmt.Fprintln(w); err != nil {
    return err
    }
    return nil
    }