ちぐログ

メモ書きです

TFVC でチェックアウト前のファイルを読み取り専用にする

古い TFS から Azure DevOps (TFVC) に切り替えて気づいたのですが、
チェックアウト前のファイルが、Windowsファイルシステム上で読み取り専用になっていませんでした。
Visual Studio のバージョンも上げたので、そちらが理由かもしれません。

加えて、エクスプローラなどからファイルを開いて、 編集をした場合、自動的にチェックアウト状態になります。

ソースコードについては、マージができるので特に気になりませんが、
マージできないファイルを管理している場合は注意が必要です。
また、TFVC のような集中管理の世界では、チェックアウト状態の管理も重要であり
不用意なチェックアウトをしたくない場合もあります。

エクスプローラなどからファイルを開く際も、読み取り専用になっていれば、 意図しない変更によるトラブルも減らせます。

チェックアウト前のファイルを読み取り専用にする方法

Visual Studio の設定で変更可能です。

ソース管理エクスプローラーからワークスペースの管理
f:id:chiguniiita:20200627120458p:plain

編集ボタン
f:id:chiguniiita:20200627115504p:plain

詳細設定ボタン
f:id:chiguniiita:20200627115711p:plain

場所を「サーバ」に設定してOK
f:id:chiguniiita:20200627115650p:plain

ファイルが多い場合は少し時間がかかりますが、無事読み取り専用になりました。 f:id:chiguniiita:20200627115253p:plain

TFVC は少数派だと思いますが、参考になれば・・・

Azure DevOps カスタムプロセスで追加した項目の取得

Azure DevOps オンライン #2 に参加しました

Stay Home な ゴールデンウィークでしたが、ありがたいことに TFSUG でオンライン勉強会を開催していたので参加させていただきました。

tfsug.connpass.com

内容はこちら kkamegawa.hatenablog.jp

Azure DevOps を実践で使い始めたので、非常に勉強になりました。
ありがとうございます。


カスタム項目が REST API で取得できない?

上記のブログの中には記載されていませんが、当日以下の質問をさせていただきました。

プロセスをカスタマイズして追加した項目について、REST API の作業項目取得で追加項目は含まれますか?
(以前検証したときは取得できない気がしました)


黄色く囲った部分(デフォルトでは存在しない)を REST API でとりたいという話です。 f:id:chiguniiita:20200510151704p:plain

私もさすがにこれはできると思っていましたが、ぱっと試した時には取れなかったので、
特殊な取得方法があるのかと思って質問させていただきました。

勉強会のタイミングでは「取れるはず。取れなければバグ。」と回答頂いたので、再度検証しました。


結論

以下のAPIを使って、追加項目も普通に取得できました。 docs.microsoft.com

ただし、注意が必要なのが 「値が入っているフィールドしか結果に入ってこない」 ということです。
これは既存プロセスの既存項目でも同じでした。


以下はフィールドに値を入れなかった時と入れたときの結果(json)の違いです。
値がない場合は、結果に入ってきません。 f:id:chiguniiita:20200510152519p:plain

以前試した時は、値を入れてなかった気がするので、これが取得できないと思った原因でした。


特に変わったことはしていませんが、REST API で項目取得をするのに使ったコードも載せておきます。 gist.github.com