Team Foundation バージョン管理のコマンド リファレンス

バージョン管理コマンドを使用すると、Visual Studio でできるほとんどのタスクに加えて。Visual Studio ではできないいくつかのタスクも実行できます。 tf.exe ツールを使用すると、コマンド プロンプトから、またはスクリプト内でバージョン管理コマンドを実行できます。

目的に合ったトピックをクリックしてください

  • コマンドを実行する

    • 開発用コンピューターを設定する

    • アプリを開発する

    • 作業を中断する

    • 作業内容を投稿する

    • ファイルを管理し、問題を解決する

    • リスクを分離する

  • コマンド構文について理解する

  • コマンドが影響を与える項目を指定する

    • itemspec 引数を使用して、影響を与える項目を指定する

    • versionspec 引数を使用して、影響を与える項目のバージョンを指定する

  • オプションを使用してコマンドの機能を変更する

    • /noprompt を使用して、データ入力要求を表示せずに、出力データをコマンド プロンプト ウィンドウにリダイレクトする

    • /login オプションを使用して、コマンドの実行時に資格情報を指定する

    • /lock オプションを使用して、ロックを適用または削除する

    • オプションのショートカットを使用する

  • 終了コードについて理解する

コマンドを実行する

Visual Studio のコマンド プロンプトを起動するには、Windows の [スタート][Microsoft Visual Studio 2012][Visual Studio Tools] の順に選択し、コマンド プロンプト ショートカットのいずれかをクリックします。

ほとんどの場合、バージョン管理コマンドは、ワークスペースでマップされたディレクトリのコンテキストで実行します。 たとえば、$/SiteApp/Main/ は c:\code\SiteApp\Main\ にマップされます。 ワークスペース内のすべての項目の最新バージョンを取得するには

c:\code\SiteApp\Main\SolutionA>tf get

注意

現在のところ、このトピックの一部は再発行されていませんが、トピックの Visual Studio 2010 バージョンをご覧いただけます。

開発用コンピューターを設定し、ワークスペースを管理する

ワークスペースは、チームのコードベースのローカル コピーです。 ワークスペースは、開発用コンピューターのローカル コピーであるため、作業をチェックインする準備が整うまで隔離してコードを開発およびテストすることができます。 ワークスペースを管理するコマンドを次に示します。

参照: 「開発用コンピューターでの Team Foundation バージョン管理のセットアップ」、「ワークスペースの作成と操作

アプリを開発する

チームと共にバージョン管理対象のアプリを開発するには、次のコマンドを使用します。

参照: 「Team Foundation バージョン管理でのアプリケーションの開発

作業を中断する

さまざまな理由で、進行中の作業の一部またはすべてを中止する必要が生じることがあります。 作業を中断して再開し、シェルブセットを管理するには、次のコマンドを使用します。

参照: 作業の中断とシェルブセットの管理.

作業内容を投稿する

チームのコードベースにコードをチェックインする方法を次に示します。

  • Checkin コマンド
    ファイルやフォルダーに対する保留中の変更をサーバーにチェックインします。

参照: 「チームのコードベースへの作業のチェックイン

ファイルを管理し、問題を解決する

リスクを分離する

分岐を使用してリスクを分離するには、次のコマンドを使用します。

参照: Team Foundation バージョン管理での分岐を使用したリスクの分離.

バージョン管理を管理する

バージョン管理システムを管理するには、次のコマンドを使用します。

参照: 「Team Foundation バージョン管理の管理」(Visual Studio 2010)

バージョン管理コマンドのヘルプを取得する

バージョン管理コマンドに関する詳細な情報を取得するには、次のコマンドを使用します。

コマンド構文について理解する

各コマンドの構文は、各参照トピックの上部に記載されています。

必須の引数の省略可能な引数

角かっこで囲まれていない引数は必須です。 [Brackets] は、コマンドの実行に必須ではない省略可能オプションを示します。 ただし、省略可能な引数の中には、オプションを指定しなくても既定値がコマンドに適用されるものがあります。

排他的な引数

オプションがパイプ (|) で区切られている場合、いずれかのオプションを指定できます。

逐語的な引数と置き換え可能な引数

太字の項目は、逐語的に指定するオプションです。 斜体 の項目は、コマンドを実行するために実際の文字で置き換える必要がある引数です。

コマンドのショートカットとエイリアス

コマンドによってはショートカットがサポートされます。 たとえば、delete コマンドは、tf delete または tf del を指定して呼び出すことができます。

たとえば、次のような checkout コマンドがあるとします。

tf checkout [/lock:( none|checkin|checkout)] [/recursive] itemspec [/login: username,[ password]]

