代码之家  ›  专栏  ›  技术社区  ›  Thorbjørn Ravn Andersen

使用类似于CVS分支标记的Hudson构建时保存Git SHA1

  •  1
  • Thorbjørn Ravn Andersen  · 技术社区  · 15 年前

    我们已经从CVS迁移到Git。我们的Hudson构建脚本用于在生成的构建中保存CVS_BRANCH环境变量的值和Hudson build_ID,以便以后进行研究。

    我无法理解Hudson(或Git插件)是如何向ant脚本显示当前提交的Git SHA1名称的,因为我找不到任何明确的源代码来说明我应该查找的位置。

    如果git存在于环境中,我不希望调用它来获取它,但是如果需要的话可以调用它。

    4 回复  |  直到 15 年前
        1
  •  2
  •   Jakub Narębski adamtaub    15 年前

    如果你真的想避免调用git命令( git describe git rev-parse ),然后可以执行以下操作:

    1. 查找$GIT_DIR/HEAD文件。如果是符号链接,则其目标是当前分支的完全限定名(例如,如果当前分支是“master”,则为“refs/heads/master”);不应发生,除非在由非常旧的g it管理的非常旧的存储库中。

      如果是普通文件,它是 ref: refs/heads/<branch> (所谓的symref),或者它包含当前提交(所谓的“分离头”aka)的SHA-1 id。匿名分支:中的“无分支” git branch 输出。

    2. 分支 或者可以在$GIT_DIR/packed refs文件中找到。如果两者都存在,则loose ref(在以完全限定的分支名称命名的单独文件中)获胜。

    但我不确定是否值得。

        2
  •  2
  •   Thorbjørn Ravn Andersen    15 年前

    jGit 支持“rev parse HEAD”命令,该命令与 <java jar="jgit...jar" fork="true" args="rev-parse HEAD" outputproperty="git.SHA1" /> 做了我想做的,也就是把SHA1弄到一个蚂蚁的地方,这样我以后就可以用了。

        3
  •  1
  •   wmbolle    12 年前

    git plugin 公开GIT_COMMIT环境变量。

        4
  •  0
  •   alexkasko    13 年前

    jgit-buildnumber-ant-task . 它可以将标记名、分支名、提交sha1和当前分支中的提交计数作为Ant变量。