SVN:如何将旧的本地代码提交回现有分支?

SVN:如何将旧的本地代码提交回现有分支?,svn,Svn,我有一个问题: 我从主干创建了一个分支svn版本1880,以创建一个发布分支。 由于用户请求,我在没有将代码移植到主干的情况下对分支进行了大量修改。该分支现在是1949版。 与主干相比,工作代码1949有重大修改 工作代码1949已签出到同事的工作区。他正在运行满足他需求的代码。 我用1949年版本的分支代码更新了主干代码,并在主干中继续开发。 在某种程度上,由于我无法正确处理SVN,我用新的主干代码重写并提交了发布分支。分支版本现在是2170。 我在机器上本地没有2170代码。 但是,我需要将

我有一个问题:

我从主干创建了一个分支svn版本1880,以创建一个发布分支。 由于用户请求,我在没有将代码移植到主干的情况下对分支进行了大量修改。该分支现在是1949版。 与主干相比,工作代码1949有重大修改 工作代码1949已签出到同事的工作区。他正在运行满足他需求的代码。 我用1949年版本的分支代码更新了主干代码,并在主干中继续开发。 在某种程度上,由于我无法正确处理SVN,我用新的主干代码重写并提交了发布分支。分支版本现在是2170。 我在机器上本地没有2170代码。 但是,我需要将分支重新设置为1949版本。我将相关代码从同事的工作区复制到我的机器上。我可以毫无问题地运行它


->如何用1949版的本地代码覆盖SVN中的2170版?

正如您所写,您不能用1949版的本地代码覆盖SVN中的2170版。 您可以做的是在branch中提交一些修改,以便branch的下一个版本将具有与旧版本完全相同的内容。您可以在分支的工作副本上运行以下命令:


然后检查本地修改并提交。这将创建一个新版本2171或更高版本,其中分支将具有与旧版本1949相同的内容。

多亏Laurents post没有按照Laurent描述的方式为我工作,我成功地执行了以下解决方法:

开始情况:

我的本地工作区中确实有代码版本1949的本地副本 我在SVN中有2170版本的签入版本 然后我做了以下工作:

我将2170从SVN签出到本地工作区 在2170的本地副本中,我删除了所有内容,但没有隐藏* 然后在1949年的本地目录中,我将所有1949年的代码复制到2170目录中 切换到2170目录 在SVN中使用此更新的代码->版本2171执行了提交
我仍然要做的是手动删除SVN中不必要的2170文件。

您在branch then commit的工作副本上尝试过命令SVN merge-r 2170:1949吗?嗨,Laurent,谢谢您的评论,但不幸的是,它不起作用-我想我做错了什么,因为我在与SVN的斗争中非常艰难。尽管如此,我还是找到了一个解决方案:1我从SVN签出了我的版本2170。2然后在本地副本中,我删除了除.*隐藏目录以外的所有内容。3然后我将1949年本地副本中的所有内容复制到2170目录。4在2170的本地目录中,我执行了一次提交,该提交有效,并创建了一个版本2171。@WolfiG当您编写它不起作用时,您能详细说明发生了什么吗?请记住,您必须在更新为版本2170的分支的工作副本上运行svn merge命令,即头部版本。哎哟,你表演得太辛苦了!嗨,劳伦特,对不起,我真的不记得留言是什么了。我记得我在工作副本上运行了svn合并,但遇到了错误。由于时间紧迫,我没有调查这个错误。无论如何,非常感谢你的支持。
svn merge -r 2170:1949