更新后未显示冲突

时间:2010-09-08 15:23:58

标签: svn

svn 1.6.9

我有我的开发(dev)机器和目标测试机器(测试)

但是,如果我在我的开发机器上做了一些更改,那么在我更新时会导致测试机器发生冲突,因为我在同一个文件中修改了相同的行代码。

例如

(DEV)

main.c
void get_device(int device_id);

(测试)

main.c
void get_device(int device_id);

两者都完全一样。现在,当我将dev的原型更改为:

char* get_device(int device_id);

然后提交更改。

当我在测试机器上更新时。它不应该导致冲突,因为我修改了相同的代码行吗?我更新时得到的全部内容如下:

U    main.c

它是否应该告诉我有一行代码存在冲突?而不只是更新代码行?

但是,如果我对测试机器做了一些小改动,那么我尝试提交。然后它无法提交。然后,当我尝试更新它时,它将向我显示在该行中将void更改为char *的冲突。

在我看来,如果我更改相同的代码行,我希望在尝试更新时收到任何冲突的通知。

非常感谢任何建议,

3 个答案:

答案 0 :(得分:2)

如果SVN能够合并更改,则不会导致冲突。当SVN在更新期间没有很好的方法来合并更改时,通常会出现冲突,尤其是同时对同一代码进行多次更改。

在您的情况下,在一个地方进行了更改,然后在另一个地方进行了更新。这不是冲突情况。

答案 1 :(得分:2)

您可以使用

检查存储库中的更改

svn status --show-updates

该命令不会改变您的工作副本。

您可以查看有关文件状态的svn文档。仅当svn无法合并更改时才会发生冲突。

答案 2 :(得分:1)

如果测试机器上的main.c与BASE相同,则可以预期(无冲突,只需更新)。当您在测试中执行'svn update'时,svn首先通过将它与BASE进行比较来检查main.c是否存在任何本地更改 - 仅当本地副本和HEAD对文件的同一部分进行更改时才会发生冲突(与BASE比较时。)

希望这有帮助。