2012-03-13 40 views
0

我想写一个递归下降目录树的脚本,并对所有“干净”存储库执行hg pull -u - 即没有本地差异,即将离任的变更集或任何可能使它们与远程不同的其他内容。 (该脚本还将重建等)只有当本地存储库是“干净”时,hg才会更新/更新

有没有一种检查版本库是否“干净”的好方法?请记住,我可能会从bash或python脚本中完成此操作。

回答

0

hg status是你的朋友。但是,您应该小心“干净”的含义。如果目录结构中的所有文件都受版本控制,并且它们都没有更改,则hg status应该不返回控制台输出,并且可能返回0代码。

如果这与您的清洁定义不符,您必须更加小心。例如,我通常不会将生成的文件(二进制文件,Latex的PDF等)添加到版本控制中,但它们位于我的目录结构中。在这种情况下,这些文件被列为“未知”,并且我确信hg的返回码将有所不同。

+0

如果有外出变更集,hg状态是否返回0?如果更新可能导致合并,我不想执行hg pull -u。我想我应该(单独)检查hg提示是否与远程存储库的提示匹配? – jhourback 2012-03-13 22:24:54

+0

即使存在本地修改,“hg status”始终返回0。我想我可以在python/bash中解析输出,但是这有点麻烦。 – jhourback 2012-03-13 23:14:15

+0

@jhourback - 1.拉**从不**合并拉本变更集与本地2. hg st | wc -l在干净WC上返回0,3. hg out结果与拉动可能性无关(请参阅第1页) – 2012-03-14 00:40:09

相关问题