Category Archives: Memo

Memo: Git switch / restore

Git Version 2.23.0よりswitchコマンドとrestoreコマンドが追加されました。両コマンドはこれまでcheckoutコマンドが担ってきた機能を整理し、コマンドとして理解しやすくする目的で追加されています。

switch

switchはブランチの切り替えと新規作成の機能を担います。今までのbranchコマンドとcheckout -bを置き換えます(それぞれのコマンドは今でも有効)。

https://git-scm.com/docs/git-switch/2.23.0

masterブランチへの切り替え

$ git switch master

ブランチの切り替えで、ローカルで変更したファイルに問題が起きた場合には次のようにエラーになります。

$ git switch mytopic
error: You have local changes to 'frotz'; not switching branches.

この場合には、-mオプションで3者間マージにする事ができます。

$ git switch -m mytopic
Auto-merging frotz

-cオプションを使用することで新しいブランチを作成できます(-c--createの短縮形です)。

$ git switch -c good-surprises

任意のコミットから新しいブランチを成長させることができます。たとえば、「HEAD〜3」に切り替えて、ブランチ「fixup」を作成します。

$ git switch -c fixup HEAD~3
Switched to a new branch 'fixup'

restore

復元ソースからの内容を使用して、作業ツリーの指定されたパスを復元します。パスが追跡されているが、復元ソースに存在しない場合は、ソースに一致するように削除されます。

https://git-scm.com/docs/git-restore/2.23.0

インデックス内のバージョンと一致するようにすべてのCソースファイルを復元する場合、次のようにできます。

$ git restore '*.c'

現在のディレクトリ内のすべてのファイルをインデックスの内容で復元するには

$ git restore .

インデックスのファイルを復元して、HEADのバージョンと一致させる

$ git restore --staged hello.c

または、インデックスと作業ツリーの両方を復元できます

$ git restore --source=HEAD --staged --worktree hello.c

感想

どこまでわかりやすくなったのかは疑問だが、今までよりは良いと思う。

32bitのCOMを64bit環境から使うためのDLLサロゲートの設定

How to use 32-bit COMponents of Intelligent Converters in 64-bit environment

情報源: How to use 32bit COMponents in 64bit environment

古の呪文。

  1. 目的のCOMをHKey_Classes_Root\Wow6432Node\CLSID[GUID]から見つける
  2. 見つかったら、新しいREG_SZ(文字列)値を追加します。名前はAppIDでなければならず、データは検索したCOMオブジェクトGUIDと同じでなければなりません
  3. HKey_Classes_Root\Wow6432Node\AppID\の下に新しいキーを追加します。新しいキーは、COMオブジェクトのGUIDと同じ名前で呼び出す必要があります。
  4. 追加した新しいキーの下に、新しいREG_SZ(文字列)値を追加し、DllSurrogateと呼びます。値を空のままにします。
  5. HKey_Local_Machine\Software\Classes\AppID\の下に新しいキーを作成します。この場合も、新しいキーはCOMオブジェクトのGUIDと同じ名前で呼び出す必要があります。このキーの下に値を追加する必要はありません。

このレジストリ設定だけでCOM(COM+)のサービスがよろしくやってくれる。

 .NET Core 3.0 Preview 7 

Announcing .NET Core 3.0 Preview 7 | .NET Blog

本PreviewもGo Liveとなります。

Try out Nullable Reference Types 

Try out Nullable Reference Types With the release of .NET Core 3.0 Preview 7, C# 8.0 is considered “feature complete”. That means that the biggest feature of them all, Nullable Reference Types, is also locked down behavior-wise for the .NET Core release.

情報源: Try out Nullable Reference Types | .NET Blog

.NET Core 3.0 Preview 7からC# 8.0でNULL許容参照型がサポートされるようです。

また、今後1年掛けて(つまり.NET 5)CoreFxのライブラリにたいして、#nullableのアノテーションを付けていく、つまりライブラリ内はNULLがデフォルトで不可となるようにしていくようです。つまりボクらのコードも今後#nullable化していく必要があるって言うことです。とりあえず「■━⊂( ・∀・) 彡 ガッ☆`Д´)ノ」

An In Depth Tutorial on Linux Development on Windows with WSL and Visual Studio Code 

Memo.

In an earlier blog post, Take your Linux development experience in Windows to the next level with the Windows Subsystem for Linux (WSL) and Visual Studio Code Remote, we introduced an overview of the VS Code Remote – WSL extension, which simplifies Linux development on Windows Subsystem on Linux (WSL).

情報源: An In Depth Tutorial on Linux Development on Windows with WSL and Visual Studio Code | Windows Command Line Tools For Developers

Microsoftがセキュリティ的な視点からRustを推しているらしい

A proactive approach to more secure code – Microsoft Security Response Center

MicrosoftがSDL(Security Development Lifecycle)を開発し、そのメソッドを推し進めてみたものの、C/C++のバグの出現率に実質変化が無いので、Rustに注目しているという記事で、正直自社内でこれからSDLをちゃんとやっていきましょうねと言っているところだったので、ちょっと愕然としている。

結局、自分で自分の足を撃てるような言語を使ってはいけない。という結論にMSがいたったというのには、いろいろと考えさせられる。

SDL自体は素晴らしいので推し進めるべきなのだが、さて、どうしたものか。

あと、Visual StudioでのRust開発にワンチャン出てきた。

DragonFruit and System.CommandLine is a new way to think about .NET Console apps – Scott Hanselman

情報源: DragonFruit and System.CommandLine is a new way to think about .NET Console apps – Scott Hanselman

コマンドラインオプションパーサーに関する興味深い試み。ユーザーコードとしてはパーサーを書かない!Main引数が退屈なstring args[]じゃない!といったところが特徴的です。しかし、コードネームにしてもドラゴンフルーツとは。

The next version of Microsoft Edge: Enterprise evaluation and roadmap 

This week at the Microsoft Inspire 2019 conference, we are sharing an update on capabilities that we are investing in to make the next version of Microsoft Edge the best browser for enterprises and business customers of all sizes. The Dev Channel now has enterprise features enabled by default and is ready for evaluation and […]

情報源: The next version of Microsoft Edge: Enterprise evaluation and roadmap – Microsoft Edge Blog

SilverlightもActive Xも死なない。