我在使用SVN中的分支机构时遇到了新的问题而且我遇到了问题(可能是一个概念问题)我在尝试将分支的更改合并到主干时无法理解
我将开发一个完整的例子来解释完整的问题。我正在使用Eclipse / Android和Subversive:
我使用Picture 1
中显示的结构创建了一个新项目,并将其作为修订版#1 提交到https://mysubversionhost/Tests/SVNTests/trunk
(忽略gen和bin文件夹)
图片1:
此时MainActivity.java是
package com.example.svntests;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
}
然后我继续在项目中工作并更新MainActivity.java,将其作为修订版#2 提交:
package com.example.svntests;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
codeA();
codeB();
codeC();
System.out.println("This is a bug!");
codeA();
codeB();
codeC();
}
private void codeA() {
// CODE A
}
private void codeB() {
// CODE A
}
private void codeC() {
// CODE A
}
}
此时我决定发布并创建标签名称 Release1.0 。此时的SVN结构显示在Picture 2
(修订版#3 )
图片2:
然后我继续在trunk中工作并删除对codeA()
的调用,并在com.example.svntests
中添加一个类OtherActivity.class。此时提交修订版#4 MainActivity.java是:
package com.example.svntests;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
codeB();
codeC();
System.out.println("This is a bug!");
codeB();
codeC();
}
private void codeB() {
// CODE A
}
private void codeC() {
// CODE A
}
}
然后我发现了错误"这是一个错误!"并希望在生产中修补它。所以我切换到标签 Release 1.0 并修复它(删除打印行并将类MainController.java添加到同一个包中)并提交修订版#5
此时我想继续使用修订版#4 并修复错误。所以我切换到主干并使用合并向导将更改从分支带到主干:
我本来希望在我的工作副本中获得这些课程:
- MainActivity.java (With conflicts)
- OtherActivity.java
- MainController.java
但我得到了未经修改的冲突文件。见下图
合并后的最终状态是:
我缺少什么?
答案 0 :(得分:3)
嗯,你对SVN常见有一些误解(我太懒了,不能将其中的一些用于Eclipse GUI)
Release 1.1
)