有关在.NET中使用Subversion的建议 [英] Advice on using Subversion with .NET

查看:46
本文介绍了有关在.NET中使用Subversion的建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我们已经使用Subversion大约8个月了.我们遇到了一些问题,我很感谢有关如何使用Subversion的一些建议.

背景:

我们有一个包含约20个项目的VS.NET解决方案.这是自家制的ESB,每个接口都在其自己的项目中. (是的,我们已经开始研究商业和开源ESB,这可能意味着要转向Java,但这不是我要问的问题.)
在任何时候,我们都可能在对接口或新接口进行若干更改.

我们如何使用Subversion:

中继线包含当前的生产"版本.每个新项目都创建为一个分支.所以我们有:
-/trunk
-/branches/20100307.Job1
-/branches/20100411.Job2
-/branches/20100611.Job3
三个项目都处于活动"状态.
当工作"准备好进行生产时,项目分支将合并到主干中,并创建新的生产安装(msi),并创建一个标记以标记发布".

那是什么问题:

1)将主干滚动到活动项目中

正如我指出的,我们随时可能有几个独立的项目.假设我们完成Job2并将其合并到主干中并创建生产版本.之后,我们要将主干合并到Job1和Job3分支中,以便可以确保它们的测试包括当前主干代码.

通常,这会导致许多树冲突.

2)从多个项目创建开发版本.

此应用程序是ESB,我们的ERP使用该ESB来分发消息.有时,我们的ERP开发团队希望同时测试多个项目(例如Job1和Job3),因此我们需要将Job1和Job3分支放在一起,并为测试服务器创建安装程序(MSI).

我们尝试合并的方法似乎总是会遇到很多树冲突.

谁能建议我们如何安排工作,使我们不会遇到所有的树木冲突?

谢谢
Steve

Hi

We''ve been using Subversion for about 8 months. We''re runnnig into some issues and I''d appreciate some advice on how to use Subversion.

Background:

We have a VS.NET Solution containing about 20 projects. This is a home grown ESB and each interface is in it''s own project. (Yes, we''ve started looking at commercial and Open Source ESBs, which will probably mean a move to Java, but that isn''t what I''m asking about.)
At any one time we might be working on several changes to an interface or new interfaces.

How we use subversion:

The trunk contains the current "Production" version. Each new project is created as a branch. So we have:
- /trunk
- /branches/20100307.Job1
- /branches/20100411.Job2
- /branches/20100611.Job3
with all three projects being "active".
When a "Job" is ready for Procudtion the project branch is merged into the trunk and a new production install (msi) is created, and a tag is created to mark the "Release".

So what''s the problem:

1) Rolling the trunk into active projects

As I noted we may have several independant projects on the go at any time. Say we finish Job2 and merge it into the trunk and create a Production release. After that we want to merge the trunk into the Job1 and Job3 branches so that we can ensure that their testing includes the current trunk code.

This ususally results in many tree conflicts.

2) Creating a Development release from several projects.

This application is an ESB that is used by our ERP for distributing messages. Sometimes our ERP developnent teams want to test multiple projects (say Job1 and Job3) at the same time so we need to roll the Job1 and Job3 branches together and create an installer (MSI) for the test server.

The methods we''ve tried for merging always seem to get lots of tree conflicts.

Can anyone suggest how we can arrange our work so that we don''t experience all the tree conflicts?

Thanks
Steve

推荐答案

基本上没有.不同分支和主干之间总是会发生冲突.

您可以做什么:

将您的解决方案组织成一个共享的和特定于项目的部分.这样,当在两个不同的项目中对共享库进行了冲突的更改时,冲突可能会更多地局限于共享库.

当开发人员负责共享部分的工作时,可能会有所帮助.当发生冲突时,该开发人员最清楚如何解决它们.

同样,尽可能长时间地延迟两个分支的合并可能会使事情变得更加复杂.时间越久,冲突就会越多,尝试解决冲突时您可能会不记得一切.定期将活动分支彼此合并会减少此问题.
Basically, no. Conflicts between different branches and the trunk will always happen.

What you can do:

Organize your solution into a shared and project specific parts. This way conflicts will probably be more restricted to the shared libraries when conflicted changes to them have been made in two different projects.

It may help when a developer is responsible for the work on the shared parts. When a conflict occurs, this developer knows best how to resolve them.

Also, delaying the merging of two branches as long as possible may make things much more complicated. The more time has passed, the more conflicts there will be and you may not remember everything when you try to resolve them. Merging the active branches onto each other regularily will lessen this problem.


这篇关于有关在.NET中使用Subversion的建议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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