如何设置将主线映射到子文件夹的开发流?
How do I setup dev streams that map mainline to a subfolder?
我正在努力为以下场景设置流:
我有一个库项目 (//libX
) 使用典型的主线、发布和开发流。
但是,我希望为使用此库的单独产品 (//libX/projectA
) 提供开发流。这些产品具有不同的目录结构,我想将 //libX/main/...
映射到子文件夹 //libX/projectA/extern/libX/...
。
比如我的库结构是这样的:
//libX/main
/bin
/src
/tests
readme.txt
我的项目完全不同,但使用我的库
//libX/projectA
/documentation
/extern
/libX
/bin
/src
/tests
readme.txt
/MaxSDK
/source
/tools
config.xml
我最接近它的工作是这样的:
- 路径:
share ...
- 重新映射:
... extern/libX/...
但重新映射似乎只能修复本地计算机上的文件位置。使用上述重映射设置,libX 文件最终与 projectA 文件位于同一根目录下。
以上场景是否可以使用流,或者我应该返回到分支规范?
谢谢!
您的项目不应该是您的 lib 流的子流——将它放在自己的流库中似乎不那么令人困惑:
//libX/main
/bin
/src
/tests
readme.txt
//libX/projectA (child of //libX/main)
/bin
/src
/tests
readme.txt
//projectA/main
/documentation
/extern
/libX (mirror of //libX/projectA)
/bin
/src
/tests
readme.txt
/MaxSDK
/source
/tools
config.xml
你会得到这个结构:
Stream: //projectA/main
Paths:
share ...
import extern/libX/... //libX/projectA/...
不幸的是,这种方法有一些局限性——如果您的 libX
路径不是微不足道的 share ...
那么 import
将无法正确选择它,因为 import path depotPath
语法导入仓库路径,而不是流路径。通过正常导入,您也无法从此流中对 libX/projectA
进行更改——您可以使用 import+
来允许这样做,但我已经看到 import+
的问题够多了,我的倾向于在更改库时将其设为我的工作流程:
p4 switch //libX/projectA
(make changes)
p4 submit
p4 switch //projectA/main
尽管这假设该库足够模块化(具有涵盖项目用例等的自己的单元测试),您可以在其中独立完成这项工作。
我正在努力为以下场景设置流:
我有一个库项目 (//libX
) 使用典型的主线、发布和开发流。
但是,我希望为使用此库的单独产品 (//libX/projectA
) 提供开发流。这些产品具有不同的目录结构,我想将 //libX/main/...
映射到子文件夹 //libX/projectA/extern/libX/...
。
比如我的库结构是这样的:
//libX/main
/bin
/src
/tests
readme.txt
我的项目完全不同,但使用我的库
//libX/projectA
/documentation
/extern
/libX
/bin
/src
/tests
readme.txt
/MaxSDK
/source
/tools
config.xml
我最接近它的工作是这样的:
- 路径:
share ...
- 重新映射:
... extern/libX/...
但重新映射似乎只能修复本地计算机上的文件位置。使用上述重映射设置,libX 文件最终与 projectA 文件位于同一根目录下。
以上场景是否可以使用流,或者我应该返回到分支规范?
谢谢!
您的项目不应该是您的 lib 流的子流——将它放在自己的流库中似乎不那么令人困惑:
//libX/main
/bin
/src
/tests
readme.txt
//libX/projectA (child of //libX/main)
/bin
/src
/tests
readme.txt
//projectA/main
/documentation
/extern
/libX (mirror of //libX/projectA)
/bin
/src
/tests
readme.txt
/MaxSDK
/source
/tools
config.xml
你会得到这个结构:
Stream: //projectA/main
Paths:
share ...
import extern/libX/... //libX/projectA/...
不幸的是,这种方法有一些局限性——如果您的 libX
路径不是微不足道的 share ...
那么 import
将无法正确选择它,因为 import path depotPath
语法导入仓库路径,而不是流路径。通过正常导入,您也无法从此流中对 libX/projectA
进行更改——您可以使用 import+
来允许这样做,但我已经看到 import+
的问题够多了,我的倾向于在更改库时将其设为我的工作流程:
p4 switch //libX/projectA
(make changes)
p4 submit
p4 switch //projectA/main
尽管这假设该库足够模块化(具有涵盖项目用例等的自己的单元测试),您可以在其中独立完成这项工作。