SVN重新定位还是切换?

RiZ*_*iZe 20 svn

我重新安装了我的SVN服务器,路径已从svn://192.168.1.35/DDL2/trunk/DD _...更改为svn://192.168.1.35/trunk/DD _... 我已经对工作副本进行了一些更改,并希望在服务器上提交它,因此我需要更改路径/ URL 而不影响工作副本.

我曾尝试使用TortoiseSVN的Relocate功能,但得到"Relocate只能更改URL的存储库部分",也许我应该使用Switch,但我担心工作副本修订版.


svn info svn://192.168.1.35/

Path: 192.168.1.35
URL: svn://192.168.1.35
Repository Root: svn://192.168.1.35
Repository UUID: 259834e4-a888-4201-9858-aaacfe621d8e
Revision: 58
Node Kind: directory
Last Changed Author: rize
Last Changed Rev: 58
Last Changed Date: 2009-11-02 18:33:09 +0100 (po, 02 11 2009)
Run Code Online (Sandbox Code Playgroud)

svn info D:\Programy\Eclipse Workspace\LDD_L2DP

Path: D:\Programy\Eclipse Workspace\LDD_L2DP
URL: svn://192.168.1.35/DDL2/trunk/DD_L2DP
Repository Root: svn://192.168.1.35
Repository UUID: 259834e4-a888-4201-9858-aaacfe621d8e
Revision: 21
Node Kind: directory
Schedule: normal
Last Changed Author: rize
Last Changed Rev: 17
Last Changed Date: 2009-10-21 19:22:41 +0200 (st, 21 10 2009)
Run Code Online (Sandbox Code Playgroud)

旧结构:

svn://192.168.1.35/DDL2
svn://192.168.1.35/DDL2/trunk/DD_L2DP
Run Code Online (Sandbox Code Playgroud)

新结构

svn://192.168.1.35/
svn://192.168.1.35/trunk/DD_L2DP
Run Code Online (Sandbox Code Playgroud)

Joh*_*ett 21

这个问题有答案.特别是:

svn switch --relocate http://svn.example.com/path/to/repository/path/within/repository http://svnnew.example.com/new/repository/path/within/repository
Run Code Online (Sandbox Code Playgroud)


ant*_*tik 15

如果您打算切换服务器,则使用重定位.例如,如果您希望工作副本不再引用svn://192.168.1.35/DDL2/trunk/DD_L2DP而转而使用svn://192.168.1.127/DDL2/trunk/DD_L2DP,则可以使用relocate.

如果要更改工作副本引用的存储库上的目录,则使用Switch.我相信这是你想要的.此操作不会影响存储库修订号:它仅更新工作副本的URL.

svn move如果你svn://192.168.1.35/trunk/DDL2DP想要创建并且你想要创建svn://192.168.1.35/DD_L2DP/trunk但它尚未存在于你的存储库中,则使用它.


jhe*_*ngs 6

编辑 - 基于您上面的输出,我认为您需要采取不同的方法.看起来原始存储库是/data/repository使用DDL2存储库中调用的文件夹创建的.可以看到您查看工作副本的"存储库根"值.

您将无法简单地使用存储库的根目录svn switch.相反,您需要使用svn move来重新组织新的所需根目录.这意味着您将继续为您的仓库提供服务/data/repository,但将所有文件DDL2移至顶层.

当然,如果你有本地编辑,移动一堆文件可能会很痛苦.我会提交所有更改,然后将其作为单个提交进行.svnserve在执行此操作之前,您需要更改args.