我正在使用git和nightly版本进行quandry。如果我们每天早上12:01克隆回购,建立并测试它,那么我们怎样才能保证每次都能获得相同的构建?
第一种方法是标记构建。我们拉标签和构建。问题是我们的系统充斥着标签。我们可以删除标签,但总有可能有人需要删除标签。
第二种方法是按日期/时间进行git checkout git rev-list
。缺陷是更改集在提交时加上时间戳 - 而不是在它们被推送时。因此,如果有人在2013年7月30日晚上9点提交(但没有推送),那么在2013年7月31日第二天推送。这样做的:
git checkout `git rev-list -n 1 --before="2013-07-31 0:01" master`
取决于是否在推送之前或之后完成结账,结果会有所不同。
我是否误解了某些内容,或者有更好的方法在git中执行此操作?
答案 0 :(得分:5)
首先,每次克隆一个回购都没有意义,它太慢了。只需执行一次,然后进行更改,使用git clear -xdf
在每次构建之前创建一个原始wc。其次,标签很便宜。如果你每天运行build,它将在3年内创建~1000个标签,每个标签少于100个字节,所以你最终每3年100kb。你为什么关心?
用于构建的存储库可以在本地创建标记,而不是将其推送到主存储库。这意味着如果您需要标签,您可以直接转到回购并找到标签。如果您查看CI服务器(例如Jenkins),它会自动标记每个构建,并且默认情况下不会将标记推回。不知道为什么你没有使用它,你应该考虑它。