我有一个文件夹,c:\websites\test
它包含从不存在的存储库中检出的文件夹和文件。如何使Subversion停止跟踪该文件夹以及任何子文件夹和文件?
我知道我可以简单地删除.svn
文件夹,但是在许多层中都有很多子文件夹。
我有一个文件夹,c:\websites\test
它包含从不存在的存储库中检出的文件夹和文件。如何使Subversion停止跟踪该文件夹以及任何子文件夹和文件?
我知道我可以简单地删除.svn
文件夹,但是在许多层中都有很多子文件夹。
Answers:
另外,如果您使用的是TortoiseSVN,只需将其导出到当前工作副本位置,它将删除.svn文件夹和文件。
http://tortoisesvn.net/docs/release/TortoiseSVN_zh/tsvn-dug-export.html#tsvn-dug-export-unversion
更新了Subversion 1.7的答案:
在Subversion 1.7中,对工作副本进行了广泛的修订。在工作副本的底部只有一个.svn文件夹。如果使用1.7,则只需删除.svn文件夹及其内容是一个简单的解决方案(无论使用TortoiseSVN还是命令行工具)。
在Linux上,这将起作用:
find . -iname ".svn" -print0 | xargs -0 rm -r
尝试svn export。
您应该能够执行以下操作:
svn export /path/to/old/working/copy /path/to/plain/code
然后只需删除旧的工作副本。
TortoiseSVN还具有导出功能,其行为方式相同。
svn: E000002: Can't stat '/.classpath': No such file or directory
如果您正在运行Windows,则可以在该文件夹中进行搜索,然后.svn
列出所有内容。按Ctrl+ A将选择所有这些,按Delete将删除所有“讨厌的” Subversion内容。
在Linux上,命令为:
svn delete --keep-local file_name
这些回答都不能令人满意。我使用的是Subversion 1.8,我有一个工作副本,.svn
在第一个文件夹root下只有一个文件夹。但是,我想从工作副本中删除一些分支。
无论我做什么,只要我运行“更新”,它都会还原这些文件并将它们全部恢复。我不想从存储库中删除它们,而只是从我的计算机中删除它们-但我需要保持其余的工作副本不变(因此不能仅删除.svn文件夹)。
解? svn update --set-depth exclude <dir>
这是排除特定目录的客户端“更新”。可以在svnbook.com的手册中找到它。简而言之,它描述为:
从Subversion 1.6开始,您可以采用其他方法。首先,完整检查目录。然后在您不关心的一个子目录上运行svn update --set-depth exclude。
对于TortoiseSVN,还可以通过右键单击不需要的文件夹,单击Update to revision...
,然后将“ Update Depth”设置为来执行相同的操作Exclude
,如以下屏幕快照所示:
对我来说效果很好:
find directory_to_delete/ -type d -name '*.svn' | xargs rm -rf
mkdir -p ';echo Hi Johnny;/.svn'
–在这种情况下,对find的{}调用仍然应该有效
在Windows上,您可以为此添加一个快速链接到浏览器的右键菜单。只需启动以下注册表脚本:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_CLASSES_ROOT\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
这将在您的右键单击菜单上添加一个名为“删除SVN文件夹”的项目。这将删除此文件夹及其所有子文件夹中的所有.svn文件夹。
来源(德文):http : //www.sjmp.de/software/alle-svn-ordner-und-dateien-loeschen/
还有一个很好的开源工具SVN Cleaner,它在Windows资源管理器上下文菜单中添加了三个选项:
在Windows 7上,只要启用了隐藏文件,就可以打开项目文件夹并搜索“ .svn”,然后删除所有找到的.svn文件夹。
.svn
目录不再存在。有关更多详细信息,请查看subversion.apache.org/docs/release-notes/1.7.html#wc-ng
答案非常简单- 将文件夹导出到其自身!TortoiseSVN检测到这种特殊情况,并询问您是否要使工作副本不受版本控制。如果回答“是”,则将删除控制目录,并且您将拥有普通的,未版本控制的目录树。
最好,最简便的方法
如果您认为可以通过简单的魔术命令获胜,那就失败了!SVN确实很棘手,总是以某种方式在Xcode中返回新的错误消息。迟早要保证...所以您必须精打细算!
如您所知,Xcode的常规和最佳做法是在左侧的项目窗格中删除文件。如果您错过了它并以某种方式在Finder中将其删除,则很麻烦。大麻烦!但是如果做得好,您可以解决它并节省时间。
首先,您需要先删除对该文件或文件夹的SVN引用,然后才能实际删除它
如果您可以将文件/文件夹从回收站放回去,或者在删除文件时撤消最后一步,则...
前往终端-是的,好的旧终端-并前往该位置。最好的方法是键入cd,然后将文件夹/文件拉到终端。你会得到类似的东西
cd /用户/用户名/文档/ Apps_Developing / ...
你可以检查你在哪里
ls
命令列出您的文件。
然后,您需要使用SVN命令删除svn参考:
svn delete --keep-local fileName_toDelete
这将从SVN储存库中删除文件,但是您必须在Finder中手动将其删除。
svn export
工作正常,但我认为这是:
svn rm --keep-local <folder/file>
它将其从本地存储库中删除。
使用以下内容:
svn rm --keep-local <folder name>
删除文件夹及其中的所有内容。
svn rm --keep-local <folder name>/*
保留文件夹,但删除文件夹中的所有内容。
这是发生的情况的示例:
~/code/web/sites/testapp $ svn rm --keep-local includes/data/*
D includes/data/json
D includes/data/json/index.html
D includes/data/json/oembed
D includes/data/json/oembed/1.0
D includes/data/json/oembed/1.0/embed1.json
D includes/data/json/oembed/1.0/embed2.json
D includes/data/json/oembed/1.0/embed3.json
在Windows 10上,我们需要转到Windows Explorer
,然后转到View
并选中的复选框View hidden files
。
然后导航到Windows Explorer上具有SVN链接的文件夹,然后删除该.svn
文件夹/文件。
.svn
文件夹,但是他正在询问所有子文件夹。请仔细阅读问题。