Subversion将中继合并到现有标签中 [英] Subversion merge trunk into existing tag

查看:86
本文介绍了Subversion将中继合并到现有标签中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前在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.

您需要的是ProjectPoolProjectA 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 tags. 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