我一直在使用git-svn
與我公司的svn repo進行溝通,現在沒有任何重大的麻煩。`git svn dcommit`在分支上失敗
如今,「頭痛」雙組分發生了巨大變化:
我一直在努力master/trunk
專門漂亮,並且需要合併最(!但不是全部)的這些變化集到一個新的SVN分支,源自一個預先存在的svn分支。
基本上這樣的:
-----------1--1-----1--------1--1--1--- master/trunk
\
\
2--2--2--2--2 versioned-release
本來應該成爲這樣的:
-----------1--1-----1--------1--1--1--- master/trunk
\
\
2--2--2--2--2 versioned-release
\
\
1--1--1--1--1--1 new-versioned-release
凡是提交不應該在
new-versioned-release
,並x
從各個分支x
想要的提交。
所以我做了以下內容:
git checkout -b versioned-release-svn remotes/versioned-release
git svn branch new-versioned-release -m "Preparing for merge of XXX"
git checkout -b new-versioned-release-svn remotes/new-versioned-release
git cherry-pick ...
爲每1
,解決在路上的任何衝突。
因爲我想確定我是真的要針對在回購正確的分支,然後我就跑git svn dcommit --dry-run
這並不會產生任何錯誤或警告,但他告訴我...
Committing to svn://[email protected]$repo-host/$repo-name/$path/branches/new-versioned-release ...
...接着是幾條diff-tree
行。
所以我試圖忽略--dry-run
和中途的提交結束了......
Item already exists in filesystem: File already exists: filesystem '/data/subvroot/$repo-name/db', transaction '20856-g3m', path '/$path/branches/new-versioned-release/some-directory' at /usr/libexec/git-core/git-svn line 862
...和不分階段的變化一堆。
除了明顯的 - 和「我如何擺脫這種混亂不失一切我做?」 - 我有兩個問題:「跆拳道?!?」:
- 假設我之前是回
git svn dcommit
:如何讓我的本地分支dcommit到達其計劃目的地? - 現在看來很明顯,這不是實現我想要的東西的正確方法......但是應該怎麼做呢?
的一切,我發現了錯誤信息,不知何故類似於我的情況,到目前爲止是this other stack overflow question和建議的解決方案「在某種程度上[...]吹走.git/svn
元數據目錄」不共振相當那和我一起...