代码之家  ›  专栏  ›  技术社区  ›  shonky linux user

mercurial查找自修订后未修改的文件

  •  2
  • shonky linux user  · 技术社区  · 6 年前

    我正试图找到一个源文件列表 在过去几年中进行了修改。

    这是我试图衡量的一个方面,以帮助我们理解一个给定项目随着时间的推移的稳定性和变化量。

    在Mercurial中,是否有任何方法可以识别自给定版本以来未修改的文件?

    2 回复  |  直到 6 年前
        1
  •  2
  •   peak    6 年前

    这个问题有些含糊不清,但可以用 status ( st )命令。例如,要根据修订版R中的文件与PWD中的文件的比较获得一个列表,可以运行:

    hg st --rev R -cn
    

    -c选项相当于“-clean”(实际上是“无更改”)。

    要将修订版R中的文件与最近提交的文件进行比较,请执行以下操作:

    hg st --rev R:-1 -cn
    

    有许多方法可以指定“r”,例如0表示初始提交。

        2
  •  0
  •   shonky linux user    6 年前

    发表我自己的答案。

    我将存储库克隆了两次到新目录中。

    然后更新一个到当前版本和一个到原始基线版本

    hg update <rev>
    

    然后使用diff命令查找相同的文件(不包括空白更改)

     diff -sqrbwB original current | grep "identical"
    

    diff标志如下:

    -s reports identical files (facilitating the grep for "identical")
    -q brief report (don't need a detailed report of differences)
    -r recursively follow directories
    -b ignore space changes
    -w ignore all space
    -B ignore Blank lines
    

    不确定-b-w和-b是否都是必需的,但它可以工作并输出一个未更改的文件列表。