gpt4 book ai didi

linux - SVN:撤消与本地更改的合并

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:31 24 4
gpt4 key购买 nike

我使用的是 100 版,进行了局部更改。

我做了一个 svn 到达 HEAD(这是修订版 200)。然后我被错误地建议恢复到修订版 150,并在命令中进行本地更改:svn merge -r HEAD:150。

现在我真的想回到修订版 200 进行本地更改。 svn up 没有做任何事情,因为我似乎仍然缺少文件。我知道是因为文件 A.cpp 的修订版为 200,但不在我的本地工作副本中。

如果我执行 svn status,我会在 A.cpp 前面看到一个奇怪的“D”。他们似乎认为我想删除这个我什至不拥有的文件。

我现在处于什么状态,我该如何解决?

最佳答案

简而言之,您当前 checkout 的存储库一团糟——它结合了您的更改以及一组从 HEAD -> r150 返回的未提交更改。如果您在此时提交,它将具有删除从 150:HEAD 发生的所有更改的效果,然后添加您的更改。

如果尝试重新合并:svn merge -r 150:HEAD .不起作用(通常不会),那么我建议如下:

  • 假设您有当前的工作空间 <currws>
  • checkout 工作区的第二个副本,修订版为 150:svn co -r 150 <svn url> <newws> .这会给你一个目录 <newws>
  • (cd <currws>; tar cf - --exclude .svn .) | (cd <newws>; tar xf -) .这将从 <currws> 中获取所有文件和目录并将它们复制到 <newws> .

清点新目录 - 它现在应该只包含您所做更改的副本 - 其中一些可能需要通过 SVN 添加到工作区;或者,如果您有删除,则需要在 <newws> 上重新删除它们.您可以在 tar 之前从 new-ws 中预先删除所有文件/文件夹,以及在 tar 之后使用 ! 出现的所有文件/文件夹。表示您随更改删除的文件,任何带有 ? 的文件是一个需要添加的文件,剩下的应该是M条目。

将新工作区带到 HEAD - svn up <newws>在这种情况下应该有效。

验证一切正常,并且它只包含您的更改。

制作补丁文件,对其进行代码审查,然后提交。

我很确定这会让您回到正轨;虽然我没有树来检查我有的参差不齐的网络连接。

关于linux - SVN:撤消与本地更改的合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33045826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com