任何人都可以建议我如何从SVN存储库中删除完整的SVN项目(svn存储库在linux中)。我发现“svn delete”,但不认为它是一样的。 它只能帮助删除文件或子文件夹,但不能删除整个项目。
答案 0 :(得分:47)
这个答案可能令人困惑
请阅读此帖后附带的评论,并确保这是您的目标
'svn delete'针对存储库内容,而不是针对存储库本身。为了进行存储库维护(比如完全删除一个),你应该使用svnadmin。 但是,svnadmin没有'delete'子命令是有原因的。你可以
rm -rf $REPOS_PATH
在svn服务器上,
其中$ REPOS_PATH是您用
创建存储库的路径svnadmin create $REPOS_PATH
答案 1 :(得分:10)
" Obliberating"来自svn存储库的内容,即从光盘擦除此内容,可以按照本文http://www.limilabs.com/blog/how-to-permanently-remove-svn-folder
中的描述完成它需要访问服务器端svn存储库,因此您必须具有一些管理员权限。
它的工作原理是:(a)将存储库内容转储到文件中,(b)排除某些内容;(c)再次擦除和重新创建普通存储库,最后通过(d)加载已过滤的存储库内容:
svnadmin dump "path/to/svnrepo" > svnrepo.txt // (a)
svndumpfilter exclude "my/folder" < svnrepo.txt > filtered.txt // (b)
rm -rf "path/to/svnrepo" && svnadmin create "path/to/svnrepo" // (c)
svnadmin load "path/to/svnrepo" < filtered.txt // (d)
此操作未更改存储库计数器。但是,您的存储库现在已经缺失了#34;用于创建您在步骤(b)中删除的内容的所有修订号。
Subversion 1.7.5似乎可以解决这个问题&#34;缺失&#34;修改很好。使用&#34; svn ls -r $ missing&#34;例如,报告与&#34; svn ls -r $((缺失 - 1))&#34;相同的报告。
与此相反,我的(很老的)VIEWVC报告&#34;没有内容&#34;当查询&#34;缺失&#34;修改
答案 2 :(得分:9)
如果您只是想从头版本中删除一个项目,那么当您运行svn list file:///path/to/repo/
时,它不会再显示在您的仓库中:
svn delete file:///path/to/repo/project
但是,如果您需要删除repo中的所有记录,请使用其他方法。
答案 3 :(得分:7)
我也觉得接受的答案有点误导,因为它可能导致用户无意中删除多个项目。在SVN的上下文中指出Repository,Project和Directory这两个词是不明确的是不准确的。它们具有特定的含义,即使系统本身并没有强制执行这些含义。社区,更重要的是SVN客户已经就这些条款达成了一致意见,这些条款允许他们进行标记,分支和合并。
理想情况下,这有助于消除任何混淆。作为一个不得不从git转到svn进行一些项目的人,在你了解到SVN分支和SVN项目真的在谈论文件夹结构之前,这可能会令人沮丧。
文件夹和文件的提交和历史记录数据库。存储库可以包含多个项目&#39;或者没有项目。
特定的SVN文件夹结构,使SVN工具能够执行标记,合并和分支。 SVN本身并不支持分支。分支是稍后添加的,是特殊文件夹结构的结果,如下所示:
注意:请记住,SVN&#39;项目&#39;是用于在存储库
中定义特定文件夹结构的术语http://svn.server.local/svn/myrepo
"Project" due to layout
"Project" due to layout
"Project" due to layout
<-- Not a "Project"
http://svn.server.local/svn/myrepo2
"Project" due to layout
由于存储库只是文件和目录提交的数据库,因此它可以托管多个项目。在讨论存储库和项目时,请确保使用正确的术语。
删除存储库可能意味着删除多个项目!
使用URL时,会自动进行提交。
svn co http://svn.server.local/svn/myrepo
cd myrepo
删除项目:svn rm skunkworks
+ svn commit
svn rm regulardir/subdir
+ svn commit
svn rm http://svn.server.local/svn/myrepo/app1
svn rm http://svn.server.local/svn/myrepo/regulardir
由于SVN 项目确实是特定的目录结构,因此删除项目与删除目录相同。
有几个SVN服务器可用于托管您的存储库。存储库本身的管理通常通过服务器的管理控制台完成。例如,Visual SVN允许您创建存储库(数据库),目录和项目。但是,您无法从服务器控制台中删除文件,管理提交,重命名文件夹等,因为这些是特定于SVN的任务。 SVN服务器通常管理存储库的创建。创建存储库并创建新URL后,其余工作将通过svn
命令完成。
答案 4 :(得分:5)
svn中没有“项目”的概念。所以,随意删除你认为属于项目的任何内容。
答案 5 :(得分:1)
处理工作副本
Subversion不会跟踪服务器上的工作副本的状态或是否存在,因此保持工作副本没有服务器开销。同样,没有必要让服务器知道您要删除工作副本。
如果您可能再次使用工作副本,将它留在磁盘上没有任何问题,直到您准备再次使用它为止,此时所需要的是一个svn更新以使其更新并准备好使用。
但是,如果您肯定不会再次使用工作副本,则可以使用操作系统提供的任何目录删除功能安全地删除整个内容。我们建议您在此之前使用你运行svn状态并检查其输出中列出的前缀为?的任何文件?确保它们不重要。
答案 6 :(得分:1)
很容易相信删除整个Subversion存储库需要“通知”Subversion您要删除存储库。但Subversion只关心在创建存储库后管理存储库,而不关心存储库是否存在(如果这是有意义的话)。它是这样的:Subversion工具和命令不会受到使用常规操作系统实用程序(如rm -R)删除存储库目录的不利影响。存储库目录与已安装的程序目录不同,删除程序而不卸载它可能会留下不稳定的配置文件或其他依赖项。存储库在其目录中是100%自包含的,删除它是无害的(除了丢失项目历史记录)。您只需清理平板以创建新的Subversion存储库并导入下一个项目。
答案 7 :(得分:-1)
转到Eclipse, 单击菜单栏中的窗口,然后单击“打开透视图 - &gt;其他 - &gt; SVN资源库探索 - &gt;单击确定”
现在,在执行“单击确定”后,您需要前往卡车(或将项目保存在SVN中的位置),然后选择项目(您要删除),然后右键单击 - &gt;删除。
这将从subversion中删除项目。
答案 8 :(得分:-2)
正确的句子是:svnadmin deltify $ PATH。 不要忘记从文件svn-acl中删除项目或存储库(如果你使用它)。 如果您只是删除存储库的文件夹,则可能会损坏svn目录,具体取决于您的环境中svn的配置方式。