我使用以下方法检查了dir中的一些文件:
svn co <dir>
之后,我使用以下命令替换此目录中所有java文件中的一些文本:
find . -type f -print0 | xargs -0 sed -i "s/old/new/g"
现在,我解雇了这个命令:
svn status
它不显示已更改文件的列表。 我可以看到所有java文件中的替换,但是在svn status命令中看不到这些文件的列表。
请帮忙。甚至svn也没有工作。
答案 0 :(得分:6)
猜测一下,你的命令也会查看隐藏在.svn目录中的文件。可能会破坏很多东西。特别是如果您的存储库名称中包含文本“old”。 SVN不会喜欢这个!
它肯定会做的是更改.svn / text-base中的“base”文件。因此,就SVN而言,没有任何改变(它将当前目录与.svn中的文件副本进行比较,以查看已更改的内容)。
或者,完全可能是其他东西。
答案 1 :(得分:2)
给定的find命令肯定是错误的,因为你没有阻止find进入.svn文件夹,这是错误的。
This results in creating a new checkout from scratch.
以下内容接近您的需求:
find . -type f -not -path "*\.svn*" -and -not -path "*/target*" -and -not -path "*/\.settings*" -name "*.java"
我建议通过IDE(Eclipse等)
来做这类事情