web-dev-qa-db-ja.com

中央のソースリポジトリに移動しないようにするために、TFSのファイル/ディレクトリを無視する方法は?

TFSソース管理でプロジェクトごとに無視するファイル/フォルダーを設定することは可能ですか?

たとえば、ソース管理にアクセスしたくないアセットフォルダーを持つWebサイトがあります。これらの資産は、別個のシステムによって維持されます。また、数ギガバイトのアセットをソース管理に入れたくありませんが、開発マシンにいくつかのサンプルが必要ですが、どちらもチェックしたくありません。

ソース管理にバインドされている間にこのWebサイトで作業しており、ツリーを更新すると、これらのファイルが自動的に再び追加されます

これが起こらないようにしたいです。

239
Dave

VS2015およびVS2017の場合

TFS(オンプレミス)またはVSO(Visual Studio Online-Azureがホストする製品)で動作します

NuGetのドキュメントには、 これを実現する方法に関する指示 が記載されており、VSTS(AzureでホストされたTFS)に対するVisual Studio 2015およびVisual Studio 2017についても順調にフォローしました。すべてが完全に更新されています 2016年11月 2018年8月。

NuGetの指示に従うことをお勧めしますが、私がやったことを要約するだけです。

  1. packagesフォルダーがTFSにコミットされていないことを確認してください。ある場合は、そこから取り出します。
  2. 以下で作成する他のすべては、特に指定されない限り、.slnファイルが存在する同じフォルダーに入ります(これについては、NuGetの指示は完全には明確ではありません)。
  3. .nugetフォルダーを作成します。 Windowsエクスプローラーを使用して.nuget.という名前を付けると、.nugetとして正常に保存できます(最後のピリオドは自動的に削除されます)が、直接.nugetという名前を付けようとしてもうまくいかない場合があります(エラーが発生するか、名前が変わる場合がありますWindowsのバージョン)。
  4. そのフォルダー内で、NuGet.configファイルを作成し、次の内容を追加して保存します。

NuGet.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <solution>
        <add key="disableSourceControlIntegration" value="true" />
    </solution>
</configuration>
  1. .slnのフォルダーに戻り、新しいテキストファイルを作成して.tfignoreという名前を付けます(Windowsエクスプローラーを使用している場合は、上記と同じトリックを使用して.tfignore.という名前を付けます)
  2. そのファイルに次のコンテンツを入れます。

。tfignore:

# Ignore the NuGet packages folder in the root of the repository.
# If needed, prefix 'packages' with additional folder names if it's 
# not in the same folder as .tfignore.
packages

