Создание тегов с помощью Grit - PullRequest
2 голосов
/ 16 марта 2012

Я пытаюсь создать тег в своем git-репозитории через Grit, но я не уверен, что библиотека поддерживает ссылочные теги. Создать метку легко:

Grit::Tag.create_tag_object(repo, params, actor)

Но это только создаст легкий тег. Чтобы иметь ссылочный тег, мне нужно также создать ссылку на тег, но реализация update_ref выглядит так:

def update_ref(head, commit_sha)
  return nil if !commit_sha || (commit_sha.size != 40)
  self.git.fs_write("refs/heads/#{head}", commit_sha)
  commit_sha
end

... что означает, что я могу создавать только ссылки на заголовки, а не теги ref. В классах Ref или Tag ничего не происходит.

Кто-нибудь знает, как создать ссылку на коммит через Grit?

Ответы [ 2 ]

3 голосов
/ 01 июня 2012

Я создал новый тег, ссылающийся на коммит, следующим образом:

log = @repo.git.tag( { 'f' => true }, tag_name, commit_sha )

И получил:

Updated tag 'new_tag' (was 0000000)
$ git tag
...
new_tag
...
$ git show new_tag
commit e74b99a0ff706993e200939ee00079182f75ec29
...
0 голосов
/ 16 марта 2012

Я не знаю много о зернистости (на самом деле ничего). Я бы сделал тег в обычном git. Затем найдите, где он находится в папке .git. Теперь найдите в исходном коде grit использование этого пути. Это должно привести вас к тому, что вы можете использовать в песке.

...