比较mercurial中的内核源代码并忽略win/linux权限

比较mercurial中的内核源代码并忽略win/linux权限,mercurial,compare,Mercurial,Compare,下面是我比较内核代码的步骤 获得了正确的权限内核代码并存储在src中 将src放入mercurial中。(cd src;hg init;hg ci-A-m“”) 将windows guy的修改复制到src 因为windows中的文件权限将始终视为777。这表明几乎所有文件都已修改 我读过这篇文章,但我认为这不是解决这个问题的好方法 我希望有一种方法可以让我“hg还原”错误的权限文件。以下是我的可行代码,可以将状态还原为原始内核源代码 #!/bin/bash find $(hg root) \(

下面是我比较内核代码的步骤

  • 获得了正确的权限内核代码并存储在src中
  • 将src放入mercurial中。(cd src;hg init;hg ci-A-m“”)
  • 将windows guy的修改复制到src
  • 因为windows中的文件权限将始终视为777。这表明几乎所有文件都已修改

    我读过这篇文章,但我认为这不是解决这个问题的好方法


    我希望有一种方法可以让我“hg还原”错误的权限文件。

    以下是我的可行代码,可以将状态还原为原始内核源代码

    #!/bin/bash
    find $(hg root) \( -type d -name .hg -prune \) \
      -o \( -type f -print \) | xargs chmod a-x                                                          
    hg st -n -m | while read fname ; do
      v=`hg di --git $fname |head -2 | awk '/^old/{print $3;}'`
      case $v in
        100644) chmod 644 $fname;;
        100755) chmod 755 $fname;;
      esac
    done