首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只从工作副本中删除文件,而不是从存储库中删除

只从工作副本中删除文件,而不是从存储库中删除
EN

Stack Overflow用户
提问于 2013-07-10 22:04:30
回答 2查看 8.1K关注 0票数 7

由于我在网上任何地方都找不到上述问题的答案,所以我自己带着答案来了。这是一个手动过程,但我找不到任何其他标准解决方案。所以这里是:

假设要从目录test.txt中删除work文件。现在,如果您强制删除test.txt

rm -rf test.txt

命令,然后在下一个svn上,在work dir (或它的任何父目录)上,文件将被还原。因此,诀窍是从..svn/entries文件中删除它。因此,仅从工作副本中删除test.txt的完整命令序列如下:

代码语言:javascript
运行
复制
cd work
rm -rf test.txt
svn st     #it shows ! sign beside test.txt which means that 
       #in the next **svn up** it will be restored
chmod u+w .svn/entries
vi .svn/entries
#delete the lines associated with test.txt
#you need to delete the following 3 lines from .svn/entries
#test.txt
#file
#^L
svn st #it doesn't report test.txt anymore
EN

Stack Overflow用户

发布于 2013-08-30 20:49:58

lallafa 报告是一种很好的方法,基于所谓的稀疏目录

代码语言:javascript
运行
复制
svn update --set-depth exclude <folder-to-delete>
  • 好的
  • 简单
  • 在文件上工作

不好的情况是:

  • 我想这不会帮助您避免检查您拥有的数据的GBs (尽管您可以尝试)。
  • 在切换目录上不工作(可能或不需要少量的工作,没有测试)
  • 在大目录上,不是一个很好的主意。m3说,在190 GB的工作副本上,使用svn 1.6,该方法只需1小时,而在svn 1.7上则要超过50个小时。这是在2011年。

来源添加

如果以后想再次使用该目录,可以这样做。

代码语言:javascript
运行
复制
svn update --set-depth=infinity <folder-to-delete>

我希望我知道如何以这种方式列出已经“排除”的目录,因为st不会显示它们。:D

同一个来源的人称为'Mike5‘(或jed/jed)中另一种在目录上工作的方法:

对于要避免更新的每个目录,请执行以下操作

代码语言:javascript
运行
复制
svn switch --ignore-ancestry http://dummy/exists/but/empty_folder some_folder
  • some_folder替换为要忽略的文件夹。
  • 另外,将http://dummy/exists/but/empty_folder替换为存储库中的现有路径,该路径是一个空目录,将永远不会被更新或删除--据说是为此目的创建和专用的。

通过这一点,你将实现:

  • 切换目录不再更新工作副本中的任何内容。
  • 对实际存储库没有任何更改

你将无法实现:

  • 文件上的任何东西
  • 目录不会消失/被删除(从文件列表中)
  • 去掉这些目录的初始签出,除非您使用--depth进行“直接”签出,首先执行此操作,然后继续签出(未测试)。
  • 我想你无法摆脱下载你已经拥有的数据(没有测试)的GBs。

在专用的空目录上使用svn propset svn:ignore "*" empty_folder也是个好主意,因此没有人可以对其提交任何内容。

票数 8
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17581744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档