6

Git-svn では、大文字と小文字が異なるだけで重複するファイル名が許可され、Subversion リポジトリに追加されました。

Windows では、これは Subversion がファイルをチェックアウトできず、重複していると訴えたことを意味していました。

別の開発者が、大文字と小文字が正しくないバージョンをリポジトリから削除しました。git-svn rebase を実行しようとすると、「HEAD をデタッチできませんでした」というメッセージが表示され、問題のファイル名が追跡されておらず、上書きする必要があるという苦情が表示されます。ファイルを削除すると、git-svn はファイルを更新する必要があると文句を言います。

大文字と小文字を区別するファイルシステムを持つマシンにリポジトリをコピーする唯一の解決策は、リベースを実行してから元に戻すことですか?

git-svn が Windows で実際に動作する準備ができていないことは理解していますが、git-svn が作成したこの混乱から回復したいと考えています。

4

3 に答える 3

7

現在の最良の回答(これが最初に提起されたときにこれが存在したかどうかはわかりません):

git config core.ignorecase true

次に、リベースをやり直します。エラーなしで続行され、ファイル名の大文字と小文字の変更も適切に処理されます。

これは git-svn に固有のものではありません。ストレートな「git rebase」で発生する可能性があります。

それが次の人に役立つことを願っています....

于 2012-09-22T02:24:48.193 に答える
1

大文字と小文字を区別しない Mac ファイルシステムを使用しているときに、ファイル名の大文字と小文字を変更することについて非常に混乱する Git (単独で、git-svn でさえ) で同様の問題に遭遇しました。大文字と小文字を区別しないファイルシステムでリポジトリを修正する解決策は見つかりませんでしたが、代わりに、ファイルに新しい大文字と小文字を区別するボリュームを作成し.dmg、それをマウントし、代わりにそのボリュームで Git を使用しました。

Git の「配管」コマンドの一部が役立つ場合があります。たとえば、既存のファイルを強制的に上書きgit checkout-indexする-fフラグがあります (-aそのコマンドと一緒に使用しないと、何も実行されない可能性があります)。配管コマンドは通常、磁器コマンドよりも強力 (かつ危険) ですが、これを修正するために必要な柔軟性が得られる場合があります。

于 2009-09-08T08:20:05.423 に答える
0

Windows でこの問題を解決するのと同じ方法です。ファイルの 1 つの名前を変更する必要があります。その後、もう 1 つのファイルを復元できます。

于 2009-08-04T04:45:43.103 に答える