msysgit git-am无法应用它自己的git格式补丁序列

问题描述 投票:4回答:1

我正在Windows上使用msysgit git在中央svn存储库上进行操作。我正在使用git作为我想拥有一个很棒的小型本地分支机构,以便彼此之间相互依赖。

我还经常需要从中央仓库进行更新,因此不能使用单独的svn / git。

问题是-git svn --help(手册页)说,从本地分支的[分支(设置为从svn的trunk跟踪)中使用git merge不是一个好主意,因为这将破坏党的组织,git svn dcommit将不再起作用。

我知道这并不完全正确,如果您要合并,则可以使用git merge分支,该分支正确地基于

master

先前的合并,但是我试图使其更安全,并实际使用git format-patchgit am。我们正在使用代码审查,所以我还是在打补丁。我也知道git cherry-pick,但是我想只讲git am /reviewed/patches/dir/*而没有真正回想一下与此补丁对应的提交(就是不阅读补丁)。所以,git svngit am怎么了?这很简单-对于git am来说,很困难的一点是对提供的补丁进行了[[CRLF

LF的转换(准确地说,git-mailsplit在这样做),如果没有重新设置基准。 git format-patch也产生适当的(LF端)音色。

由于我的回购大部分是CRLF(并且应该保持这样),所以显然由于错误的EOL而导致补丁失败。将差异转换为

CRLF

并以某种方式修改git am以防止其转换​​也无法正常工作。如果删除或删除任何文件,它将失败-git apply将抱怨预期的/ dev / null(但他得到了/dev/null^M)。并且如果我将其与git am --ignore-space-change --ignore-whitespace一起应用,它将将LF结尾直接提交到索引,这也很奇怪。我不知道它是否会保留过度提交svn(通过git svn dcommit)并检出它,而我不想尝试。当然,仍然有可能尝试破解补丁以仅转换实际差异,但这对于简单的任务来说实在太多了。

所以,我想知道,实际上没有确定的方法来产生补丁并将它们应用于同一系统上的同一仓库吗?只是觉得

msysgit

无法应用它自己的补丁感到很奇怪。
git git-svn patch msysgit
1个回答
3
投票
这对我有所帮助。如果您阅读此书,则可以更好地理解。
© www.soinside.com 2019 - 2024. All rights reserved.