svn クライアントとして git-svn を使用しています。時々、次の問題に遭遇します。
ローカルの git ブランチでいくつかのコミット、空のステージ、クリーンな作業コピーから始めます。
Windows のコマンド ラインに「git svn rebase」と入力して、チームの変更を取得し、それらの後にコミットを配置して、線形の履歴を保持します (これは git-svn を使用するために必要です)。
すべてがうまくいき、チームのコンテンツが取得され、その後コミットがリベースされますが...
最終的に作業コピーが変更され、ステージでファイルが変更されます。作業コピーの変更は、ステージでの変更とは正反対です。
私は通常、ステージにあるすべてのものをステージング解除することでこれを回避します。これにより、作業コピーの変更が元に戻りますが、これは問題ありませんが、ここで何が起こっているのかを本当に理解したいと思います.
質問: それはバグですか、それとも git rebase で理解できないものですか?
注:後で「git svn fetch」と「git rebase」を使用しているときに問題が発生しました。
注: 私は大きな svn リポジトリ (10000 以上のファイル、150000 以上のリビジョン) を持つ Windows で git を使用しており、git-extensions も使用しています。編集:私はそれをリポジトリを探索してコミットするだけに使用します。Windowsコマンドラインから他のことをします。
編集:コメントの1つで要求されたように、問題を理解するのに役立つ2つのスクリーンショットを次に示します。1 つ目は作業コピーの内容で、2 つ目はステージの内容です。両方が正反対であることが簡単にわかります。
作業コピー:
ステージ (作業コピーの変更を元に戻す、非常に視覚的: 同じ画像、赤と緑が入れ替わる):
編集:非常に単純なケースで問題を再現しました:私のコミットは1つのファイルのみを変更し、「git svn rebase」中にフェッチされた新しいコミットはほとんどなく、変更されたファイルには影響しませんでした。「gitk --all」で確認しました。git-extensions や "git status" とまったく同じことを言っています。これが gitk の出力です。下から上に見ていきます。
- 最後の 3 行は、リベース時にフェッチされた 3 つのコミットです。それらのどれも私のファイルに触れません。
- 上から 3 行目は、リベース後の私のコミットを示しています。すべて問題ありません。追加すべきものを追加し、削除すべきものを削除します。
- 2 行目はインデックスの内容を示しています。コミットを元に戻す変更が含まれています。
- 最初の行は、作業コピーの内容を示しています。これには、私のコミットと同じ変更が含まれており、IE はインデックスの変更を元に戻します。
編集:.git
問題が発生した「git svn rebase」後の私のディレクトリの内容は次のとおりです。
17/02/2012 04:57 0 ArmuazEm5Z
05/04/2012 02:28 0 BeMzRLwWcu
06/11/2012 14:37 90 COMMIT_EDITMSG
01/11/2012 15:42 628 config
15/02/2012 04:21 73 description
16/02/2012 13:22 0 fuMhUevkYu
05/11/2012 15:53 1 703 279 gitk.cache
05/07/2012 03:49 0 gJfUbdRuG9
06/11/2012 14:42 23 HEAD
11/07/2012 03:14 <DIR> hooks
21/02/2012 03:22 0 II5HPacSJd
06/11/2012 14:42 5 439 960 index
15/10/2012 13:18 <DIR> info
16/02/2012 08:16 0 jerS1GtBYS
17/02/2012 04:57 0 Kg64sq9pzS
15/02/2012 23:36 0 lbe0yALJYy
15/10/2012 13:17 <DIR> logs
19/10/2012 16:58 <DIR> objects
06/11/2012 14:42 41 ORIG_HEAD
25/10/2012 11:02 2 795 packed-refs
05/07/2012 03:49 0 PpxYa5z0Hc
02/11/2012 10:00 <DIR> refs
15/02/2012 23:36 0 sm6ociDGGF
06/11/2012 14:42 <DIR> svn
21/02/2012 03:22 0 vEqtL0Yiqd
05/04/2012 02:28 0 VFwn3laTEV
16/02/2012 13:22 0 XYoiLqY5BM
16/02/2012 08:16 0 z9vL8lRT7t
22 File(s) 7 146 889 bytes
6 Dir(s) 54 105 219 072 bytes free
編集:この問題を追跡することに興味がある場合は、git@vger.kernel.org メーリング リストに「[git-svn] [バグ レポート] git svn rebase 後にインデックスが奇妙な状態になる」という件名でバグを報告しました。