有没有一种方法可以删除svn工作副本?svn autoremove?

6

有没有一种方法可以还原svn仓库的检出?

我不小心在我的用户文件夹中检出了大量的代码,手动删除所有东西会非常麻烦,有没有一种方法可以删除工作副本?

是否有像 svn autoclean 这样的东西?


你的 WC 必须在 <somedir> 中,你能找到这个文件夹吗? - Lazy Badger
3个回答

5
SVN并不适合这样做,理想情况下,您应该将其检出到一个空目录中。现在需要的是一个技巧。在您的存储库中创建一个空分支,使用svn switch切换到该分支。这将更新您的工作副本到该分支,其中没有任何内容,因此应从您的工作副本中删除任何受版本控制的文件。这将留下.svn元信息文件和文件夹,您可以单独处理它们,这比单独确定哪些文件受版本控制更容易。如果您的SVN历史记录中的修订版本1是一个新的、空的存储库,则可以SVN Update到该修订版本,这将执行与上述切换操作相同的操作,但我已经处理过的大多数存储库中已经有了很多文件。

谢谢,我是即兴想出来的。希望它对你有用。 - invertedSpear
谢谢,可以通过切换到根目录的修订版本0来完成(您检出的路径可能没有较小的修订版本),请参见https://dev59.com/13HYa4cB1Zd3GeqPHBHn#41476171中的脚本。 - William Leung

0

deltree(在Windows中)或rm -rf(在其他任何地方)


那也会删除我想要保留的文件和文件夹。我检查了用户/文件夹中包含的文档等。 - user796443
是的,我执行了 svn co svpath . - user796443
你有包含 . 吗?还是没有? - hd1
1
然后,您将不得不以某种方式确定哪些路径在SVNROOT下,并仅删除这些路径。 - hd1
1
查看 .svn/entries 文件,需要删除上面包含“file”和“dir”的行。 - hd1

0

从 @invertedspear 的好主意中,我们可以得到一个简单的解决方案

# find your repo root first
root_url=$(svn info --show-item repos-root-url)

# switch to version 0 (must be empty)
svn sw --ignore-ancestry "$root_url"@0

rm -rf .svn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接