6

前几天意外删除了我的 Svn 存储库后,我想尝试其他的东西,我选择了 Perforce 作为我当前的版本控制工具测试场。它进展顺利,我喜欢在 Perforce 中看到的东西。

这是我的问题。我已将文件提交到我的 Perforce 服务器,然后使用我的客户端电脑从 Perforce 主服务器获取这些项目。现在一切都很好,除了我意识到可以在 Perforce 中使用多个“仓库”,而且对我来说,我应该将其中一些项目转移到另一个仓库 fpr 为了组织,也许出于安全原因客栈。

我一直在寻找一些答案,我找到了其中的几个,但是我无法产生任何预期的结果,因此我在这里寻找一些专家建议。

我尝试过的页面之一是这个

http://kb.perforce.com/article/24/renaming-depot-directories

似乎提供了一个解决方案,但是我无法将文件从一个仓库移动到同一服务器进程上的另一个仓库。页面中的示例适用于将某些文件夹移动到同一仓库中的文件夹。该示例似乎演示了移动到同一仓库下的另一个文件夹。

因此,我正在寻找一种合理且安全的方法将我的主 Perforce 软件仓库文件夹移动到同一服务器上的另一个软件仓库,并且自然不会丢失任何工作。

这就是我想要的

- 当前的

//Depot-A
 -->folder1
 -->folder2

- 我想

//Depot-A
 -->folder1

//Depot-B
 -->folder2

谢谢

4

3 回答 3

5

在不同的 depot 之间移动文件与在同一 depot 内的文件夹之间移动文件没有什么不同,只是目标 depot 必须已经存在。使用您的示例,并假设“Depot-B”尚不存在,将“folder2”从“Depot-A”移动到“Depot-B”,您只需执行以下操作:

p4 depot Depot-B
p4 edit //Depot-A/folder2/...
p4 move //Depot-A/folder2/... //Depot-B/folder2/...
p4 submit
于 2012-11-13T13:44:26.550 回答
0

这是我要做的(简而言之):如果您打开一个 P4V 会话并选择提交的更改列表选项卡,您可以过滤此集以仅显示与您要移动的部分相关的更改。这是您将在要填充的新仓库(甚至服务器)上复制的更改集。这个想法是您在一侧解开存档文件,并在目的地以相同的方式将它们卷起来。所以这个过程很简单(1)同步到第一个变更列表,(2)将该集合集成到新位置,(3)检查该集合,以及(4)继续下一个变更列表。显然,这可以编写脚本。我目前正在使用 python 编写脚本,但是任何带有 Perforce 函数库的体面的脚本语言都可以使用。几个并发症:更改列表将按顺序与原始列表相同,但原始时间不会 - 它们将是“当前的”。当然,如果有标签,如果您希望保留它们,则需要将其映射到新位置。

于 2014-11-07T16:05:40.127 回答
-1

我认为额外的仓库不会增加安全性。多个仓库场景主要出现在非常大的安装中。

附加软件仓库的主要好处是您可以更好地控制服务器的磁盘空间布局,例如,如果您的存储库太大而无法容纳单个文件系统并且您需要扩展它以使用多个文件系统。创建额外仓库的第二个原因是您是否必须拥有专门类型的仓库;例如,如果您希望创建一个 Streams depot 以使用 Perforce Streams 功能。

对于您所描述的情况,在可预见的将来,将所有文件都放在 Depot A 下可能没问题。

于 2012-11-12T15:07:43.693 回答