TFSソース管理でプロジェクトごとに無視するファイル/フォルダーを設定することは可能ですか?
たとえば、ソース管理にアクセスしたくないアセットフォルダーを持つWebサイトがあります。これらの資産は、別個のシステムによって維持されます。また、数ギガバイトのアセットをソース管理に入れたくありませんが、開発マシンにいくつかのサンプルが必要ですが、どちらもチェックしたくありません。
ソース管理にバインドされている間にこのWebサイトで作業しており、ツリーを更新すると、これらのファイルが自動的に再び追加されます
これが起こらないようにしたいです。
NuGetのドキュメントには、 これを実現する方法に関する指示 が記載されており、VSTS(AzureでホストされたTFS)に対するVisual Studio 2015およびVisual Studio 2017についても順調にフォローしました。すべてが完全に更新されています 2016年11月 2018年8月。
NuGetの指示に従うことをお勧めしますが、私がやったことを要約するだけです。
packages
フォルダーがTFSにコミットされていないことを確認してください。ある場合は、そこから取り出します。.sln
ファイルが存在する同じフォルダーに入ります(これについては、NuGetの指示は完全には明確ではありません)。.nuget
フォルダーを作成します。 Windowsエクスプローラーを使用して.nuget.
という名前を付けると、.nuget
として正常に保存できます(最後のピリオドは自動的に削除されます)が、直接.nuget
という名前を付けようとしてもうまくいかない場合があります(エラーが発生するか、名前が変わる場合がありますWindowsのバージョン)。NuGet.config
ファイルを作成し、次の内容を追加して保存します。NuGet.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
.sln
のフォルダーに戻り、新しいテキストファイルを作成して.tfignore
という名前を付けます(Windowsエクスプローラーを使用している場合は、上記と同じトリックを使用して.tfignore.
という名前を付けます)。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
.tfignore
ファイルと.nuget
フォルダーをすべてのさまざまなソリューションにコピーして貼り付けてコミットしましたが、packages
フォルダーがソース管理リポジトリに侵入しようとしていません!私のものではありませんが、 sirkirbyによるこの.tfignore
テンプレート が便利であることがわかりました。私の答えの例ではNuget packages
フォルダーを取り上げていますが、このテンプレートには他のいくつかの項目が含まれており、これをさらにカスタマイズしたい場合に役立つ追加の例を提供しています。
ローカルワークスペース(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
does Team Foundation Serverのファイル(およびフォルダー)を無視するのは少し面倒です。これを行う方法をいくつか見つけました(TFS /チームエクスプローラー/ Visual Studio 2008を使用)。これらのメソッドは、WebサイトASPプロジェクトタイプでも機能します。
1つの方法は、新規または既存のアイテムをプロジェクトに追加し(たとえば、プロジェクトを右クリック、既存のアイテムを追加、Windowsエクスプローラーからソリューションエクスプローラーにドラッグアンドドロップ)、TFSでファイルまたはフォルダーを処理し、保留を元に戻すアイテムの変更。 TFSは保留中の追加変更があることを示すマークを外し、ファイルはプロジェクト内に静かに置かれ、TFSから除外されます。
別の方法は、ソース管理エクスプローラーの[フォルダーにアイテムを追加]コマンドを使用することです。これにより小さなウィザードが起動し、ステップの1つで除外するアイテムを選択できます(ただし、ウィザードを続行するにはこの方法で少なくとも1つのアイテムをTFSに追加する必要があると思います)。
禁止パターンのチェックインポリシーを追加して(チーム->チームプロジェクト設定->ソース管理...->チェックインポリシー)、チームの他のユーザーが特定のアセットを誤ってチェックインできないようにすることもできます。
TFS 201の場合:
VisualStudio -Team Explorerで開始し、PendingChangesダイアログで、状態[add]の変更を取り消します。これは無視する必要があります。
Visual Studioは、追加を再度検出します。 [オン]をクリックします"Detected:x add(s)"-in Excluded Changes
開かれた「候補の変更を促進」ダイアログで、コンテキストメニューを使用してファイルとフォルダを簡単に除外できます。オプションは次のとおりです。
変更した.tfignore-Fileをチェックインすることを忘れないでください。
VS 2015/2017:
同じ手順:TeamExplorer\Pending Changesの[Excluded Changes]タブで、[Detected:xxx add(s)]をクリックします
[候補の変更をプロモート]ダイアログが開き、エントリで右クリックしてコンテキストメニューを表示できます。タイプミスは修正されました:-)
SVNのようにTFSのファイルを無視する完璧な方法を見つけました。
まず、無視するファイル(たとえば、Web.config)を選択します。
メニュータブに移動して、次を選択します。
ファイルソース管理>詳細>ソース管理からweb.configを除外する
...そしてブーム;ファイルはソース管理から完全に除外されます。
Webサイトプロジェクトを使用していると仮定します。これらはプロジェクトディレクトリを自動的にクロールし、すべてをソース管理に入れます。それらを止める方法はありません。
しかし、絶望しないでください。 Webアプリケーションプロジェクトでは、この奇妙で予想外の(私見:モロニック)動作は見られません。 WAPはVS2005のアドオンであり、VS2008に直接付属しています。
プロジェクトをWAPに変更する代わりに、Assetsフォルダーをソース管理からTFSドキュメントライブラリに移動することを検討できます。これは、プロジェクト自体が直接アセットファイルを使用しない場合にのみ行います。