2

仕事で作りたいプロジェクトがある不必要に複雑ローカル ソース管理に git を使用すると簡単です。私たちは仕事で TFS を使用していますが、プロダクション リリースのためにソースをクライアントの SVN サーバーにプッシュする必要もあります。TFS は正式な記録のソースである必要があります [切り替えを説得力のあるケースにできるまで :-)]。

私は2 番目の部分でgit-svnを使用してきました。基本的には、マイルストーンで git にコミットしてから、svn にプッシュするだけです。

よりアクティブな開発のためにも、TFS の代わりに git を使用することに移行したいと考えていますが、両方のマッピングを同時に設定する方法/方法がわかりません。私が見たgit-tfsと git-svn の例はすべて、リポジトリのクローン作成から始まります。これには、リポジトリが空である必要があります。TFS マッピングを設定するためにクローンを作成する代わりに、追加できる何らかのメタデータはありますか?

マッピングも少し奇妙です (これは CMS サイトであるため、コア ファイルはソース管理に保存せず、カスタマイズのみを保存します)。

  • タグ (SVN でのみ使用)
  • ブランチ (SVN から、使用されません)
  • トランク (SVN から、Web サイトにシンボリック リンク)
  • Webサイト
    • DesktopModules (TFS にマップ)
    • ポータル (TFS でマップ)
    • プロバイダー (TFS でマップ)

git は、ルートにマップされた SVN リポジトリと、さらに奥にマップされた TFS リポジトリを処理できますか?

TFS でマップされたフォルダーを削除してから、git-tfs からそれらを複製することはできますか?

4

2 に答える 2

1

git-svn適切なスタンザを追加して.git/config(作業中のリポジトリを調べてgit-svn、それがどのように見えるかを確認してください)、その後にgit-svn fetchデータを入力することにより、任意のリポジトリに移植できます。git-svnとの両方git-tfsが同一のツリーに対して同一の SHA を生成することはほとんどありません (たとえば、ユーザー名のマッピングや日付などの些細なこと、またはメタデータgit-svnがデフォルトでコミット メッセージに入れられるなどの些細なことのため)、マージは些細なものである必要があります。svn.noMetadataSVN リビジョンを git commit にマップする各コミットの余分な行を無効にするために使用できます。唯一の欠点は、rev_map がその情報の唯一のソースとなり、それが削除されると (または作業コピーを複製すると)git-svn接続が切断されることです。

于 2011-04-04T22:51:58.087 に答える
0

現状ではできないと思います。tfs にコミットすると、git-tfs はコミットを同じツリーと変更されたコメント (git-tfs-id: [http://tfs:8080/tfs]$/Project;C666元のコメントの末尾に何かを追加する) で効果的に新しいコミットに書き換えます。

コメントの変更をgit notesに置き換えることについて、いくつかの考えがありました。しかし、それは現在の計画にもありません。

于 2011-08-10T08:18:59.967 に答える