Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较默认分支和发布分支mercurial之间的配置更改_Mercurial_Comparison_Configuration Files - Fatal编程技术网

如何比较默认分支和发布分支mercurial之间的配置更改

如何比较默认分支和发布分支mercurial之间的配置更改,mercurial,comparison,configuration-files,Mercurial,Comparison,Configuration Files,最近,开发人员在处理另一个分支时未能提交默认分支中的更改的实例很少。这特别适用于配置文件,其中有许多设置控制应用程序。我们使用beyond compare来比较文件,但由于配置数量巨大,很难对所有配置进行快速比较。我正在寻找一些东西,我们可以比较,可以拿起在一个分支所做的变化,错过或从其他删除 如有任何疑问,将不胜感激。 谢谢如果您想确保默认分支中的配置文件始终与任何其他分支中的开发人员提交的配置文件相同,我建议您在服务器上使用钩子强制执行此策略,钩子将验证此任务是否已完成,并在配置文件不同时拒

最近,开发人员在处理另一个分支时未能提交默认分支中的更改的实例很少。这特别适用于配置文件,其中有许多设置控制应用程序。我们使用beyond compare来比较文件,但由于配置数量巨大,很难对所有配置进行快速比较。我正在寻找一些东西,我们可以比较,可以拿起在一个分支所做的变化,错过或从其他删除

如有任何疑问,将不胜感激。
谢谢

如果您想确保默认分支中的配置文件始终与任何其他分支中的开发人员提交的配置文件相同,我建议您在服务器上使用钩子强制执行此策略,钩子将验证此任务是否已完成,并在配置文件不同时拒绝更改集。这是一个相对容易的任务,只要您可以依赖于默认分支只有一个头(尽管可能是个坏主意)。但是,在bash中,服务器存储库的pretxnchangegroup钩子可能类似于:

hg_heads=`hg log -r"$HG_NODE:tip and head() and not branch('default")" --template='{node}\n'`
for hg_head in $hg_heads; do
  if [ "$(hg diff -r"head() and branch('default')" -r$hg_head CONFIGFILENAME)" != "" ]; then
    echo "Config files differ. Please make sure default has the same config file as your other heads!"
    exit 1
  fi
done
exit 0
如果新提交的头与默认分支的头具有不同的CONFIGFILENAME,则它将拒绝所有提交

至于检查当前存储库,还可以通过类似的bash脚本来检查每个头部的差异:

defaulthead=$(hg log -r"head() and branch('default')")
for head in $(hg log -r"head() and not branch('default')"); do
  if [ "$(hg diff -r$head -r$defaulthead)" != "" ]; then
    echo "Different config file for $head"
  fi
done

是不是所有分支的配置文件看起来都一样?还是它们也不同?是否有一些方法可以评估是否需要更改,以便编写脚本?是的,所有分支中的配置文件都应该是相同的。我正在寻找一些工具,可以解析所有这些文件,并提示如果发现任何差异。