0

所以我们团队中的某个人正在使用 TortoiseSVN,并在五分钟内做出了大约十个承诺(没有评论,natuerlich),之后我们的软件就停止了正常工作。我们其他人都在命令行中做出承诺,没有发生任何问题。我认为他在做他不知道的事情,现在我们遇到了一系列似乎无法解决的问题。它在 r29 时运行良好,当一个人将本地副本恢复为 r29 时,该软件的行为与预期一样。我现在不会详细说明我们尝试解决此问题的所有方法,但到目前为止,我们未能将 r29 提交到新版本。所有有关还原的命令似乎都不适用于制作新版本,并且当文件系统发生重大更改时,支持似乎不相关。

那么你能告诉我如何签出旧版本并将其提交为最新版本吗?

4

3 回答 3

2

您应该能够将 r29 导出到本地计算机上的一个位置,并将 head 版本检出到另一个位置,并用 r29 覆盖 head 中的所有文件,然后提交它们。这有点hacky,但它应该可以工作。

另外,您也许可以进行反向合并...

于 2010-12-04T21:44:07.860 回答
2

您可以通过在干净的工作目录中执行此合并命令(不更改文件)返回到 r29:

svn merge -rHEAD:29 .
svn commit -m'rolling back to -r29.'

这意味着“创建一个由 HEAD(最新)和 -r29 之间的差异形成的补丁,并在此处应用该补丁”。这有效地逆转了自 -r29 以来执行的所有更改。

于 2010-12-04T22:43:11.813 回答
2

请参阅《使用 Subversion 进行版本控制》一书中有关撤消更改的章节

例如撤消更改 30:

svn merge -c -30 http://path/to/your/repo/trunk

这本质上是创建一个新的提交来逆转 r30 的更改。在 Subversion 中严格意义上没有撤消,历史总是被保留(这是 IMO 的一件好事)

于 2010-12-04T22:44:57.810 回答