svn - 从 Git 到 SVN : Failed to merge in the changes

标签 svn git

我在 Git 存储库中有一些代码需要与 SVN 存储库同步。我的食谱看起来像这样:

  1. 创建一个 SVN 存储库(本地的,用于测试,将是一个远程的)。
  2. 创建初始布局,提交 1 次修订
  3. git svn clone -T '/trunk' <REPO>基于初始提交的新 Git 存储库。
  4. git remote add dev <ORIGINAL>其次是 git pull dev <ORIGINAL_BRANCH> .现在我在存储库中有了基于初始 SVN 提交的主分支。
  5. git svn rebase接下来是 dcommit .

但是第 5 步失败了:

Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging X
Applying: Y
Applying: Z
Using index info to reconstruct a base tree...
<stdin>:269: trailing whitespace.

<stdin>:315: trailing whitespace.

<stdin>:400: trailing whitespace.
     * Method 2.6. Returns zero or two elements 
<stdin>:3762: trailing whitespace.

warning: 4 lines add whitespace errors.
Falling back to patching base and 3-way merge...

随后是一些“自动 merge ”和“CONFLICT(内容)”消息,rebase 最终以友好的“无法 merge 更改”停止。我能做些什么来自动解决这些冲突吗?我什至不明白 rebase 时怎么会发生冲突!

最佳答案

冲突就是冲突,git 永远无法真正为您解决它们。只有人类才能确定两个相互排斥的修改中哪一个是正确的。

至于为什么在 rebase 期间会发生冲突?它实际上与 merge 操作是同一种操作,只是产生了不同的历史记录。假设您在这里将提交 X rebase 到提交 D:

- A - B - C - D
   \
    X

结果内容应该与将 D merge 到 X 中时相同。如果提交 B 中的某些内容与提交 X 中所做的更改冲突,则会发生 merge 冲突。无论您是 merge 还是 rebase 都没关系。

关于svn - 从 Git 到 SVN : Failed to merge in the changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4215726/

相关文章:

svn - 颠覆外部问题

visual-studio - TortoiseSVN 补丁文件应用不正确

svn - 如何让 svn 仅在我的工作副本中忽略 unversion 文件?

git - 如何从命令行将 git config 变量设置为空值

git - 如何在git中查看未跟踪的文件而不是未跟踪的目录

git - git repo 变化量的图表

svn - 我怎么知道我的工作副本是否不同步

svn - 更改工作文件夹位置

git - 机器学习模型的版本控制(约250 MB)

Github 存储库不使用 gh cli 克隆