4

https://stackoverflow.com/a/13710811/260865を使用して、1 つの git リポジトリにブランチを持つ tfs リポジトリを取得しましたが、いくつかのブランチで問題なく動作します。しかし、次の理由により、すべてのブランチを初期化できませんでした。
"C:\tmp\Main>git tfs branch --init --authors=C:\tmp\authors-file.txt $/someproject/Branches/7.2.0 The name of the local branch will be : Branches/7.2.0 error: The root changeset 26907 have not be found in the Git repository. The branch containing the changeset should not have been created. Please do it before retrying!!"

また

C:\tmp\Main>git tfs branch --init --authors=C:\tmp\authors-file.txt $/someproject/Releases/7.0.0.1 The name of the local branch will be : Releases/7.0.0.1 An unexpected error occured when trying to find the root changeset. Failed to find root changeset for $/someproject/Releases/7.0.0.1 branch in $/someproject/Main branch(名前が変更されたブランチの問題: https://github.com/git-tfs/git-tfs/pull/299 )

TFS によると、7.0.0.1 は Main の子ブランチです。

環境: git-tfs バージョン 0.17.1.0 (TFS クライアント ライブラリ 11.0.0.0 (MS)) (32 ビット) C:\tools\gittfs\git-tfs.exe

誰かがそれに対する解決策を持っていますか?

4

3 に答える 3

2

この問題は、ブランチの名前が変更されたために発生します。ここには問題がありますが、まだ解決されていません。

init-branch は TFS ブランチの名前変更を処理しません

トランクから TFS にブランチを作成し、ブランチの名前を変更した場合、名前を変更したブランチで init-branch を実行しようとすると、正しい変更セットが見つからず、オリジナルが Git リポジトリに存在しないと不平を言う

「TFS 2010 の舞台裏では、名前の変更は実際にはブランチと削除のプロセスです。これは、新しいブランチになるだけでなく、古い名前のブランチも削除されることを意味します。親ブランチが初期化されていない場合、git-tfs はブランチを初期化できないため、git-tfs がこのケースを処理できないのはそのためです。前:(これは、マージチェンジセットをより適切に処理し、ルートチェンジセットが見つからない場合(#363がマージされた後)に親ブランチを自動的に初期化できるようにするために計画したことの2番目のステップです。

しかし、大きなリファクタリングが必要です (多くのメソッドをあるクラスから別のクラスに移動する必要があります)...

于 2013-08-07T17:55:22.683 に答える
1

ブランチの名前変更をサポートするために行われた開発は、マスターにマージされました (ただし、まだリリースされていません。0.21 になるはずの次のリリースで行われます)。

名前の変更のほとんどのケースを解決するはずです(ただし、Tfsでは確信が持てません:( )。うまくいかないケースを自由にテストして報告してください...

于 2014-10-27T09:08:32.217 に答える