git-tf を使用して TFS プロジェクトにプッシュしています。1 つまたは複数のコミットを TFS にチェックインしようとすると、次のようなメッセージが表示されることがあります。
TFS に接続しています...
$/MyProject にチェックインしています: 0%
git-tf: $/MyProject をロックできませんでした
これは何を意味するのでしょうか?ロックできない原因は何ですか? どうすればこれを修正できますか?
なぜそれが起こるのか
標準的な TFS の使用法では、一度に 1 つのコミットのみをチェックインします。しかし、Git を使用すると、一連のコミットを一度にプッシュできます。
そのため、git-tf は一連のコミットをアトミックに保つよう努めています。チェックイン中に誰かがチェックインすると、履歴が混乱する可能性があります。正しくマージされません。
これを防ぐために、git-tfはチェックイン中にソース ツリー全体を一時的にロックします。ただし、他の誰かがソース ツリーの一部を既にロックしている場合は、これを行うことはできません。
修正しない方法
--no-lock 引数がいくつかの場所で推奨されていることがわかります。
git tf checkin --no-lock
これは良い解決策ではありません。 潜在的なスクランブル履歴の問題を解決するのではなく、無視します。
修正方法