3

チェックアウトされたブランチの最新のコミットIDを取得するために、次のantの詳細を使用しましたが、このメソッドの使用についてどのような注意が必要ですか?

期待値を取得できないエッジケースはありますか?

<scriptdef name="substring" language="javascript">
    <attribute name="text" />
    <attribute name="start" />
    <attribute name="end" />
    <attribute name="property" />
    <![CDATA[
       var text = attributes.get("text");
       var start = attributes.get("start");
       var end = attributes.get("end") || (text.length() - 1);
       project.setProperty(attributes.get("property"), text.substring(start, end));
     ]]>
</scriptdef>

<loadfile property="head.branch" srcfile="${basedir}/.git/HEAD" />
<substring text="${head.branch}" start="5" property="branch" />
<loadfile property="head.commitId" srcfile="${basedir}/.git/${branch}"/>
4

2 に答える 2

4

の内容を.git/HEAD読み取ってから、そこから取得したファイルの内容を読み取ることができます。

上記の手順で取得した SHA-1 がパック ファイルに含まれている可能性があることに注意してください (スペースを節約するために git が複数の変更をまとめて圧縮する方法)。.git フォルダーの内容を自分で操作するのではなく、git を使用することをお勧めします。

于 2013-01-18T15:55:12.783 に答える