この例の引数について考えてみましょう。

  • itemspec: この引数は、チェックアウトする項目を指定する itemspec に置き換える必要があります。

  • /lock:(none|checkin|checkout): /lock オプションの指定は必須ではありません。 指定しない場合、既定で /lock:none が指定されます。 指定する場合、いずれかのロック オプションを指定できます。

  • 次の引数は省略可能であり、指定しない場合、コマンドには何も適用されません。

    • /recursive: フォルダー内の複数の項目を再帰的にチェックアウトする場合、このオプションを逐語的に指定する必要があります。

    • /login:username,password: 別のユーザーとしてコマンドを実行する場合、/login のオプションを逐語的に指定し、username をユーザーの名前に置き換える必要があります。必要に応じて、パスワードを指定できます。

コマンドが影響を与える項目を指定する

itemspecs と versionspecs を使用すると、コマンドが影響を与える項目を指定できます。

itemspec 引数を使用して、影響を与える項目を指定する

コマンドが影響を与える項目を指定するには、itemspec (項目の指定) を使用します。 クライアント コンピューターまたは Team Foundation Server 上の項目を指定できます。 *? などのワイルドカード文字を使用できます。

クライアントの itemspec 引数

クライアントの itemspec 引数は、フォルダー (たとえば、c:\code\SiteApp\Main\SolutionA\)、単一のファイル (たとえば、c:\code\SiteApp\Main\SolutionA\Project1\program.cs)、複数のファイル (たとえば、c:\code\SiteApp\Main\SolutionA\*.cs) など、クライアント コンピューター上の項目のパスを指定します。 \\myshare\code\SiteApp\Main などの UNC パスを指定することもできます。

サーバーの itemspec 引数

