如何获取烤饼来克隆git存储库,并签出特定的标签?

时间:2014-08-11 15:15:36

标签: scons

我正试图让 scons 克隆一个git存储库并签出一个特定的标签。我正在尝试以下操作,但它从不运行git checkout命令:

env = Environment()

env.Command("deps/lager/.git", None,
    "git clone -q git://github.com/basho/lager.git deps/lager")
env.Command(None, "deps/lager/.git",
    "cd deps/lager && git checkout -q 2.0.3")

我希望每次运行scons时都避免克隆存储库,但我执行希望每次都检出指定的标记。

如果我尝试以下方法:

env.AlwaysBuild(
    env.Command(None, "deps/lager/.git",
        "cd deps/lager && git checkout -q 2.0.3"))

...然后它会在克隆存储库之前尝试先运行它。

1 个答案:

答案 0 :(得分:1)

以下似乎有效,但我不知道这是否是一个好主意:

x = env.Command("deps/lager/.git", None,
    "git clone -q git://github.com/basho/lager.git deps/lager")
env.Command("deps/lager/.git#2.0.3", x,
    "cd deps/lager && git checkout -q 2.0.3")