TFSソース管理から特定のファイルを除外する方法


89

複数の構成ファイル(app.DEV.config、app.TEST.configなど)と、正しい構成ファイルをapp.configにコピーするビルド前のイベントがあります。明らかに、構成固有のファイルはソース管理にあります---しかし現在のところApp.Configもそうであり、そうであってはなりません。

その1つのファイルをプロジェクトからではなく、ソース管理から除外するようにマークするにはどうすればよいですか。

VS 2005と2005 Team Explorerを使用しています。



回答:


39

MS Power Toolsにはチェックインポリシー(禁止パターンポリシー)があり、正規表現に対してファイル名をスクリーニングできます。参照:Microsoft Team Foundation Server Power Tools

チェックインポリシーは完全に万能というわけではありませんが、TFSが探しているもののようなユーザー定義のルールを強制するために最も近いものです。

(そして、他の人が言ったように、ファイルまたはフォルダーをクロークすることもできます。つまり、ソースコントロールに残り、チームの他のすべてのユーザーに表示されますが、クロークを解除するまでPCにコピーされません。またはファイルを削除できます。つまり、最新のものになったときに全員のPCから削除されます。ただし、これらのオプションのいずれも、そもそもそのようなファイルがソース管理に追加されないようにするものではありません)


1
あなたが説明しているチームプロジェクト全体の除外機能は、残念ながらTFSには存在しません。(私のものよりも2010のより新しいビルドにある場合を除きます)[ソース管理ファイルの種類]ダイアログは、マージできない、つまり排他的にロックされるファイルの種類を制御します。
Richard Berg

私はVSTS2005 / 2008を職場で使用していますが、これを自宅で書いているので、私の答えは私の記憶が貧弱だったためです-すみません!TFS Power Toolsの「禁止パターン」チェックインポリシーが必要であることを理解しました。これは、不要なファイル名の正規表現とブロックチェックインを使用してファイル名を一致させることができます:msdn.microsoft.com/en-us/teamsystem/bb980963.aspx#checkin
ジェイソン・ウィリアムズ

お疲れ様でした。そのポリシーについては忘れていました。投稿を編集して表示します。
Richard Berg

どうすれば1つのブランチのクロークを解除できますか?誤ってブランチを隠してしまい、クロークを解除できないVS2012
rolivares

95

TFS2012では簡単です。.tfignoreファイルを作成します

http://msdn.microsoft.com/en-us/library/tfs/ms245454%28v=vs.110%29.aspx#tfignore

######################################
# 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

# EDIT https://msdn.microsoft.com/en-us/library/ms245454(v=vs.110).aspx#tfignore
# A filespec is recursive unless prefixed by the \ character.

どのように再帰的な無視パッケージフォルダーを実行しますが、packages / repositories.configを含めますか?
Maslow

@Maslow、わかった場合は、私の回答を自由に編集してください。かなり一般的な設定のように思えるし、私たちは一例でそれを置く必要があります
artfulhacker

プロジェクトコレクションのルートにある.tfignoreファイルは、そのフォルダーがマップ/ダウンロードされていない場合でも、自動的に階層の下に適用されますか?
Maslow

2
これは、ローカルワークスペースでのみサポートされています。 msdn.microsoft.com/library/vstudio/...
相撲

45

ソリューションエクスプローラーでApp.configファイルを選択し、[ファイル]-> [ソース管理]-> [App.configをソース管理から除外]を選択します。


1
縮小したファイルを保存しないために必要なもの。
Valamas 2011

13
このオプションが通常のコンテキストメニューに表示されないのは
不思議です

6
そのオプションはありません。: '-(
Jan Aagaard

2
Visual Studio 2013 Ultimateにもありません:(
Ytrog

4
Visual Studio Premium 2013(バージョン12.0.3023.00 Update 3)に存在します([ファイル]> [ソース管理]> [詳細]> [ソース管理からApp.configを除外])。
MartinBäckström2014年

21

見つけるのが難しいオプションがあります:

1.ソリューションエクスプローラーでファイルを選択します。

2. [ファイル]-> [ソース管理]-> [詳細]に移動します。

除外するパス

そしてここにあります

これが除外です

留意点:ソリューションエクスプローラーでファイルを右クリックすると、「最も重要なオプション」だけが見つかります。


いいえ。フォルダを展開して、除外する各ファイルを選択する必要があります。
Felix Keil、2014年

13

プロジェクトにファイルがあり、TFSでソース管理されていない場合は、SourceControlに移動して、そのファイルを削除し、プロジェクトファイルのチェックアウトを取り消します(プロジェクトからファイルを削除しようとします)上手)。次に、除外するファイルの削除をチェックインします。ソリューションエクスプローラーで、除外するファイルの横にソース管理アイコンがないことを確認します。プロジェクトファイルにはファイルがリストされているはずですが、そのファイルはソース管理下にないはずです。

