Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SVN revert如何影响项目中的其他合作者?_Svn_Merge Conflict Resolution - Fatal编程技术网

SVN revert如何影响项目中的其他合作者?

SVN revert如何影响项目中的其他合作者?,svn,merge-conflict-resolution,Svn,Merge Conflict Resolution,SVN中存储的项目有多个协作者。当前存储库版本为10。我刚刚发现我需要回到第五版,从那里开始工作。然后我进行更改并进行新的提交(修订版11) 这对其他合作者有何影响?当他们尝试提交(创建版本12)时,会发生什么?我想他们会收到代码/文件冲突的通知。然后,它们应该做什么呢?假设您正确地还原了这些更改(通过a),它对它们的影响与分支之间的任何其他更改合并,甚至提交了一组“正常”向前移动的更改没有任何区别。假设您正确地还原了这些更改(通过a),它对它们的影响与分支之间的任何其他更改合并,甚至提交“正常

SVN中存储的项目有多个协作者。当前存储库版本为10。我刚刚发现我需要回到第五版,从那里开始工作。然后我进行更改并进行新的提交(修订版11)


这对其他合作者有何影响?当他们尝试提交(创建版本12)时,会发生什么?我想他们会收到代码/文件冲突的通知。然后,它们应该做什么呢?

假设您正确地还原了这些更改(通过a),它对它们的影响与分支之间的任何其他更改合并,甚至提交了一组“正常”向前移动的更改没有任何区别。

假设您正确地还原了这些更改(通过a),它对它们的影响与分支之间的任何其他更改合并,甚至提交“正常”向前移动的更改集没有任何区别。

假设您正确地还原了这些更改(通过),它对它们的影响与分支之间的任何其他更改合并,甚至提交“正常”更改集没有任何区别向前移动的更改集。

假设您正确地恢复了这些更改(通过),它对这些更改的影响与分支之间的任何其他更改合并,甚至提交“正常”向前移动的更改集没有任何区别。

您可以恢复版本6到版本10之间的所有更改(并使用
svn merge
命令制作一个与第5版相匹配的新版本12):

$ svn merge -r11:6 .
但是,这将删除您的同事可能需要的更改。相反,您可能希望创建一个分支,然后将更改放在该分支上:

$ svn cp -r5 $REPO/trunk@5 $REPO/branches/revert_to_5
创建分支后,可以将工作副本切换到该分支:

$ svn switch $REPO/branches/revert_to_5
然后,提交将在该分支上进行的更改

$ svn commit -m"My commits on revision 5"
一旦你这样做了,你就必须想办法让你和你的同事重新合作。也许他们也想离开分支机构,或者你可能决定把你的更改放回主干上:

$ svn co $REPO/trunk
$ cd trunk
$ svn merge $REPO/branches/revert_to_5
然后,删除分支,因为您不再需要它

$ svn delete -m"No longer needed" $REPO/branches/revert_to_5
您可以使用
svn merge
命令恢复版本6到版本10之间的所有更改(并创建一个与版本5中的内容相匹配的新版本12):

$ svn merge -r11:6 .
但是,这将删除您的同事可能需要的更改。相反,您可能希望创建一个分支,然后将更改放在该分支上:

$ svn cp -r5 $REPO/trunk@5 $REPO/branches/revert_to_5
创建分支后,可以将工作副本切换到该分支:

$ svn switch $REPO/branches/revert_to_5
然后,提交将在该分支上进行的更改

$ svn commit -m"My commits on revision 5"
一旦你这样做了,你就必须想办法让你和你的同事重新合作。也许他们也想离开分支机构,或者你可能决定把你的更改放回主干上:

$ svn co $REPO/trunk
$ cd trunk
$ svn merge $REPO/branches/revert_to_5
然后,删除分支,因为您不再需要它

$ svn delete -m"No longer needed" $REPO/branches/revert_to_5
您可以使用
svn merge
命令恢复版本6到版本10之间的所有更改(并创建一个与版本5中的内容相匹配的新版本12):

$ svn merge -r11:6 .
但是,这将删除您的同事可能需要的更改。相反,您可能希望创建一个分支,然后将更改放在该分支上:

$ svn cp -r5 $REPO/trunk@5 $REPO/branches/revert_to_5
创建分支后,可以将工作副本切换到该分支:

$ svn switch $REPO/branches/revert_to_5
然后,提交将在该分支上进行的更改

$ svn commit -m"My commits on revision 5"
一旦你这样做了,你就必须想办法让你和你的同事重新合作。也许他们也想离开分支机构,或者你可能决定把你的更改放回主干上:

$ svn co $REPO/trunk
$ cd trunk
$ svn merge $REPO/branches/revert_to_5
然后,删除分支,因为您不再需要它

$ svn delete -m"No longer needed" $REPO/branches/revert_to_5
您可以使用
svn merge
命令恢复版本6到版本10之间的所有更改(并创建一个与版本5中的内容相匹配的新版本12):

$ svn merge -r11:6 .
但是,这将删除您的同事可能需要的更改。相反,您可能希望创建一个分支,然后将更改放在该分支上:

$ svn cp -r5 $REPO/trunk@5 $REPO/branches/revert_to_5
创建分支后,可以将工作副本切换到该分支:

$ svn switch $REPO/branches/revert_to_5
然后,提交将在该分支上进行的更改

$ svn commit -m"My commits on revision 5"
一旦你这样做了,你就必须想办法让你和你的同事重新合作。也许他们也想离开分支机构,或者你可能决定把你的更改放回主干上:

$ svn co $REPO/trunk
$ cd trunk
$ svn merge $REPO/branches/revert_to_5
然后,删除分支,因为您不再需要它

$ svn delete -m"No longer needed" $REPO/branches/revert_to_5

是正确的。在其他合作者之一提交12之前,他们必须更新到11。由他们的还原导致的工作副本中的任何潜在冲突都将出现在更新上,而不是提交上。是的,使用了SVN菜单中的还原。现在,版本5缺少他们在版本5、6等中所做的一些类。在合并更改后,他们将ose这些类,对吗?有什么方法可以防止这种情况发生吗?如果使用“还原”,那么您没有正确撤消更改。您需要执行反向合并。是的,如果您提交的修订删除了文件,则在更新这些文件时,将从其他工作副本中删除这些文件,除非这些WC中存在本地更改。您不能这样做“防止这种情况发生"因为这就是SVN的工作原理。唯一的解决办法是将这些文件复制到安全的地方,进行更新,然后再复制回来。但此时,你真的把你的修订历史搞砸了。所以
反向合并
是正确的做法。感谢没有用于反向合并的上下文菜单项。有一个用于合并。你可以使用用于合并的cify确定它是否为反向合并。我已经在core Subversion手册中为您提供了说明,这里是针对TSVN的说明:是正确的。在其他合作者之一提交12之前,他们必须将其更新为11。他们的工作副本中因还原而导致的任何潜在冲突都将在更新中,而不是t继承人提交。是的,使用了从SVN菜单恢复。现在,版本5缺少了他们在版本5、6等中所做的一些类。在合并更改后,他们将丢失这些类