2013-12-10 29 views
2

我有两个版本的框架存储在我的仓库“第三方”目录下。一个是我正在评估的beta版,另一个是稳​​定的。当我第一次制作我的工作空间时,我已经开始使用稳定的工作空间了,但现在我想切换到使用测试版的测试版。我有几个问题:Perforce和处理切换不同版本的框架/库

  1. 假设这个框架被命名为Framework-2.0-beta和Framework-1.0-stable。理想情况下,我希望他们仅仅映射到本地机器上的“框架”目录,这样我就不必在我的项目文件中更改所有包含路径等。然后,从理论上讲,如果我想在框架之间来回切换,我只需简单地更改我要从仓库中取出哪一个,然后再次进行更新。我该怎么做呢?我首先尝试着像上面提到的那样映射它们,但我似乎正在使用这种方法得到一些错误。

  2. 这是最好的方式去这样的事情?就像我应该使用一个独特的工作空间来与一个框架版本和另一个版本一起使用?

感谢您的帮助。

+0

将它们映射到客户端视图中应该可以正常工作。你究竟做了什么,以及你得到了什么错误? –

+0

基本上我的客户端视图有这样的东西: //depot/framework-2.0-beta/... // my_workspace/framework/... - // depot/framework-1.0-stable/... // my_workspace/framework/... 当我将 - 符号从1.0切换到2.0时,我的本地“框架”目录似乎处于“奇怪”或不完整状态。它缺少大量文件。我尝试了一个get版本 - >使用force选项获得最新版本,但它从未更新过。我想我只是一定会搞砸了一些东西,因为我更换了服务器并建立了一个新的软件仓库,而且这个方法似乎工作至今...... – Architekt

回答

1

只用perforce方法最直接的方法是将两个版本框架 框架执行并将其中一个映射到您的项目的客户端视图。 例如提交框架,以这样的地方: //thirdparty/framework-2.0-beta/... //thirdparty/framework-1.0-stable/...

在你的项目clientview你一个映射两个到一个固定的目标路径,例如: // thirdparty/framework-2.0-beta/... // yourclient/framework/...

到目前为止好。 但在较大的环境中(有几个人开发同一个项目),你肯定会用这种方法遇到的问题,因为:

  • 工作区的编译/测试/性能结果并不 一定是相同的其他人们对同一个项目 工作(取决于clientview)

  • 有几个模块(第三方或没有),并在此 方式处理他们的将是难以管理,并导致与crossdependencies问题(例如模块 版本2将需要模块B版> 3,但这并不能与某些其他 模块工作等)

有解决这些依赖性问题的工具。寻找Apache IvyMaven

+0

感谢您的回答。每个版本只创建一个工作区会更有意义吗?所以我会有一个拥有项目和1.0框架的工作区,存储在一个目录中,另一个将项目和2.0框架存储在完整的单独目录中?因此,他们每个人都是完全独立的...... – Architekt

+0

这可能有点清洁,并且可以在小环境中很好地工作(只有很少的模块和很少的开发人员)。 – pitseeker