2

現在、SVN リポジトリを TFS (具体的には visualstudio.com) に移行しようとしています。この投稿 で詳しく説明されているように、周りを見回したところ、最も安価で簡単なオプションは GIT を使用することであることがわかりました。

プロセスは順調に進んでおり、GIT SVN を使用して GIT リポジトリをローカルに構築し、変更セットの半分以上を TFS にコミットすることができましたが、次のエラーが表示されて停止しました。

git-tf: アイテム 'solution/schema objects/programmability/stored procedure/dbo.product_recommendation_insert.proc.sql' がコミット 9fbd60d に大文字と小文字が異なる複数回存在します。TFS は、同じパス内でケースが異なる同じアイテムを持つことをサポートしていません。

これは理想的ではありませんが、このファイルのコミット履歴を保持する必要はありません。スキップしても問題ありません。

だから私は解決策を思いつきました(より良いオプションがある場合は次のビットを無視します)、それはGITフィルターブランチを使用して履歴からそれを削除することでした. 次のコマンドを実行しました。

git filter-branch --tree-filter 'rm -f ''solution\Schema Objects\Programmability\Stored Procedures\dbo.Product_recommendation_insert.proc.sql''' HEAD

これは問題なく実行されましたが、TFS へのコミットを完了するために何をする必要があるかわかりません。チェックインを再実行すると、次のエラーが表示されます

git-tf: 最新の変更 (commit 968e8a0) が取得されましたが、まだ master にマージ/リベースされていません。最新の変更をマスターにマージ/リベースしてください

私の質問は次のとおりです。フィルターブランチを使用して正しいことをしていますか? もしそうなら、マスターに「マージ/リベース」するために何をする必要がありますか?

4

1 に答える 1

1

わずかに異なるfilter-branchコマンド (ここで言及されているもの) のように見えますが、同じ問題は発生しません。

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ''solution\Schema Objects\Programmability\Stored Procedures\dbo.Product_recommendation_insert.proc.sql''' --prune-empty --tag-name-filter cat -- --all

于 2014-03-23T09:38:26.947 に答える