我使用msysgit git在windows上運行中央svn存儲庫。我使用git作爲 我希望它擁有令人敬畏的小本地分支機構,並且可以互相重組。msysgit git-am不能應用它自己的git格式補丁序列
我還需要從中央回購經常更新,所以使用單獨的SVN/Git是不是一種選擇。
問題是 - git svn --help
(手冊頁)說,這是不使用git merge
到主分支(其設置爲從SVN的幹線跟蹤)從地方分支機構是一個好主意,因爲這會毀了黨和git svn dcommit
將不再工作。
我知道這是不完全正確,你可以使用git merge
如果從 分支,它被正確地重建基礎上主之前合併的合併,但我想使它更安全,實際使用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(它應該保持如此),由於錯誤的EOL,補丁明顯失效。將差異轉換爲CRLF並以某種方式破解git am
以防止轉換也不起作用。如果任何文件被刪除或刪除,它將失敗 - git apply
會抱怨預期的/ dev/null(但他得到了/dev/null^M
)。
如果我將它與git am --ignore-space-change --ignore-whitespace
一起使用,它將 直接將LF結尾提交給索引,這也很奇怪。我不知道它是否會保留在svn(通過git svn dcommit
)並檢查出來,我不想嘗試。
當然,它仍然可以嘗試圍繞補丁,只轉換實際的diff黑客攻擊,但這是簡單的任務太多的黑客。
所以,我不知道,真的沒有產生補丁,並將其應用到同一回購在同一系統上建立的方法是什麼?它只是覺得奇怪,msysgit不能應用它自己的補丁。
也有類似的問題,前一段時間,並使用'git am的--keep-cr' IIRC解決它? – eckes