Почему мои коммиты через go-git датированы 1970 годом?

Я фиксирую изменения через go-git:

import (
  "github.com/tcnksm/go-gitconfig"
  "github.com/walterjwhite/go-application/libraries/logging"

  "gopkg.in/src-d/go-git.v4"
  "gopkg.in/src-d/go-git.v4/plumbing/object"
)

func stackruCommit(R *git.Repository, W *git.Worktree) {
  username, err := gitconfig.Username()
  logging.Panic(err)

  email, err := gitconfig.Email()
  logging.Panic(err)

  _, err = W.Commit("commit message goes here", &git.CommitOptions{Author: &object.Signature{Name: username, Email: email}})

  logging.Panic(err)
}

В своих логах я вижу это:

Date:   Thu Jan 1 00:00:00 1970 +0000

Это ожидаемое поведение? Я все равно не вижу возможности пройти свидание. Беглый просмотр источника показывает, что на данный момент объект Commit не имеет ссылок...

Это правильно, или я что-то упускаю?

1 ответ

Решение

Перенести текущее время в object.Signature. Документация дляobject.Signature показывает, что вы можете предоставить time.Timeтип. Это также демонстрируется в примере на GitHub. Обязательно импортируйте"time".

_, err = W.Commit("commit message goes here", &git.CommitOptions{
    Author: &object.Signature{
        Name: username, 
        Email: email, 
        When: time.Now(),
    },
})
Другие вопросы по тегам