我是SVN新手,我目前的组织流程如下
1) Trunk (mainline code)
2) Release-X.0 created from Trunk (for QA and other testing)
3) Tag-X.0 created from Release-X.0 (to release to customers)到目前为止,还没有对标记进行热修复。
如果需要在'Tag-X.0‘上执行热修复,我如何将更改合并回'Trunk'?
如果我没记错,'Tag-X.0‘和'Trunk’没有祖先关系,或者'Tag-X.0‘不是从'Trunk’创建的
请让我知道解决方案
发布于 2018-08-03 18:05:25
如果我理解正确的话,您应该提交一个对Tax-X.0的热修复,并且需要将其合并到主干中。在这种情况下,我会选择热修复到主干。
在干线结帐中:
svn merge -c [HOTFIX-REVISION] [Tag-X.0 URL]
svn commit -m "Merged hotfix from Tag-X.0"这应该就行了。
编辑:对于祖先,Tag-X.0和trunk应该是相关的,因为Release-X.0是从trunk创建的(我假设是复制的),然后Tag-X.0是从Release-X.0创建的,所以Trunk和Tag-X.0的关系应该是存在的。如果情况并非如此,并且版本和标记是通过其他方式创建的,并且svn merge -c不会做任何事情,那么您将需要忽略合并的祖先,即调用
svn merge -c [HOTFIX-REVISION] --ignore-ancestry [Tag-X.0 URL]Longer示例
因此,用于Tag-X.0的热修复应该是例如
timom@dev-machine:~/svn/tagx0$ svn commit --message "Hot-fix for Tag-X.0"
Sending services/foo/bar.cpp
Transmitting file data .
Committed revision 30816.
timom@dev-machine:~/svn/tagx0$和合并到主干
timom@dev-machine:~/svn/trunk$ svn merge -c 30816 ^/tags/X.0
--- Merging differences between repository URLs into '.':
U services/foo/bar.cpp
--- Recording mergeinfo for merge between repository URLs into '.':
U .
U services
timom@dev-machine:~/svn/trunk$ svn commit -m "Merged hotfix from Tag-X.0"
Sending services/foo/bar.cpp
Transmitting file data .
Committed revision 30817.
timom@dev-machine:~/svn/trunk$ https://stackoverflow.com/questions/51664830
复制相似问题