重命名SVN存储库项目名称

the*_*tna 33 svn naming

我已将项目从CVS迁移到SVN.现在我需要重命名该项目.什么是最好的重命名方式,保持历史的完整性.项目文件夹包含大约100个C及其头文件.

Die*_*ago 44

要重命名存储库,您只需重命名其根目录并生成新的UUID.假设存储库在/var/svnroot/my_repo您必须运行此命令(以root身份)来重命名存储库:

$ mv /var/svnroot/my_repo /var/svnroot/my_new_repo
$ svnadmin setuuid /var/svnroot/my_new_repo
Run Code Online (Sandbox Code Playgroud)

之后,您可以通过您喜欢的协议访问它.

  • 只要您移动(不复制)原始存储库,就不需要生成新的UUID. (5认同)
  • 这有什么证据吗?我不想冒这样做并损坏我的回购. (2认同)
  • @guerda我正在使用这个移动的回购一年没有任何问题,但现在我不在同一家公司工作.您知道,在对数据进行任何重要更改之前进行备份;) (2认同)

Mik*_*scu 21

Subversion中没有内置机制来重命名存储库.

保持完整性和历史记录的最佳选择是执行旧存储库的存储库转储,然后将转储重新导入新存储库.

我在这里写了一篇关于这个的文章:如何重命名SVN存储库.

您只需要使用svnadmin实用程序,然后svnadmin创建一个新的存储库,svnadmin转储先前存储库的内容,最后svnadmin将转储导入到您使用svnadmin create创建的新存储库中.

编辑

如果您需要重命名存储库中的"项目" - 并且通过项目我假设您指的是一个目录 - 那么您只需要使用svn move命令.请注意,这是使用svn客户端而不是svnadmin完成的.该SVN移动命令的语法svn move SRC DEST,它可以让你基本上瓶坯文件的重命名或你的仓库里面的目录.应该为该文件(或目录)保留所有历史记录.

  • @Minky:你的博客是4月1日的笑话吗?要重命名存储库,只需重命名repo所依赖的目录:例如,如果您的repo位于/ opt/svn/my_old_name,则只需应用:mv/opt/svn/my_old_name/opt/svn/new_name无需转储/重新加载! (45认同)
  • 谢谢peter parker和toddmo,不需要转储或其他复杂的东西,你说的:mv/opt/svn/my_old_name/opt/svn/new_name有效,只需要更新权限/配置,也适用于复制存储库 (2认同)
  • @PeterParker - 请将您的评论发布为答案 - 应该加入.评论的另一种方式可以是监督.谢谢你的信息! (2认同)

spl*_*ash 18

SVN Book\5.存储库管理\ 移动和删除存储库:

Subversion存储库数据完全包含在存储库目录中.因此,您可以将Subversion存储库移动到磁盘上的其他位置,重命名存储库,复制存储库或使用操作系统提供的工具完全删除存储库以操作目录

重命名通常在同一台服务器上完成,因此存储库目录的简单重命名/移动就可以完成.的通话svnadmin setuuid不是必需的,因为你不是制作副本和的UUID应保持不变,这样你的客户可以很容易地迁移到新的存储库URL.