在 tortoise svn 中,一个名为 abc 的文件夹中有 3 个 txt 文件。当我将文件夹从 abc 重命名为 xyz 并查看显示日志时,它仅显示从 abc 复制 xyz 并删除了 abc 文件夹,虽然 xyz 内的文件已复制但未显示在日志中。
在svn中重命名文件夹时如何查看文件
您没有看到这三个文件中的更改,因为您没有更改这些文件。您只重命名了他们所在的目录。
你想完成什么?假设 Subversion 确实报告了重命名文件夹中的所有文件都已更改。这对你有什么帮助?我可以想象几种情况,这不是一个好主意:
想象一下我开始使用 Maven 的情况。在 Maven 中,我的源文件应该在文件夹下src/main/java
。像大多数开发人员一样,我将我的 Java 源代码直接放在存储库的根目录下source
。我现在必须将那个目录中的文件移动到src/main/java
可以代表数百个 Java 源文件的位置。现在,我的日志不再只显示三个文件已更改,而是将列出数百个文件。
假设您在重命名目录时确实修改了一些文件。我如何知道由于修改了某些父目录与实际修改的文件而列出了文件的区别。人们已经抱怨日志显示了一些属性被修改的文件,而不是文件本身(当合并发生并且svn:mergeinfo
属性被更新时,这可能会导致问题)。现在,每个文件夹重命名都会向下级联整个存储库。有时会创建一个标签,但名称并没有完全正确(REL-1.2 与 rel-1.2.0),因此人们有时会重命名标签。现在,该标签中的所有文件都会在日志中显示为已更改?
在 Python 或 Perl 中做你想做的事并不难。只需执行 asvn log
然后当您看到某个目录在特定版本中被重命名时,svn ls --recurse
对该文件夹执行 a 并获取其中的所有文件。