2012-03-16 53 views
2

我想通过沙砾在我的git仓库中创建一个标签,但我不确定该库是否支持引用标签。很容易创建这样的标签:用沙砾创建标签

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或Tag类中没有任何内容可以执行任何操作。

有没有人有关于如何创建一个提交通过砂砾的参考?

回答

3

我创建了一个新的标签链接到一个承诺如下:

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

我对沙粒了解不多(实际上没有)。我会在普通的git中制作一个标签。然后找到它在.git文件夹中的位置。现在搜索沙砾源代码以查找该路径的用法。它应该引导你选择可以使用的东西。