pkaramol
pkaramol

Reputation: 19382

Unknown status type returned by go-git

I am trying to get the status of a file checked in a git repo using go-git library.

So I am running this code snippet:

    var status = git.Status{}
    var fileStatus *git.FileStatus
    fileStatus = status.File(fullPathToApp)
    fmt.Printf("%v\n", fileStatus.Staging)
    fmt.Printf("%v\n", fileStatus.Worktree)

All I get is two 63 s getting printed out

63
63

What does this correspond to in terms of git status?

I cannot seem to make a direct relation to the documentation of the StatusCode.

btw the file pointed to by fullPathToApp is clean, i.e. it is tracked and committed.

Upvotes: 0

Views: 523

Answers (1)

Jeffrey Reims
Jeffrey Reims

Reputation: 46

I think you need to open the repository and worktree first

    r, err := git.PlainOpen(pathToRepo)
    if err != nil {
        log.Fatal(err)
    }

    w, err := r.Worktree()
    if err != nil {
        log.Fatal(err)
    }

After that fetch the status

    ws, err := w.Status()
    if err != nil {
        log.Fatal(err)
    }

To get the status you only need to enter the filename that is in the repository

    fmt.Printf("%q\n", ws.File("filename").Staging)
    fmt.Printf("%q\n", ws.File("filename").Worktree)

I cannot seem to make a direct relation to the documentation of the StatusCode.

The status code returned is a byte

63 = ?

Upvotes: 3

Related Questions