2017-03-22 16 views
1

共有ライブラリ/共通コードとして複数のプロジェクト間で共有する必要があるgitリポジトリがあります。この共通コードを使用するプロジェクトはすべてTFSプロジェクト(TFS2013)です。私はTFSでgit repoをホストすることができますが、gitとTFS reposを重複せずにリンクする方法を理解することはできません。gitリポジトリを複数のTFSプロジェクトにリンクする

私が達成しようとしているアイデアは、1つのgitのレポは、N他のgitリポジトリにサブモジュール可能にgitのサブモジュール、同じです:

- CommonLib/ (git) 
    - src/ 
    - inc/ 
- Project1/ (git) 
    - src/ 
    - inc/ 
    - lib/ 
     -CommonLib (git submodule) 
- Project2/ (git) 
    - src/ 
    - inc/ 
    - lib/ 
     -CommonLib (git submodule) 

しかし、私はプロジェクトがTFSあるときにこれを実行したいと思いますリポジトリ:

- CommonLib/ (git) 
    - src/ 
    - inc/ 
- Project1/ (TFS) 
    - src/ 
    - inc/ 
    - lib/ 
     -CommonLib (?? How to link ??) 
- Project2/ (TFS) 
    - src/ 
    - inc/ 
    - lib/ 
     -CommonLib (?? How to link ??) 

これは可能ですか?

私が思い描いた解決策は、プロジェクトのlib /ディレクトリのそれぞれにCommonLibリポジトリをクローンし、上流のリモートを適切に設定することです。しかし、私はGFSのレポをTFSレポにチェックインしなければなりません。それは私に間違っているようです。

私は、彼らがTFSにチェックインするときに自動的にgitのレポへの変更をチェックインできるようにする、のProject2内CommonLibソース変更を行う開発者をしたいと思います。 gitのサブモジュールをどのように使用するかと同様に、プロジェクトの変更(親)とサブモジュール(子)の両方を、親からの1回のgitコミットでコミットすることができます。

+0

。 – Philippe

答えて

0

あなたのためにこれを行うツールはありません。私はこのアプローチに反対し、その理由を示します。別の.slnファイルを使用して複数のインスタンスを開かない限り

Visual Studioは助けにはなりません、それはコードを手動で触れて操作を行うには開発者次第です。 シーケンスを呼び出すことによって、2つのバージョン管理システムで何らかの操作を同期させる独自のコマンドラインツールを作成することができます。git & tf gitからcommit shaを選んでTFVCコメントに追加することができます。いずれにしても、TFSチェンジセットがどのgit commitを必要とするかは非常に難しいでしょう。

代わりに、すべてのコードを2つのバージョンコントロールシステムのいずれかに移動することをお勧めします。

0

はい、可能です。 TFS IDE(Visual Studioが)うまくGitのサブモジュールを表示することはできませんが、それはnear futureに改善されますので、あなたは、(git bashなど)のgitコマンドラインでTFSのgitのレポのためのサブモジュールを追加することができます。

以下のように(のProject2と同様の)TFS GitのレポProject1のためのサブモジュールを追加するためのコマンド:CommonLibが更新され、あなたがgit submodule update --remoteでProject1の中にサブモジュールを更新することができる場合

git clone http://account:8080/tfs/DefaultCollection/_git/Project1 
cd Project1 
git submodule add http://account:8080/tfs/DefaultCollection/_git/CommonLib 
git push 

サブモジュール内のファイルはローカルリポジトリで表示できます。サブモジュールの最新のコミットIDは、TFSのgitリポジトリでのみ見つけることができます。代わりに、そのような何かを行う2つのプロジェクトで使用される独自のnugetパッケージを構築しようとしているの

+0

Project1のレポがあなたの例の.gitレポであるようです。 – Moop

+0

これは、TFSプロジェクトがgitによってバージョン管理されている状況にも適しています。 –

関連する問題