私はGCCのgitミラーを使用しようとしています、hereと書かれています。"作業ツリーの履歴から上流のSVN情報を特定できません"
git clone git://gcc.gnu.org/git/gcc.git
追加のgit-svnのもの:
git svn init -Ttrunk --prefix=origin/ svn+ssh://gcc.gnu.org/svn/gcc
そしてgit svn rebase
とgit svn dcommit
など、すべてがうまく働いていた
いくつかの時間前、私はgitリポジトリをクローン化しました。
一部ヶ月後、私は地元のgitのブランチ上のさまざまな開発作業を行ってきた、と私はSVNを上流へより多くの変更をコミットするようになった:Gitのmirorから
更新:
$ git rebase
私はSVNからの絶対的な最新のを持っているが、それは動作しませんを確認します。
$ git svn rebase -v Unable to determine upstream SVN information from working tree history
何とか私はメタデータを壊しました!上記と同様に、間違いなく私はgit svn fetch
をやったと思いますが、それは有害ではありませんか?
$ git branch svntrunk remotes/origin/trunk
$ git checkout svntrunk
$ git svn rebase
Unable to determine upstream SVN information from working tree history
ウェブ検索が分岐履歴が何とかSVNから分岐していることを示唆しているが、私はgit log
をチェックしましたし、すべてのコミットがあります
だから、私は、リモートのgitミラーからの新鮮なブランチを作成してみました対応するgit-svn-id
、それはそれを反証しているようですね。
したがって、私はgit://gcc.gnu.org/git/gcc.gitの新しいクローンを試しました。そのリポジトリgit svn rebase
はうまくいきます。どのように2つのレポが両方とも同じソースからのgit rebase
を持っていて、異なる歴史を持つことができますか?おそらく彼らはできないでしょうし、違いはローカルのメタデータにありますか?
私は作業していたリポジトリをゴミ箱に入れたくないのですが(私は可能ですが)、パッチを別のリポジトリにエクスポートしてコミットすることは、最初はgit-svnを持っている点を打ち負かしてしまいます。それで、どうすれば修理できますか?
+1、非常に良い答え(あなたのブログの投稿から、多分...?)。私はそれが解決された問題に直接適用できるかどうかはわかりませんが(単純な解決策が最も適切かもしれません)、整合性の取れない状態でリポジトリ全体に変更を適用するための適用可能で有用な手順として、私は完全に承認します。 :) – MrGomez
@MrGomezもっと簡単な解決策があることを願っています。 :)他のすべてが失敗する、私はかなり動作すると確信しています。 –
それで、本質的に、私は新鮮なレポから始まり、トピックポイントをグラフトを介して右のポイントで壊れていないgit-svn履歴に挿入し、リベースを使ってグラフトを廃止する。私はスティックの右端を手に入れましたか? – ams