2017-08-07 11 views
0

私の会社では、長年にわたりクラウドTFSホストを使用しています。ホストはインターネットから消えてしまい、多くのコードとすべての履歴が失われました。 Visual Studio Onlineで新しいソースコード処理をかなり迅速にセットアップする必要があり、やり方についていくつかのヒントが必要です。多くの小規模プロジェクトと単一開発者によるチームサービス

は、現在のソリューションは、私が開始する前に長く設定し、様々な理由のために私は現在、唯一の開発者ですました。これは将来変更される可能性がありますが、ビジュアルスタジオソリューションごとに複数の開発者が存在することはありません。

私は、Visual Studioで多くの小規模顧客、特定のプロジェクト(Windowsアプリケーション、Windowsサービス、WebAPIの、SSRS、SQL、エンティティフレームワーク)で動作します。プロジェクトの平均的なサイズは、コーディングの開始からデプロイメントまでに20時間かかります(さらに大きなプロジェクトがいくつかあります)。新機能やバグ修正は、配備後に追加されることがあります(数年後)。通常は2〜6時間のプロジェクトです。

現在のプロセスは、顧客ごとにTFSのプロジェクトを持っており、それぞれが最も一握りのVisual Studioソリューションで含まれています。ソリューション間に依存関係はなく、共通コードはNuGetで処理されます。

私たちは、クラウド内の約250のプロジェクトを持っていたと私は今のところ唯一のこれらの50を回復したとしても、私はローカルに持っていたものは、我々は遅かれ早かれ同様の数字となってしまいます。合計サイズは30GBでした(多くは、NugetパッケージフォルダのデフォルトチェックでTFSから来ています)。

ほとんどのプロジェクトでは、作業項目、かんばん、レポート作成などのALM機能は必要ありません。開発者だけがVisual Studioをオンラインで使用します。私はブランチ/プルリクエスト/マージプロセスで作業したいと思います。 Git/Mercurialから来て、私はTFSで心地よいと感じたことはありません。

だから私の質問は次のようになります。

  1. プロジェクトを構築するための良い方法は何ですか?良い方法には何のVisual Studioソリューション

  2. あたり(今日のように)各顧客のためにすべて

  3. A VSTS-プロジェクト
  4. A VSTS-プロジェクトの

    • シングルVSTSプロジェクトリポジトリを構造化しますか?顧客ごと
    • 1つのリポジトリのVisual Studioソリューションあたり
    • 1つのリポジトリ
    Visual Studioと90のプロジェクト/リポジトリの何百ものオンラインポータルの仕事はどのよう
  5. すべてのための

    • 1つのリポジトリ%はアクティブではありません。私は通常、Visual Studioのインスタンスを3〜5回実行し、いつでもさまざまなソリューションで実行します。

私は多くの推奨事項を読んだことがありますが、それらはすべて長寿命のプロジェクトおよび/または開発者チームに対処しているようです。

私の主な懸念事項は以下のとおりです。それは新しい顧客またはVisual Studioのソリューションを追加することで、どのくらいの仕事

  1. (毎週起こる)
  2. は、時間をはじめ。外部の開発者が関与することもあります。それは一般的ではありませんが、私はクローン/プル(セキュリティは問題ではない)の多くの時間を費やすことを望んでいません。
  3. 標準。私は、他の開発者のために文書化するのを容易にするために、標準/ベストプラクティスにできるだけ従うようにプロセスを欲しがっています。例えばプロジェクトの名前に情報をエンコードしたり、フォルダー構造を強制したりすることはありません。

答えて

1

私は提案します:

  • は、各顧客からのプロジェクトを作成します。 WebAPI、SSRS、SQLなどの顧客名でプロジェクトを作成することができます。

  • VSTSプロジェクトは特定の顧客に関連しているので、したがって、チームプロジェクトのすべてのリポジトリは顧客に関連する必要があります。リポジトリの構造は、顧客のケース/ソリューションごとに異なるリポジトリにすることができます。GitリポジトリとTFVC

は、VSTS/TFS上でホストされているバージョン管理システムの唯一の2種類があります。 GitとMercurialに精通しているので、プロジェクトにGit VCSを使用することができます。

gitリポジトリVSTSでホストされているgitリポジトリは、github、bitbucketなどの他のリモートリポジトリとして動作します。したがって、ソリューションは保存されませんが、2つのバージョン間のチェックサムはsha-1値(40文字)で保存されます。ほとんどの時間、ローカルリポジトリ(リモートリポジトリとの接続/通信なし)で作業します。あなたがクローン/プル/プッシュする時だけ、ローカルのgitリポジトリはリモートリポジトリと通信します。

+0

お返事ありがとうございます。ちょうど私はあなたを正しく理解しています。顧客あたりVSTSプロジェクトを1つ、次にVSソリューションごとに1つのリポジトリを意味します。 @ starain-MSFTが別の答えで示唆しているように、なぜそれがすべてのプロジェクトの単一のプロジェクトより優れていますか? – adrianm

+0

お客様のプロジェクトには2つの理由があります。** 1。**これらの顧客は相互に関連しておらず、異なる顧客のさまざまな要件と機能を便利に管理できます。 ** 2。**あなたのプロジェクト/ソリューションは本当に大きなサイズのため、配布すると恩恵を受けるでしょう。そして、理由の両方で、両方の方法が機能し、多少個人的に依存しているので、Starainの提案を受け入れることができます。 –

+0

これは私たちがやったことであるので、これを答えにしました。チームプロジェクトには複数のリポジトリを持ついくつかの課題がありますが、これまでのところ管理可能です。 – adrianm

1

プロジェクトの構造:すべてのプロジェクトが単一です。

リポジトリ構造:これらのプロジェクト/ソリューションと仕事VSについてVSソリューションごとに1つのリポジトリ

、あなたはあなたが同じで、同時に複数のソリューションを開くことができません(別のソリューションを開き、ソリューションを閉じることができますVSのインスタンス)、VSでファイルを開いて編集することもできます。コミットとプッシュについては、Gitコマンド(git commit、pushなど)を使用することができます。

開発者が関与し、ソースコードをリモートからクローン/プルする必要がある場合は、VSTSに追加する必要があります。

+0

ありがとうございます。それは私が考えてきた方法ですが、おそらく500のリポジトリを管理する方法がわかりません。何らかの検索可能なメタデータ(例:顧客)をリポジトリに追加することは可能ですか? – adrianm

+0

@adrianmいくつかのカテゴリ(サービス、クライアント、モバイルなど)でそれらをグループ化し、これらのカテゴリごとに多くのチームプロジェクトを作成することができます。その後、リポジトリは簡単に管理できます。 –

+0

私はあなたに従うかわからない。 「グループ化する」とは何を指していますか(リポジトリ、チームプロジェクト)?私はどちらかを分類する方法は見当たりません。また、ソリューションごとにチームプロジェクトをお勧めしますか? – adrianm

関連する問題