在不进行签出的情况下更改 Subversion 中的文件夹名称

在不进行签出的情况下更改 Subversion 中的文件夹名称

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

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

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

答案1

首先,针对您的直接问题: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"

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

对于您的当前任务,您可以创建一个工作副本,其中仅包含需要重命名的文件夹上方目录中的文件夹。继续该示例,您将获得此工作副本,如下所示:

svn co --depth immediates http://example.com/svn/repo/trunk/path/to MY_WORKING_COPY

请注意,这还会提取“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

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

在网上搜索“稀疏工作副本”,你会找到更多信息。

相关内容