我使用带有 Subversion 的外部 diff 工具(超越比较规则!),其中一个很棒的功能是能够在我查看所做的更改时使用 diff 程序对文件进行一些细微的编辑。
But svn diff
我的不同项目的工作方式有所不同。总之,左侧文件是一个临时文件,包含存储在 Subversion(头部)中的最新版本。但在某些情况下,右侧文件是实际的工作文件,而在其他情况下,它是工作文件的临时文件副本。在第一种情况下,我可以在 diff 程序中进行更改,它们会影响工作副本。在第二种情况下,我正在编辑临时文件,因此更改会丢失。
为什么 Subversion 有时会针对工作文件进行比较,而有时会针对工作文件的临时副本进行比较?如何让它始终使用工作文件?
您在这些文件上设置了 svn:keywords 吗?如果是,那么 Subversion 将首先创建一个临时文件,其中包含所有“未扩展”的扩展关键字。这是为了避免所有关键字行显示为不同,即使它们没有更改。
例如,如果您将工作副本中的文件与 BASE 进行比较,则 BASE 文件没有扩展关键字(并且也使用 LF 行尾存储),而工作副本中的文件扩展了所有关键字(并且可能使用 CRLF 存储)行尾)。
如果您没有在本地修改该文件,“svn diff”会将所有行显示为不同的(如果行结尾不匹配),或者至少带有关键字的所有行将显示为不同的 - 这不是您想要的预计。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)