覚えておいてください。他の人が最新のものになると、プロジェクトで欠落しているファイルが表示されるようになります。


7

TFSを使用すると、フォルダー/ファイルレベルでクローキングできます。何かがクローキングされている場合、TFSはそれを同期しようとしません(svn:ignoreのように)。

ワークスペースをセットアップするときは、TFSに無視させたいものをすべてクロークします。より詳細なハウツーはこちらです。


すべてのワークスペースのフォルダーをクロークする方法があった場合にのみ...セキュリティで同等の設定が表示されません。
felickz 2013年

ファイルレベルでクロークすることはできません。フォルダのみ。
dudeNumber4

@ dudeNumber4最初の回答が書かれた後、TFSの新しいバージョンではこの機能が無効になったと思います。:あなたはこのハックしかし試みることができるsocial.msdn.microsoft.com/Forums/vstudio/en-US/...
joshua.ewer

5

これは私のために働きました:

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

ソース:= "> TFSソース管理から特定のファイルを除外する方法


2

Visual Studio 2013(および2012)

この機能は、ファイルを選択して次の場所に移動すると利用できます。

File > Source Control > Advanced > Exclude ... from Source Control

何が2012年に除外ありません
ExpatEgghead

私も2013年には見ていません
VictorySabre

2

この質問は少し前に尋ねられましたが、私が抱えていたのと同じ種類の問題に関係しています。

問題:

  • コードをチェックインします。
  • 次に、プロジェクトをビルドします。
    • ビルド中は、ファイルを移動するためにビルドイベントに依存しているため、ビルドプロセスを完了するための適切なファイルを配置しています。
  • ビルドイベントがファイルをコピーしようとすると、アクセス拒否エラーが発生します。

理由:

  • Team Foundation Server Visual Studioプラグインは、ファイルをチェックインするときに、ファイルの読み取り専用属性をREADONLY TRUEに変更します。

ビルドイベントの例:

  • 「$(TargetDir)SomeFile.ext」「$(ProjectDir)」をコピーします

上記では、ターゲットビルドパス(bin \ debugまたはbin \ releaseフォルダー)からプロジェクトフォルダーにファイルを移動するだけです。私の状況では、これはプロジェクトにビルドされたファイルをインストーラーに含めることができるようにするためです。インストーラーがプロジェクト出力の一部としてそれらを取得していませんでした。

修正:(私がこれを理解したとき、顔の近くで自分を蹴りつけた)

新しいビルドイベント:

  • attrib -R "$(ProjectDir)SomeFile.ext"
  • 「$(TargetDir)SomeFile.ext」「$(ProjectDir)」をコピーします
  • attrib + R "$(ProjectDir)SomeFile.ext"

私たちは皆、ビルドイベントを楽しんでいますか?上記の2つのことを行うだけで、読み取り専用属性を削除し、ファイルは読み取り専用ではなくなりました。最初に希望していたとおりにファイルをコピーします。次に、読み取り専用属性(オプション)を置き換えて、Visual StudioおよびTeam Foundationsを満足させます。

そしてはい...私はまだこれに直面して自分を蹴っています。


0

同様の問題があります。私のApp.configには、TFSと同期してはならない適切なデータ(ユーザー名など)が含まれています。

ASP.NETおよびAzure App Serviceにパスワードやその他の機密データをデプロイするためのベストプラクティスの記事では、この問題を回避するための適切なアプローチについて説明しています

「appSettings」要素の「file」属性を使用して、ソース管理に追加されていない構成ファイルを参照します


0

TFS2012より古いバージョンがあり、.tfignoreファイルを作成できないか、File > Source Control > Advanced > Exclude …オプションを使用できない場合は、次のことを試してください。

  • Windowsエクスプローラでターゲットファイルのコピーを作成します。
  • チームエクスプローラー/ Visual Studioのターゲットファイルで保留中の変更(ある場合)を元に戻します。
  • Windowsエクスプローラでターゲットファイルを削除します。
  • ターゲットファイルのコピーを削除されたターゲットファイルの場所に移動し、名前を変更して、削除されたターゲットファイルと同じ名前にします。

TFSは、ターゲットファイルの変更を無視するようになりました。ファイルを再度編集する必要がある場合は、Visual Studioを使用しないでください。TFSは、そのファイルを保留中の変更があるファイルのリストに戻します。


0

ソースコントロールエクスプローラーからファイルを選択して右クリックし、そこから[名前の変更]オプションを選択するだけで、ファイル名の最後に ".exclude"を追加できます。

そして、ファイルをチェックインすることを忘れないでください。その後、ファイルがソース管理から除外されていることがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.