# include package target files which may be required for msbuild,
# again prefixing the folder name as needed.
!packages/*.targets
  1. これをすべて保存し、TFSにコミットしてから、Visual Studioを閉じて再度開きます。チームエクスプローラーは、パッケージフォルダーを保留中のチェックインとして識別しなくなります。
  2. Windowsエクスプローラーを介して.tfignoreファイルと.nugetフォルダーをすべてのさまざまなソリューションにコピーして貼り付けてコミットしましたが、packagesフォルダーがソース管理リポジトリに侵入しようとしていません!

さらなるカスタマイズ

私のものではありませんが、 sirkirbyによるこの.tfignoreテンプレート が便利であることがわかりました。私の答えの例ではNuget packagesフォルダーを取り上げていますが、このテンプレートには他のいくつかの項目が含まれており、これをさらにカスタマイズしたい場合に役立つ追加の例を提供しています。

75
Jaxidian

ローカルワークスペース(TFS 2012+)を使用している場合、.tfignoreファイルを使用して、ローカルフォルダーとファイルをチェックインから除外できます。

そのファイルをソース管理に追加すると、チームの他のユーザーが同じ除外設定を共有できるようになります。

MSDNの詳細- http://msdn.Microsoft.com/en-us/library/ms245454.aspx#tfignore

怠け者の場合:

ルールを適用するフォルダーに.tfignoreというテキストファイルを配置することにより、無視するファイルの種類を構成できます。 .tfignoreファイルの効果は再帰的です。ただし、サブフォルダーに.tfignoreファイルを作成して、親フォルダーの.tfignoreファイルの効果をオーバーライドできます。

.tfignoreファイルには次の規則が適用されます。

  • #はコメント行を開始します
  • *および?ワイルドカードがサポートされています。
  • Filespecは、\文字を前に付けない限り再帰的です。
  • ! filespecを無効にします(パターンに一致するファイルは無視されません)

サンプルファイル:

# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
# 
# Ignore .txt files in this folder 
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll
167
Richard Banks

does Team Foundation Serverのファイル(およびフォルダー)を無視するのは少し面倒です。これを行う方法をいくつか見つけました(TFS /チームエクスプローラー/ Visual Studio 2008を使用)。これらのメソッドは、WebサイトASPプロジェクトタイプでも機能します。

1つの方法は、新規または既存のアイテムをプロジェクトに追加し(たとえば、プロジェクトを右クリック、既存のアイテムを追加、Windowsエクスプローラーからソリューションエクスプローラーにドラッグアンドドロップ)、TFSでファイルまたはフォルダーを処理し、保留を元に戻すアイテムの変更。 TFSは保留中の追加変更があることを示すマークを外し、ファイルはプロジェクト内に静かに置かれ、TFSから除外されます。

別の方法は、ソース管理エクスプローラーの[フォルダーにアイテムを追加]コマンドを使用することです。これにより小さなウィザードが起動し、ステップの1つで除外するアイテムを選択できます(ただし、ウィザードを続行するにはこの方法で少なくとも1つのアイテムをTFSに追加する必要があると思います)。

禁止パターンのチェックインポリシーを追加して(チーム->チームプロジェクト設定->ソース管理...->チェックインポリシー)、チームの他のユーザーが特定のアセットを誤ってチェックインできないようにすることもできます。

70
Derek Morrison

TFS 201の場合:

VisualStudio -Team Explorerで開始し、PendingChangesダイアログで、状態[add]の変更を取り消します。これは無視する必要があります。

Visual Studioは、追加を再度検出します。 [オン]をクリックします"Detected:x add(s)"-in Excluded Changes

開かれた「候補の変更を促進」ダイアログで、コンテキストメニューを使用してファイルとフォルダを簡単に除外できます。オプションは次のとおりです。

  • このアイテムを無視
  • 拡張子で無視
  • ファイル名で無視
  • Ffolderによる無視(yes ffolder、TFS 2013 Update 4/Visual Studio 2013 Premium Update 4)

変更した.tfignore-Fileをチェックインすることを忘れないでください。

VS 2015/2017

同じ手順:TeamExplorer\Pending Changesの[Excluded Changes]タブで、[Detected:xxx add(s)]をクリックします

The Excluded Changes Tab in TeamExplorer\Pending Changes

[候補の変更をプロモート]ダイアログが開き、エントリで右クリックしてコンテキストメニューを表示できます。タイプミスは修正されました:-)

45
gReX

SVNのようにTFSのファイルを無視する完璧な方法を見つけました。
まず、無視するファイル(たとえば、Web.config)を選択します。
メニュータブに移動して、次を選択します。

ファイルソース管理>詳細>ソース管理からweb.configを除外する

...そしてブーム;ファイルはソース管理から完全に除外されます。

5
Bharat

Webサイトプロジェクトを使用していると仮定します。これらはプロジェクトディレクトリを自動的にクロールし、すべてをソース管理に入れます。それらを止める方法はありません。

しかし、絶望しないでください。 Webアプリケーションプロジェクトでは、この奇妙で予想外の(私見:モロニック)動作は見られません。 WAPはVS2005のアドオンであり、VS2008に直接付属しています。

プロジェクトをWAPに変更する代わりに、Assetsフォルダーをソース管理からTFSドキュメントライブラリに移動することを検討できます。これは、プロジェクト自体が直接アセットファイルを使用しない場合にのみ行います。

4
NotMe