【问题标题】:Checking SVN repository into new server将 SVN 存储库签入新服务器
【发布时间】:2013-12-13 18:52:06
【问题描述】:
我们已经使用VisualSVN Server 和TortoiseSVN 有一段时间了。这里的一位 PC 技术人员不小心删除了包含 VisualSVN Server 的服务器。幸运的是,我在前一天晚上做了一个 get latest 并且我在本地机器上拥有了所有的存储库。
我在机器上重新安装了 Windows Server 并重新安装了 VisualSVN。我的问题是,使用 TortoiseSVN,有没有办法将本地机器上的存储库“签入”回 VisualSVN?还是我需要手动浏览并创建每个单独的存储库并签入每个项目?
【问题讨论】:
标签:
svn
tortoisesvn
visualsvn-server
【解决方案1】:
首先,撤销 PC Tech 在网络上的权限。授予他的权限不超过大厅接待员的权限,因为显然他没有足够的责任来拥有他所拥有的权利。
第二个任务,锁定您的整个环境。像这样的事情绝不应该在成熟的专业环境中发生。今天它是 VisualSVN 服务器。你的域控制器会是下一个吗?还是内网?
幸运的是,我在前一天晚上做了一个 get latest 并且我在本地机器上拥有了所有的存储库。
不,你没有。您在本地计算机上的工作副本中拥有存储库最新版本的副本。
有没有办法将本地机器上的存储库“签入”回 VisualSVN。
您没有存储库,您有工作副本。它们链接到您从中检出它们的存储库。不可能创建一个新的存储库并将该工作副本提交回它 - 您可以做的最好的事情是导出工作副本的内容,然后导入到一个新的存储库中。
修订历史不会保存在 Subversion 工作副本中(与 Mercurial 或 git 不同),因此所有这些都丢失了。
从备份中恢复已擦除的服务器及其数据(您可能需要做一些体操才能恢复业务,并且您可能会丢失一些历史修订版,但您至少会拥有其中的大部分)。您确实有最近可用的备份,对吗?
如果您没有备份,那么您就是 SOL。您所拥有的只是您在本地工作副本中拥有的项目的当前版本。您必须从一个空的存储库重新开始,导入本地计算机上的内容,然后按前进。