在 subversion 中更改文件夹的名称 * 无需 * 结帐

cwa*_*ole 10 svn

因此,subversion 存储库中有一个文件夹名称不正确。我的任务是重命名它。不幸的是,存储库非常大,这意味着尝试检查内容需要花费相当多的时间。它还不断给我“对等连接重置”消息。

有没有办法简单地将提交指令发送到存储库而无需签出?我不需要在本地进行有效的结帐。

(如果相关,则存储库托管在 Assembla 中)

Ben*_*Ben 11

首先,对于您的直接问题:svn move允许在存储库中提供 URL,以避免此操作需要工作副本。例如,

svn mv http://example.com/svn/repo/trunk/path/to/dir http://example.com/svn/repo/trunk/path/to/renameddir -m "renaming poorly named directory"
Run Code Online (Sandbox Code Playgroud)

但实际上,存储库大小应该对这项任务基本上没有影响。您不需要为此任务签出完整的存储库。可能您不需要查看大多数任务的完整存储库,真的,所以您应该继续阅读!称为稀疏工作副本的概念允许您仅检查任务所需的内容。此外,始终只从存储库中检出您需要的子树。

对于您的即时任务,您可以创建一个工作副本,其中仅包含需要重命名的目录正上方的目录中的文件夹。继续这个例子,你会得到这样的工作副本:

svn co --depth immediates http://example.com/svn/repo/trunk/path/to MY_WORKING_COPY
Run Code Online (Sandbox Code Playgroud)

请注意,这还将拉入子目录之外的“to”目录中的任何文件(如果有)。如果你想避免这些,那也是可能的:

svn co --depth empty http://example.com/svn/repo/trunk/path/to MY_WORKING_COPY
svn up --set-depth empty MY_WORKING_COPY/dir
Run Code Online (Sandbox Code Playgroud)

请注意,如果您需要一堆文件/子目录,TortoiseSVN 客户端可以轻松实现第二种方法的自动化。

在网络上搜索“稀疏工作副本”,您会发现更多信息。