任何人都可以建议我如何从SVN存储库中删除完整的SVN项目(svn存储库在linux中).我发现"svn delete",但不认为它是一样的.它只能帮助删除文件或子文件夹,但不能删除整个项目.
use*_*419 47
这个答案可能令人困惑
请阅读本文附带的评论,并确保这是你所追求的
'svn delete'针对存储库内容,而不是针对存储库本身.为了进行存储库维护(比如完全删除一个),你应该使用svnadmin.但是,svnadmin没有'delete'子命令是有原因的.你可以
rm -rf $REPOS_PATH
Run Code Online (Sandbox Code Playgroud)
在svn服务器上,
其中$ REPOS_PATH是您用于创建存储库的路径
svnadmin create $REPOS_PATH
Run Code Online (Sandbox Code Playgroud)
wha*_*ger 10
来自svn存储库的"Obliberating"内容,即从光盘擦除此内容,可以按照本文所述完成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)
Run Code Online (Sandbox Code Playgroud)
此操作不会更改存储库计数器.但是,您的存储库现在"缺少"用于创建您在步骤(b)中删除的内容的所有修订号.
Subversion 1.7.5似乎很好地处理了这个"缺失"的修订.例如,使用"svn ls -r $ missing"报告与"svn ls -r $((missing - 1))"相同的报告.
与此相反,我(很老)VIEWVC在查询"缺失"修订时报告"无内容".
如果您只想从头版本中删除项目,那么当您运行时,它不再显示在您的仓库中svn list file:///path/to/repo/:
svn delete file:///path/to/repo/project
Run Code Online (Sandbox Code Playgroud)
但是,如果您需要删除repo中的所有记录,请使用其他方法.
我也觉得接受的答案有点误导,因为它可能导致用户无意中删除多个项目.在SVN的上下文中指出Repository,Project和Directory这两个词是不明确的是不准确的.它们具有特定的含义,即使系统本身不强制执行这些含义.社区,更重要的是SVN客户已经就这些条款达成了一致意见,这些条款允许他们进行标记,分支和合并.
理想情况下,这将有助于消除任何混淆.作为一个不得不从git转到svn进行一些项目的人,直到你了解到SVN分支和SVN项目真正在谈论文件夹结构时才会令人沮丧.
文件夹和文件的提交和历史数据库.存储库可以包含多个"项目"或没有项目.
一种特定的SVN文件夹结构,使SVN工具能够执行标记,合并和分支.SVN本身并不支持分支.分支是后来添加的,是特殊文件夹结构的结果,如下所示:
注意:请记住,SVN"项目"是用于在存储库中定义特定文件夹结构的术语
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/myrepocd myrepo
删除项目:svn rm skunkworks+svn commit
svn rm regulardir/subdir+svn commitsvn rm http://svn.server.local/svn/myrepo/app1svn rm http://svn.server.local/svn/myrepo/regulardir由于SVN 项目实际上是特定的目录结构,因此删除项目与删除目录相同.
有几个SVN服务器可用于托管您的存储库.存储库本身的管理通常通过服务器的管理控制台完成.例如,Visual SVN允许您创建存储库(数据库),目录和项目.但是,您无法从服务器控制台中删除文件,管理提交,重命名文件夹等,因为这些是特定于SVN的任务.SVN服务器通常管理存储库的创建.创建存储库并创建新URL后,其余工作将通过该svn命令完成.
| 归档时间: |
|
| 查看次数: |
139850 次 |
| 最近记录: |