python - 有没有办法在整个项目中将代码缩进从制表符切换为空格,并保持 'hg annotate' 功能?

标签 python mercurial indentation

有一个相当大的旧 Python 项目,历史上有最多 (95%+) 的代码库使用制表符进行缩进。 Mercurial 用作 VCS。

使用标签有几个不便之处。似乎 4 个空格已成为 Python 社区中流行的缩进方式,并且大多数代码分析/格式化软件都以某种方式混淆了制表符。此外,大多数(实际上几乎所有)从事该项目的团队成员都更喜欢空格而不是制表符,因此希望切换。

因此,人们担心失去跟踪特定代码行的最新修改者的能力...因为如果所有代码行都转换为使用基于空格的缩进,而不是使用基于制表符的缩进,然后更改被提交到 mercurial 存储库,这正是将要发生的事情。而且这个特性 (hg annotate) 太有用了,不考虑牺牲它的可能性。

有没有办法在不丢失 Mercurial hg 注释功能的情况下在整个项目中切换缩进方法?如果有,最无痛的方法是什么?

最佳答案

如果您要用 4 个空格替换每个制表符,您仍然可以通过 annotate 获得合理正确的结果,只需使用忽略空格更改的开关:

hg annotate -b text.txt

您也可以使用 -w 忽略比较中的所有空格,但是 -b 似乎是最佳匹配:忽略将某些空格更改为 a 的情况不同的空格。

然而,这将忽略所有 仅更改了空格的行,这将忽略缩进的更改并将它们归因于该行的先前更改。

参见 hg help annotate了解更多。

关于python - 有没有办法在整个项目中将代码缩进从制表符切换为空格,并保持 'hg annotate' 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148464/

相关文章:

python - 如何排除 django 模型中的选择字段值?

python - 如何将 pyspark 数据框列转换为 numpy 数组

command-line - 如何在 mercurial 中通过命令行获取所有关闭的分支?

mercurial - hg strip 与 hg backout 和 hg revert

authentication - 如何验证 TortoiseHg Web 服务器上的用户?

java - TextArea 代码库

Python:从一个文件夹中导入多个图像并将它们缩放/组合成一个图像?

python - 如何计算图像数据集中 RGB 值的 3x3 协方差矩阵?

emacs - 在 emacs 中粘贴与光标对齐的文本

visual-studio - Visual Studio 2012 和经典 ASP 缩进(智能)