【发布时间】:2010-12-08 04:35:50
【问题描述】:
我接手了一个软件项目,并决定使用 Tortoise SVN 将所有内容置于 SVN(Assembla)之下。树干在ROOT下。所以主干包含整个应用程序(我标记为 1.0)。对于我的第一个大特性,我创建了一个名为“dev”的特性分支。
我可以毫无问题地将主干分支中的更改合并到开发分支中(因为我正在修复小错误)。一旦我的功能完成,我就合并回主干分支。到目前为止,一切都很顺利。 ROOT 下的新代码正确显示了新功能。但是后来我做了一个提交(合并的结果),现在每次我尝试从根或 dev 分支进行合并时,SVN 都会抱怨许多文件上的“树冲突”。甚至是合并后我没有接触过的文件。我试图解决冲突,但没有成功。
我是唯一的开发人员,所以我并不真正关心存储库的重大更改。但如果可能的话,我仍然想保留所有文件的历史记录。
解决此问题的最佳方法是什么?有没有办法可以将 ROOT 主干中的所有最新文件标记为文件的“确定”版本?
[编辑] 更多信息
- 是的,'main' 和 'trunk' 是一回事。我已经澄清了我的问题
- 当您从功能分支合并回来时,您是否首先从主干进行另一次合并以中止最新的主干更改?” 是的。主干是最新的。并且 dev 分支具有来自主干的所有更改后备箱。
- “提交时一切都搞砸了”:我的意思是提交没问题,但是当我开始从主干/到主干进行合并时,SVN 就会抱怨“树冲突”。
- 我有 200 多个树冲突。所以我正在寻找的是“全部接受”命令
[编辑] elhoim 解决方案没有解决我的问题。但是,他对 SVN 版本问题是正确的。目前(2009-10-28),Assembla 使用的是 SVN v1.5.1,而我的 tortoiseSVN 是 v1.6。所以这就是我有这么多树冲突的原因。我尝试使用 elhoim 的链接提供的解决方案,但它不起作用(在尝试 HEAD 到 HEAD 合并之前,我多次尝试了一堆合并。因此,一些文件没有传递到根分支)。
看到 HEAD-to-HEAD 合并仍然不起作用,我决定简单地删除分支文件夹中的所有“.svn”文件,将文件复制到 ROOT 文件夹并进行提交。
【问题讨论】:
-
@eldimo:当您将“main”合并到“dev”时,“main”分支是否与主干相同?还是“主干”中存在尚未发现的变化?
-
@dls:我认为他使用“main”和“trunk”这两个词来表示同一个分支。
-
@eldimo:需要一些细节来更清楚地说明: 1. 当您从功能分支合并回来时,您是否首先从主干进行另一次合并以中止最新的主干更改? 2. 提交时“一切都搞砸了”是什么意思?是否可以提供您在提交期间收到的错误消息?