svn切换分支的时候报没有共同的祖先是怎么回事

2024-12-29 08:53:52
推荐回答(1个)
回答1:

如果两个人修改了同一个文件的同一个版本,在后一个人提交或update时肯定会提示发现冲突,分支合并也与此类似,也会提示发现冲突。

svn的分支合并,简单来说就是干了这么一件事情:拿svn库中你指定的某个文件夹的某个版本,和你指定的本地某个文件夹进行比较,然后将差异传到你的本地文件夹。

关于分支合并的使用,举例来说,一般按照svn的官方建议,一个svn库根目录下会被分成trunk、branches、tags三个子文件夹。其中,trunk是用于存放平时不断进行新增、修改、提交的代码。而当开发到一定程度,需要进行一轮测试时,为了避免开发和测试缺陷修复相互干扰,就从trunk拉个分支(复制一个当前镜像)到branches下的test001文件夹,所有的缺陷修复都在branches下的test001文件夹中进行修改、commit。当这轮测试和缺陷修复都完成了,再将test001文件夹中的所有修改合并到trunk中,这时分支合并功能完成的事情就是:比较svn服务器端test001文件夹的最新版本与你本地客户端trunk文件夹,如果没有发生冲突,就将test001中修改过的文件覆盖你本地客户端trunk中对应的文件,然后由你自己再次进行commit操作,如果发现冲突,就提示发生了冲突而合并失败。

理解了分支合并功能干了些什么,我想你自然就明白了和commit/update的区别。