如何在Subversion中添加/删除文件夹而不必从仓库下载?

27

我有一个很大的代码仓库,想要添加或删除一个文件夹。我还没有检出任何内容。有没有快速的方法可以做到这一点?


你有svn仓库的ssh访问权限吗? - txwikinger
请使用 [svn] 标签代替 [subversion] 标签。http://meta.stackexchange.com/questions/2601/batch-retag-request-merge-svn-and-subversion - Brad Gilbert
5个回答

43

如果您拥有 SVN 命令行客户端,则可以查看 svn mkdir 和 svn delete 命令。

键入以下命令可获取完整文档:

svn help mkdir

svn help delete


现在svn mkdirsvn delete都可以远程工作(即无需本地工作副本),因此您可以完全按照OP的要求执行操作(并在任何操作系统下执行)。 - rsenna

18

svn delete 可以在工作副本或 URL 上操作。当您指定 URL 时,此操作会导致立即提交-所以请小心。

如果您想在一个提交中删除多个不相干的目录,可以使用 --depth 参数 svn checkout 进行浅层(因而快速)检查,然后在其上进行本地操作,然后提交。

当然,这个答案假设您只想从问题 URL 的 HEAD 中删除文件- 如果您想完全从仓库中清除文件/文件夹,则需要更多的工作

(编辑添加有关添加的信息)

要添加目录,必须拥有工作副本。但它并不一定是一个完整的工作副本:您可以使用上面提到的 --depth,只检出您要将新目录添加到其中的目录,然后 svn add 新目录,最后提交。

如果您想在另一个 URL 中复制存在于仓库中的目录,则可以使用 svn copy 并保留历史记录。


2
svn mkdir 可以在不检出工作副本的情况下在 URL 上工作。 - Noel Walters
这很好,如果你想添加空目录的话。 - Dan Davies Brackett
@DDaviesBrackett - 非常正确。 - Noel Walters

7
如果你正在使用 Windows 上的 Tortoise SVN,这很容易。你可以通过 GUI 进行“查看仓库”,并添加服务器上的文件夹。

2
如果你可以通过Tortoise执行这项操作,那么一定有一个命令行选项可以完成同样的任务。 - txwikinger
是的,但我不太熟悉执行此操作的选项。svn delete 可以在 URL 上工作,但是据我所知和文档中所述,svn add 仅适用于本地存储库。 - Reed Copsey
你的意思是本地工作副本,Reed =) 是的,没错。你可以添加到稀疏检出,但必须要有某些东西被检出。 - Dan Davies Brackett

5

-4

可以的。你可以使用 TortoiseSVN 客户端来完成。


10
如果你是从谷歌搜索过来的,使用TortoiseSVN在Windows上,请右键点击,选择“Repo-Browser”。你可以在那里创建目录。注意不要修改原文意思,尽量使译文通俗易懂。 - Tarka
12
如果你正在使用Unix机器呢?这个答案只在一定意义上是“正确”的,因为原帖提到了使用Windows,并且愿意通过谷歌搜索使用TortoiseSVN的方法。 - Jukka Dahlbom
奇怪。当我点击“删除”时,出现“您无法删除此已接受的答案”的错误。@Jader-dias,请重新接受得票最高的答案好吗? - bohdan_trotsenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接