首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除svn检出(删除非svn文件)

清除svn检出(删除非svn文件)
EN

Stack Overflow用户
提问于 2010-12-23 11:09:24
回答 5查看 10.5K关注 0票数 11

我想删除我的工作副本中svn存储库中未知的所有文件。

实际上就像我刚刚干净利落地结账一样,但我不想重新下载所有的文件。

我觉得最接近这个的是...

代码语言:javascript
复制
rm -rf `svn st | grep "^?" | cut -d" " -f8`

但这看起来很笨拙,我并不完全相信它,因为输出中的不一致可能会删除svn之外的目录。

"svn export“不是我想要的,因为我并不是在清理源代码来打包它,我只是想主要去掉它(*.pyc,*.orig,*.rej,svn-commit.tmp .tmp,*.swp)。

除了干净利落地结账之外,还有更好的方法吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-30 06:13:19

这里发布的大多数解决方案都无法处理带有空格的文件夹。这就是我们使用这个的原因:

代码语言:javascript
复制
svn status --no-ignore | grep '^[?I]' |  sed "s/^[?I] //" | xargs -I{} rm -rf "{}"
票数 21
EN

Stack Overflow用户

发布于 2010-12-23 11:40:24

http://www.cuberick.com/2008/11/clean-up-your-subversion-working-copy.html

当我希望我的工作副本与存储库完全相同时,我会这样做:

代码语言:javascript
复制
 svn st | awk '{print $2}' | xargs rm -rf

将删除与存储库不同步的所有文件的

。然后,只需更新即可恢复您删除的内容并获得最新信息。

代码语言:javascript
复制
svn up

...请确保您没有编辑或添加!更安全的命令可能是:

代码语言:javascript
复制
svn st | grep '?' | awk '{print $2}' |xargs rm -f

...忽略的文件怎么办?例如。

代码语言:javascript
复制
svn st --no-ignore
svn st --no-ignore | awk '{print $2}' | xargs rm -rf
svn st --no-ignore | grep '?' | awk '{print $2}' |xargs rm -f
票数 5
EN

Stack Overflow用户

发布于 2011-01-06 18:17:58

代码语言:javascript
复制
svn status --no-ignore | grep '^[?I]' | awk '{print $2}' | xargs rm -rf

让我解释一下。

获取存储库中文件的状态,并将它们逐个打印到标准输出到数组中

代码语言:javascript
复制
svn status

这包括设置为通常被svn忽略的文件

代码语言:javascript
复制
--no-ignore

匹配线包含?或i作为状态。我的意思是一个被忽略的文件?表示不受svn控制的文件。

代码语言:javascript
复制
| grep '^[?I]'

这将打印数组中的第二个变量,即文件名

代码语言:javascript
复制
| awk '{print $2}'

这将删除具有打印文件名的文件

代码语言:javascript
复制
| xargs rm -rf

干杯,循环

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4515586

复制
相关文章

相似问题

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