我正试图让 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"))
...然后它会在克隆存储库之前尝试先运行它。
答案 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")