Почему мои коммиты через go - git датируются 1970 годом? - PullRequest
0 голосов
/ 26 марта 2020

Я фиксирую изменения через 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 stackoverflowCommit(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 Ответ

0 голосов
/ 26 марта 2020

Передать текущее время на 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(),
    },
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...