0

シナリオ:

コードベースの管理に SVN を使用しています。SVN リポジトリは Linux サーバー上にセットアップされ、開発者は Windows OS で tortoise svn を使用してこのリポジトリを操作します。

ブランチとマージに関してはsvnに恐怖を感じているため、GITに移行する必要があります。私は別の Linux サーバーを提供されました。ここで git リポジトリをセットアップし、開発者が svn から git に移行するようにトレーニングできます。

git-svn の公式ドキュメントと、他のいくつかの Google 検索関連の結果を読みました。私は間違いを犯したと思いますが、よくわかりません:

svn log コマンドを使用して svn ユーザー情報を抽出しました

標準レイアウトがあるため、Linux サーバーに移動し、-s フラグを指定して git svn clone コマンドを使用しました。

Windowsマシンにmsysgitをインストールし、開発者が通常どおりsvnリポジトリに変更をプッシュし続けている間にgitリポジトリをテストできるように、gitリポジトリのクローンを作成することを考えました。人々が git のトレーニングを受けたら、完全に git リポジトリに移行できたはずです。

これが正しい方法かどうかわからないという懸念があります。すべての移行リンク、ドキュメントは *nix システムについて話しているため、これがどのように行われるかはわかりません。正しい手順と、この移行をどのように進めるべきかについて、誰かが入力してください。

4

1 に答える 1

0

私が認識している唯一の問題は、行末の問題です。Git for Windows は通常core.autocrlf、システム構成で設定をオンにしてインストールされます。POSIX システムで実行git svn cloneすると、リポジトリ内のファイルはおそらく Windows の行末 (CR+LF) で終了します (まあ、少なくともそれは私自身の経験でした)。上記の設定がアクティブな (オーバーライドされていない) Windows マシンで、ファイルを変更してこの変更をコミットすると、Git はそのファイルの行末を LF に変換しようとする可能性が高いため、意図したものではない 100% の書き換えが記録されます。

解決策は、おそらく、各開発者のリポジトリでその設定をオーバーライドするか、( を使用してgit filter-branch)履歴を変換して、Git に切り替える前にリポジトリに LF を含めることです。

どちらの場合でも、まず新しいリポジトリを試してみて、何が起こるかを確認してください。

背景の詳細​​については、これを参照してください。

于 2013-01-22T23:19:34.747 に答える