kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

TFS用のSQL Server照合順序の注意点

www.visualstudio.com

www.visualstudio.com

SQL Serverセットアップ時にサーバーの照合順序を決めますが、TFSをインストールする場合、選択できるサーバー照合順序には制限があります。

  • アクセントを区別する(_AS)
  • 大文字小文字を区別してはならない(_CI)
  • バイナリ(BIN)および、バイナリ照合順序(BIN2)を指定してはならない

でも、ここには書かれていないもう一つ制約事項があります。

  • 補助文字(_SC)を使用してはならない。

いわゆるサロゲートペアの文字ですね。これをシステムデータベースの照合順序に指定していると、TFSのセットアップに失敗します(フィードバック済み)。

SQL Server v.Nextでは_VSSという照合順序もついかされるそうですが、こちらもおそらくサポートされないのではないかなと思います。SQL Serverをインストールする場合、気を付けてください。

もしも_SCつきでインストールしてしまった場合、サーバー照合順序の再構築が必要になります。これをやるとセキュリティで登録済みのアカウント、チューニングパラメータとかきれいさっぱり消えます。

サーバーの照合順序の設定または変更

SQL Server 2016ではメディアを使わなくなっただけ便利になりましたが、それでも重要な作業変更なので、気を付けてください。私もWSUSを既にインストールしていたので、ログインユーザーが消えてちょっと焦りました。

番外編として、TFSからVSTSに移行する場合、日本語の照合順序は使用しないでください。移行できません。SQL_Latin1_General_CP1_CI_AS か Latin1_General_CI_ASじゃないといけないようです。もしも将来的にVSTSへの移行とか考えている場合(とはいえ、TFSはオンプレの絶対要件があるから少ないかもしれませんが)、注意してください。

Visual Studio Team Services 2017/3/29の更新

VSTSの3/29に公開されたSprint 115のリリースノートの翻訳を行いました。オリジナルはこちらから読んでください。

www.visualstudio.com

Gitのブランチポリシーに特権ユーザーをバイパスするというのはよくありますが、その時に理由が必要というのはわかりやすくていいですね。

Release Managementの承認者と作業者が分離できるようになるのもいい感じです。今まではセルフ承認みたいなことができましたので、デモ以外では意味がないような感じになっていました。

TFVCからGitのインポートもほしかった。最初Gitが共存できなかったころ作っていたプロジェクトとか移行しようかな…。

ではまた三週間後。

translate to Japanese to VSTS release notes from h …

Visual Studio Team Services 2017/3/8の更新

VSTSのSprint 114が公開されたので、ざっくり翻訳を行いました。オリジナルのリリースノートはこちらから読んでください。

www.visualstudio.com

モバイル向けのワークアイテムのディスカッションとほかの人に割り当てがサポートされたようですね。Gitのコメントポリシーでコメント全部対応しないとPR完了にできない、という機能はいいですね。書籍書いているときにほしかった。

Visual Studio 2017正式リリースと合わせて、Hostedビルドエージェントも対応しているようです。もうたぶん使えるはずです。

ではまた三週間後。

translate to Japanese to VSTS release notes from h …

Team Foundation Server 2017 Update1リリースと注意事項

TFS 2017 Update1

リリースされましたね。今回SQL Server 2016 SP1やWindows Server 2016もサポートされています。ハードウェア要件はこちらから。

www.visualstudio.com

Express Editionもリリースされていますが、前回同様機能差はなく、SQL Serverのライセンスが付属しない、フル機能が入っている(制限は人数のみ)のようです。6人以上使いたい場合はTFS CALになります。

リリースノートの注意事項

www.visualstudio.com

フィードバックしていますが、日本語版の翻訳には既知の問題が漏れていますので、英語版も見てください。

www.visualstudio.com

TFS 2013からのアップグレードを行うと"counter with name TaskReferenceId does not exist"というエラーが出ます。英文のリリースノートに回避するためのSQLが載っています。

そのほかの既知の問題も気を付けてください。

Erastic Search

TFS 2017 RTMからコード検索にErastic Searchを使うようになりました。RTMでは1.7でしたが、RTMでは2.4になっています。私の手元で何台か入れ替えたのですが、いずれもコード検索ができませんでした。対処としてはどちらかでしょうか。

  • アップグレードではなく、一度「TFS2017をアンインストール」してからTFS 2017 Update1をインストール
  • GitHubにある修正用のスクリプトを実行する

前者はデータベースさえあればいつでも戻るので、大丈夫です。後者はここにスクリプトがあります。TFS 2017用とTFS 2017 Update1用でフォルダが分かれているので気を付けてください。

github.com

Re-IndexingRepository.ps1というスクリプトを実行すれば治る…はずです。ちなみに私は全部やりました。

リリース前のスクリプトだとInvoke-Sqlcmdの -inputfile で指定するフルパスの解釈ができなかったので、pull request送って直してもらいました。

www.visualstudio.com

引数がちょっとわかりづらいですが、こうなります。チーム内にTFVC/Git両方ある場合、リポジトリ名はどちらを指定しても変わらないような気がします(一度の実行で全部直りました)が、チームプロジェクトごとにやったほうがいいでしょう。

  • SQL Server名(インスタンス名)
  • TFSのコレクションデータベース名(既定ではTfs_DefaultCollection)
  • TFSの構成データベース名(既定ではTFS_Configuration)
  • Git(Git_Repository)かTFVC(Tfs_Repository)か
  • コレクション名(既定ではDefaultCollection)
  • リポジトリ名(チームプロジェクト名)

これでしばらく待つと、再構築され、復旧するはずです。