我正在Windows上使用msysgit git在中央svn存储库上进行操作。我正在使用git作为我想拥有一个很棒的小型本地分支机构,以便彼此之间相互依赖。
我还经常需要从中央仓库进行更新,因此不能使用单独的svn / git。
问题是-git svn --help
(手册页)说,从本地分支的[git merge
不是一个好主意,因为这将破坏党的组织,git svn dcommit
将不再起作用。
git merge
分支,该分支正确地基于master
先前的合并,但是我试图使其更安全,并实际使用git format-patch
和git am
。我们正在使用代码审查,所以我还是在打补丁。我也知道git cherry-pick
,但是我想只讲git am /reviewed/patches/dir/*
而没有真正回想一下与此补丁对应的提交(就是不阅读补丁)。所以,git svn
和git am
怎么了?这很简单-对于git am
来说,很困难的一点是对提供的补丁进行了[[CRLF到LF的转换(准确地说,git-mailsplit
在这样做),如果没有重新设置基准。 git format-patch
也产生适当的(LF端)音色。
CRLF
并以某种方式修改git am
以防止其转换也无法正常工作。如果删除或删除任何文件,它将失败-git apply
将抱怨预期的/ dev / null(但他得到了/dev/null^M
)。并且如果我将其与git am --ignore-space-change --ignore-whitespace
一起应用,它将将LF结尾直接提交到索引,这也很奇怪。我不知道它是否会保留过度提交svn(通过git svn dcommit
)并检出它,而我不想尝试。当然,仍然有可能尝试破解补丁以仅转换实际差异,但这对于简单的任务来说实在太多了。所以,我想知道,实际上没有确定的方法来产生补丁并将它们应用于同一系统上的同一仓库吗?只是觉得
msysgit
无法应用它自己的补丁感到很奇怪。