如何从我的项目中删除所有 .svn 隐藏文件以在 svn 存储库中进行更新

如何从我的项目中删除所有 .svn 隐藏文件以在 svn 存储库中进行更新

您好,我在使用 SVN 存储库时遇到问题。当我尝试在 SVN 中更新我的项目时,出现以下错误:

oomsys@oomsysmob-6:~/brundelre3$ svn st
svn: warning: '.' is not a working copy
oomsys@oomsysmob-6:~/brundelre3$ svn up
Skipped '.'

我尝试了以下链接中先前解释此错误的方法:

从所有目录中删除 .svn 文件

http://bookmarks.honewatson.com/2008/06/06/find-and-remove-hidden-folders-svn-ubuntu-linux-command-line/

http://www.ubun2.com/question/348/how_remove_all_svn_folders_recursively

但没有办法解决我的问题。我想从项目中删除所有隐藏文件。

谢谢

尼尔玛拉·苏迪尔

答案1

find您可以使用和删除文件夹中的所有点文件rm

find . -name ".*" -type f | xargs rm -v

它搜索给定文件夹中的所有点文件,并将结果传递给 ,然后rm删除该文件。它不会删除目录。当未找到要删除的文件时,rm将返回rm: missing operand

答案2

如果您按照两个链接中的说明进行操作,那么您已经删除了所有 svn 文件。

这就是您现在无法执行 svn 更新的原因。源​​代码目录中的 .svn 文件夹包含 svn 使用的所有数据,用于确定已更改的内容以及从何处获取更新。svn 需要它们来更新您拥有的文件。

如果你想删除所有隐藏文件和文件夹但保留 svn 数据,那么你需要类似的东西-

find /path/to/workdir -name ".*" -not -name ".svn" -not -name "." | xargs rm -Riv

如果您进行了想要保留的更改,则需要将这些源文件放在一边并签出新副本。然后,您应该在两个文件夹之间运行 diff 并合并您想要保留的任何更改。然后,您将回到能够使用 svn up 以及 svn diff / svn ci 等的状态。

如果你没有做出任何改变,那么只需删除所有内容并执行一个新的 svn co

相关内容