如何将本地 Tortoise SVN 存储库移至新的 Linux SVN 服务器?
我已经在我的台式电脑上使用 Tortoise SVN(和 VisualSVN)和本地存储库几个月了。我们刚刚设置了一个 Linux SVN 服务器,我想将我的存储库移动到该服务器,保留我的所有历史记录。一旦移动,我将停止使用本地存储库。
Tortoise 文档建议使用“重新定位...”命令,但这会抱怨 UUID 不匹配。我发现了一些关于如何编辑 UUID 文件以使其与服务器匹配的建议,但 Tortoise 忽略了新值,即使在重新启动后也是如此。
另外,我目前无法通过命令行访问 Linux 服务器,但如果需要的话可能可以获取它。
最好的方法是什么?
I've been using Tortoise SVN (and VisualSVN) with a local repository on my desktop PC for a couple of months. We've just set up a Linux SVN server, and I want to move my repository to this server, preserving all my history. Once it's moved, I'll stop using the local repository.
The Tortoise docs suggest using the "Relocate..." command, but this complains about mismatched UUIDs. I found some suggestions on how to edit the UUID file to make it match the server, but Tortoise ignored the new value, even after a reboot.
Also, I currently don't have command line access to the Linux server, but can probably get it if I have to.
What's the best way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您需要
svnadmin dump
您的本地存储库,将该转储文件获取到Linux计算机上,然后svnadmin加载
在那里。完成上述操作后,
Relocate
用于您的工作副本。这是文档。
You need to
svnadmin dump
your local repository, get that dump file onto the Linux machine, andsvnadmin load
it there.Relocate
is used on your working copies after the above has been done.Here's the documentation.
您最好的选择是阅读 迁移仓库
Your best bet is to read the section on Migrating a repository in the Red Bean book
如果您使用FSFS存储库后端(这是自svn 1.3以来的标准),您可以将整个存储库目录(例如通过SCP)文件复制到LINUX服务器。那么重新定位应该没有问题,因为它实际上是同一个存储库。
FSFS repo 格式是平台兼容的(请检查 linux svn 版本是否与您的 VisualSVN 版本相同或更高)
我经常这样做并且它确实有效(当然,在复制 repo 之前停止提交会更好)
If you use a FSFS-repository backend (this is standard since svn 1.3) you can just file-copy the whole repository directory (eg. via SCP) to the LINUX server. Then the relocate should be no problem as it is in fact the same repository.
The FSFS repo format is platform compatible (please check that linux svn version is same or higher than you visualSVN version)
I did this very often and it really work (of course it is much better to stop committing before copying the repo)
我刚刚尝试了以下方法(作为对强烈绝望的回应):
存储库是使用 TortoiseSVN 创建的,另一端没有运行 SVN(只有共享资源)。因此,我安装了新的 SVN 服务器并使用其二进制文件来运行,
其中 server_ip 是创建存储库的服务器的 IP。它成功了!只需要对共享文件夹的权限(在我的例子中,我在 Active Directory 中有一个用户可以登录旧存储库服务器和新存储库服务器)。
只是猜测此信息可以帮助任何像我一样正在遭受严重迁移蹩脚设置的人。
I have just tried the following (as a response to intense despair):
The repositories were created with TortoiseSVN and no SVN running on the other side (only a shared resource). So, I installed the new SVN server and used its binaries to run
Where server_ip is the ip of the server where the repository was created. And it worked! Just needed permissions over the shared folder (in my case I have a user in Active Directory to login in the old repository server and the new one).
Just guessed that this info could help anyone that, like me, is suffering heavily migrating a crappy setup.