gpt4 book ai didi

git svn - 在提交 中找不到

转载 作者:IT王子 更新时间:2023-10-29 01:17:16 25 4
gpt4 key购买 nike

在使用 git-svn pull 下一个(相当大的)svn 存储库的过程中,我遇到了以下错误消息(通用信息代替了真实信息):

Found possible branch point: svn://server/project/trunk/dir => svn://server/project/branches/branchname, <revision>
Initializing parent: refs/remotes/branchname@<revision>
project/trunk/dir/file was not found in commit <hash> (r<revision>)

我已阅读 other posts可以通过一些修补来“取消获取”此信息。但是,我宁愿不丢掉历史,尽可能不痛不痒地往前走。

如何让 git-svn fetch 继续?

最佳答案

这可能意味着您正在接收一个新的 svn 修订版,它修改了一个文件,该文件(出于某种原因)在您的 git commit 中不存在,相当于父 svn 修订版。导致这种情况的一个非常简单的方法是与 --ignore-paths 不一致(最初没有办法配置它们,它们必须在每个 git-svn 可能获取的命令行)。另一种方法是让 svn 服务器端的某个人以这样一种方式更改存储库权限,即突然出现(从你的角度来看)你的 git 存储库没有历史记录的整个文件子树。

解决这个直接问题并继续 git-svn fetch 的最简单方法是使用 --ignore-paths(或者更好的 svn-remote .svn.ignore-paths 配置条目)忽略树的问题部分。您可以通过命令行参数来传递单个修订,并且在有人在 svn 端修改它之前您不会再次遇到问题。

如果您想在没有 --ignore-paths 的情况下恢复,那么您将需要修复父修订版,以便它包含正在修改的文件。我专门编写了 git-svn reset 来完成您所指的“取消获取”操作,减少修改工作。它可以将您的 svn remote 重置回文件真正创建的位置,以便您可以将它集成到您​​的历史记录中。这不会清除您的工作副本,但您需要重新设置此新历史记录中所有工作分支的父级。

关于git svn - 在提交 <hash> 中找不到 <file>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330202/

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