Subversion将中继合并到现有标签中 [英] Subversion merge trunk into existing tag
问题描述
我目前在SVN存储库中进行以下设置:
I'm currently having the following setup in my SVN-repository:
-Root
--ProjectA
----trunk
----tags
----branches
--ProjectB
----trunk
----tags
----branches
--ProjectPool
----projectA
----projectB
ProjectPool包含ProjectA和ProjectB的特定标记的位置.
Where ProjectPool contains specific tags of ProjectA and ProjectB.
现在ProjectPool中的标签会不时更改.这意味着提交了ProjectA的特定主干版本,我想从该修订版创建一个副本到Root/ProjectPool/projectA.新标签应该替换旧标签,但是应该有可用的历史记录.
Now the tags in ProjectPool change from time to time. This means a specific trunk-version of ProjectA is commited and I want to create a copy from this revision into Root/ProjectPool/projectA. The new tag should replace the old tag, but there should be a history available.
这就像在我的计算机上拥有一个我永远不会改变的分支,并且不时地将中继线合并到其中.但是应该完全在存储库上完成. (无需签入/签出等)
Its like having a branch on my computer which I never change and from time to time merging the trunk into it. But it should be done on the repository completely. (without having to checkin/checkout etc)
这将使我了解Root/ProjectPool/projectA的历史并查看其更改.一种高级修订历史.
This would allow me to look into Root/ProjectPool/projectA's history and see the changes of it. Kind of a high-level revision-history.
更新:
对不起,我忘了问一个明确的问题-.-
在查看到现在为止的答案之后,我要说的是ProjectPool中的项目副本是原始项目的分支.然后,只要我需要在ProjectPool中使用新版本,就可以从主干合并它们.
现在的问题是,是否有一种方法可以合并在线",而不必先创建工作副本.
UPDATE:
I'm sorry I forgot to ask a clear question -.-
After viewing the answers which have been arrived until now, I would say that the copies of projects in ProjectPool are branches of the original projects. I then could merge them from trunk anytime I need a new version in ProjectPool.
The question now is, if there is a way to do the merging "online", without having to create a working copy first.
推荐答案
>>现在ProjectPool中的标签会不时更改.
>>Now the tags in ProjectPool change from time to time.
Tags
是里程碑,不应更改.您应该在每个发行版上创建一个新标签.
Tags
are milestones, they should not be changing. You should create a new tag on each release.
>>这意味着提交了ProjectA的特定主干版本,我想从该修订版创建一个副本到Root/ProjectPool/projectA.新标签应该替换旧标签,但是应该有可用的历史记录.
>>This means a specific trunk-version of ProjectA is commited and I want to create a copy from this revision into Root/ProjectPool/projectA. The new tag should replace the old tag, but there should be a history available.
您需要的是ProjectPool
下ProjectA
的 branch
,您可以将其与ProjectA
的 trunk
重复合并.像这样
What you need here is a branch
of ProjectA
under ProjectPool
which you can repetitively merge with trunk
of ProjectA
. With something like this
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
引用: http://svnbook. red-bean.com/en/1.5/svn.ref.svn.c.merge.html
>>这将允许我查看Root/ProjectPool/projectA的历史并查看其更改.一种高级修订历史.
>>This would allow me to look into Root/ProjectPool/projectA's history and see the changes of it. Kind of a high-level revision-history.
好像您已经处理了目录结构.如果可能的话,我建议您遵循这种结构.
Looks like you have gone ahead with your directory structure. I would suggest you to follow this structure, if possible.
-Root
+--ProjectPool
+--ProjectA
+----trunk
+----tags
+----branches
+--ProjectB
+----trunk
+----tags
+----branches
您可以在其tag
中发布 ProjectA和ProjectB.新的开发将在trunk
中继续.对于任何方面的开发或现货发行,请在branchs目录中创建一个branch
.分支完成后,将其合并回主干.这样,您的trunk
将始终反映所有修订和更改.而且,这更方便(和常规).
You can release ProjectA and ProjectB in their tag
s. Newer development will continue in trunk
. For any side development, or spot release, create a branch
in branches directory. When branch is done, merge it back to trunk. This way your trunk
will always reflect all the revisions and changes. And, this is more handy (and conventional).
希望这会有所帮助.
这篇关于Subversion将中继合并到现有标签中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!