サーバーの itemspec 引数は、フォルダー (たとえば、$/SiteApp/Main/SolutionA)、ファイル (たとえば、$/SiteApp/Main/SolutionA/Project1/program.cs)、複数のファイル (たとえば、$/SiteApp/Main/SolutionA/*.cs など)、Team Foundation Server 上の項目のパスを指定します。

クライアント コンピューター上にない項目でコマンドを実行する場合、通常はサーバーの itemspec 引数を使用します。 たとえば、開発用コンピューターで作業しており、自分が作業していないチーム プロジェクト コレクション内の項目に関するリビジョン履歴のデータを取得する必要があるとします。

c:\>tf history /collection:http://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

複数の itemspec 引数

コマンドによっては、複数の itemspec 引数を指定できます。 次に例を示します。

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

program.cs と program2.c をチェックアウトします。

versionspec 引数を使用して、影響を与える項目のバージョンを指定する

コマンドが影響を与える項目のバージョンを指定するには、versionspec (バージョンの指定) を使用します。 versionspec は、次の方法で指定できます。

  • /version オプションを使用します。 たとえば、/version:C44 のように指定します。

  • セミコロンを使用して itemspec に versionspec を付加します。 たとえば、program1.cs;C44 のように指定します。

History コマンドまたは Difference Commandを使用する場合は、バージョンをティルダ (~) で区切ってバージョンの範囲を指定できます。 次に例を示します。

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2012~D4/24/2012

versionspec を指定するには、次の構文を使用します。

種類

構文

説明

[変更セット]

[C]n

変更セット番号に基づいて項目を指定します。 指定された変更セットで範囲内の項目が変更されていない場合、指定した変更セットより前の最新バージョンの項目が取得されます。

ヒント

番号だけを指定する場合、C を省略できます。

c:\code\SiteApp\Main>tf get readme.txt /v:C8

または

c:\code\SiteApp\Main>tf get readme.txt /v:8

または

c:\code\SiteApp\Main>tf get readme.txt;8

readme.txt が変更セット 8 で変更された場合は、そのバージョンのファイルが取得されます。 それ以外の場合は、バージョン 8 より前の最新バージョンの readme.txt が取得されます。

[ラベル]

Llabel

label が適用された項目を指定します。

c:\code\SiteApp\Main>tf get readme.txt;LJulyHotFix

JulyHotFix というラベルが付いた readme.txt のバージョンが取得されます。

c:\code\SiteApp\Main>tf get /version:LLastKnownGood

ワークスペース内のラベルが付いたすべての項目のうち、LastKnownGood というラベルが付いた変更セットが作成された (たとえば、自動ビルド プロセスの一部として) ときに存在していたバージョンが取得されます (ラベルが付いていない項目は削除されます)。

日付と時刻

Dyyyy-mm-ddTxx:xx

または

Dmm/dd/yyyy

または

.NET Framework がサポートする任意の形式。

または

ローカル コンピューターでサポートされる任意の日付形式です。

指定された日時に作成された変更セットが指定されます。

c:\code\SiteApp\Main>tf get /version:D2004-03-22

ワークスペースが更新され、2004 年 3 月 22 日の 00:00 (深夜) に存在していたコードベースに合わせられます。

c:\code\SiteApp\Main>tf get /version:D2004-03-22T09:00

ワークスペースが更新され、2004 年 3 月 22 日の 09:00 (午前 9 時) に存在していたコードベースに合わせられます。

.NET Framework でサポートされる日時形式の詳細については、「DateTime」および「標準の日付と時刻の書式指定文字列」を参照してください。

ワークスペース (現在)

W

ワークスペース内のバージョンが指定されます。

ワークスペース (指定)

Wworkspacename; workspaceowner

指定されたワークスペース内のバージョンが指定されます。

例: WResolveRIConflicts;PeterW

ヒント

T

最新のバージョンが指定されます。

オプションを使用してコマンドの機能を変更する

コマンドの機能を変更できる共通オプションもあります。

/noprompt を使用して、データ入力要求を表示せずに、出力データをコマンド プロンプト ウィンドウにリダイレクトする

データ入力要求を表示せずに、出力データをコマンド プロンプト ウィンドウにリダイレクトするには、/noprompt を使用します。 このオプションは、コマンドがユーザーの操作なしで続行され、解析やキャプチャなどの操作の実行にスクリプトがデータを使用できるため、スクリプトでバージョン管理コマンドを使用する必要がある場合に役立ちます。

このオプションを使用すると、次のようになります。

  • すべての入力要求が表示されなくなります。

    • コマンド プロンプト ウィンドウに確認を求めるメッセージが表示されません。 たとえば、このオプションを指定して Undo コマンド を使用すると、変更を元に戻して続行するかどうかを確認するメッセージが表示されません。

    • ウィンドウとダイアログ ボックスが表示されません。 たとえば、Checkin コマンドでこのオプションを使用したとします。 オプションの確認 (どの項目をチェックインするかや、どの作業項目を関連付けるか) を求める [チェックイン] ダイアログ ボックスを表示する代わりに、確認なしでチェックインが続行されます。

  • 出力データをコマンド プロンプトにリダイレクトします。 たとえば、History コマンドでこのオプションを使用したとします。 データは、[履歴] ウィンドウではなくコマンド プロンプト ウィンドウに表示されます。

/login オプションを使用して、コマンドの実行時に資格情報を指定する

コマンドを実行する Team Foundation Server ユーザー アカウントを指定するには、/login オプションを使用します。 このオプションは、他のチーム メンバーのコンピューターで作業する場合に役立ちます。

たとえば、Julia が Peter と彼のコンピューターで作業しているとします。 Julia は、Lock コマンドを使用して、自分が以前ロックしたファイルのロックを解除します。

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI,JuliaPassword

コマンド プロンプトに自分のパスワードが表示されないようにする場合、パスワードなしでコマンドを入力できます。

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:JuliaI

このコマンドを入力すると、入力がマスクされるダイアログ ボックスにパスワードを入力するよう求められます。

/lock オプションを使用して、ロックを適用または削除する

重要

ベスト プラクティスとして、/lock オプションは慎重に使用し、項目をロックする理由とロックを解放する時期を他のチーム メンバーに伝えてください。

AddEdit など、別のコマンドの実行と同時にロックを適用または削除するには、/lock オプションを使用します。

/lock:(none|checkin|checkout)
  • None: 項目にロックは適用されません。 既にロックが適用されている場合は、解除されます。

  • Checkin または Checkout: ロックを適用します。 「ロックの種類について」を参照してください。

注意

場合によっては、ロック操作に失敗することがあります。

  • 他のユーザーが、指定されたどの項目をロックしても、ロック操作は失敗します。

  • 項目に対する保留中の変更が既にある場合は、システムによりこのスイッチが無視されます。この場合、Lock Commandを使用して項目のロックを変更する必要があります。

オプションのショートカットを使用する

次のオプションは、省略形を使用できます。

オプション

オプションのエイリアス

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

終了コードについて理解する

バージョン管理コマンドは、次の終了コードを返します。

終了コード

定義

0

成功。

1

部分的な成功。少なくとも一部、場合によってはすべてが成功しなかったことを意味します。

2

認識されないコマンド。

100

完全な失敗。

次に例を示します。

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

チェックアウトしようとしたファイルの 1 つがサーバーに存在しない場合、このコマンドは部分的な成功を示す 1 を返します。