kiyasuの日記

ハッピーうれピーよろしく哀愁

2つのブランチで並行して作業する

リモートのmaster最新を現在のブランチに取り込む

branchAにいるとして、

まずmaster最新の状態をフェッチする。

git fetch origin master

差分確認してみる

git diff branchA origin/master --name-only

ファイル検索して

git ls-files *test.cs

ファイル指定のdiffは場合はこう

git diff branchA origin/master -- dir/test.cs # --以降はファイル名

マージする

git merge origin/master

コンフリクトが起こったのでcheckout。origin/master優先

git checkout --theirs dir/test.cs

その後はaddしてcommitすれば解決

調子に乗ってmaster以外のremoteブランチもマージする

まず該当のリモートブランチを見つける

git branch -a | grep kiyasu

remotes/origin/dev/kiyasu というのが見つかったのでこれをFetch

git fetch origin dev/kiyasu # originというremote branchのdev/kiyasuをfetch

git ls-files test.js # 変更のあったファイルを検索

git diff branchA origin/dev/kiyasu -- dir/js/test.js # diff確認

git merge origin/dev/kiyasu # 問題なさそうなのでマージ

また一つ賢くなってしまった


チェリーピック

ブランチAのcommit-1fで行われた変更のみをブランチBに取り込みたい。こんな時は、ブランチBで

git cherry-pick (commit-1のhash)

とやればよい。これ面白いから好きだな。

自分じゃないbranchのコミットをremoteへpush

Unityの場合、アセットが多かったりしたら切り替えの際にアセット読み込みに時間がかかる。なので切り替えもあまりやりたくない。そのときは

git push origin ブランチ名

とすればよい。コロン使って何かする必要があるかも、と思っていたが一度--set-upstreamとかしておけばこれでいいようだ

マージ後に一度ちゃんと更新されてるか確認しておこう

git diff HEAD~ HEAD "ファイル名"

これで指定のファイルの直前のコミットと現在のコミットを比較できる

WindowsでUnityの作業するときの文字コードと改行コードの設定

Editorconfigを設定する

UnityのC#新規作成で生成されるスクリプトはascii文字ばかりなのでその時点では文字コードは確定しておらず、そのあと編集するエディタで日本語コメントなどを書き込むと、そのエディタの設定でマルチバイト含む全体の文字コードが決まる。なのでUnityではなく使用するエディタの設定を行う。

EditorConfigでやれば、フォルダ階層の上のほうに置けばその下はすべてEditorConfigの影響下になるらしいので便利そうだ。

How to set standard encoding in Visual Studio - Stack Overflow

どんなエディタでもEditorConfigを使ってコードの統一性を高める - Qiita

VisualStudio2022だとプラグイン不要で最初からサポートされているようだ。イチから書くのではなく、Visual Studioから書き出して、それを編集する。

書き出した.editorconfigファイルを開き、次の記述をすればOK

charset = utf-8-bom
end_of_line = lf

改行コード

UnityでC#スクリプトを作るとCRLFで作られる。これはどうしよう。
とりあえずgitの設定でなんとかしてみよう。

git config --global core.autocrlf input

これでcrlfはコミット時に自動的にlfに変換される。ただし、

この変換は不可逆のためバイナリファイルなどでは致命的です。

という側面があるらしい。自分はまだ当たったことないが…

なので

git config --global core.safecrlf true

としておこう。これだとcrlfが入っているソースコードをaddしようとすると

fatal: CRLF would be replaced by LF in Assets/EditorTest/test2.cs

と怒ってくれる。VSで修正しよう。

VSの「名前を付けて保存」にショートカットを指定する

ちょっとしたことだが二手くらい省略できる。

参考

Pro Git の core.autocrlf=input についての説明が間違っている件 - Qiita

上の記事で「checkin」とあって、どういう意味だろうと思ったが多分commitしてpushする、更新分をチェックインさせる、みたいなイメージでよさそう。

Git にコマンドラインでチェックインする | Do Design Space

改行コードの自動変換 core.autocrlf core.safecrlf - [Git/サーバー] ぺんたん info

Line Endings Unifier

Line Endings Unifier - Visual Studio Marketplace

これを使えばVS上で改行コードをいい感じに管理できるようだ。だがVisual Studio2022にはまだ対応しておらず。待ってみます。

URPでARFoundation

事象

UnityのUniversal Render Pipelineを使ってAR Foundationのアプリをビルドしてみたんですが、背景真っ黒だったりキューブの残像が残ったりでおかしい。

Configuring the AR Camera background using a Scriptable Render Pipeline | AR Foundation | 4.2.3

これの通りにやってるのに。

環境

  • Unity 2021.3.4f1
  • ARFoundation 4.2.3
  • URP 12.1.7
    • URPはプロジェクト作成時に3D(URP)を選択してます
  • Android

一応環境を書きましたが多分関係ないです。

解決方法

Quality Settingsを設定しましょう。

使いたいRender Pipeline Assetを適用されるQuality Settings(上の図ではBalanced)のRendering/Render Pipeline Assetに設定しましょう。

上のリンクの通りにやって新規にPipeline Asset作っても自動的にここに設定されなかったり、テンプレートからプロジェクト作るとQuality Levelごとにpipelineが分かれてたりして、見落としやすいところだと思います。

Cmderメモ

cmderというコンソールエミュレーターがかっこいいので使っています。ただ、いまいち使いこなせてない感じなのでメモ取っておこう。

cmder.net

配置場所

Program Files以下に置くと起動時に

Failed to copy vendor/ConEmu.xml.default file to vendor/conemu-maximus5/ConEmu.xml! Access Denied.

と怒られました。C:\Users(ユーザー名) 以下に適当なフォルダ作ってそこに展開するのがいいみたいです。

Failed to copy ConEmu.xml.default file at launch · Issue #2092 · cmderdev/cmder · GitHub

起動ショートカット

これは別にCmderに限った話ではないが。

WIndows左下の「ここに入力して検索」で検索(コルタナ検索というらしい)して出てくるアプリと出てこないアプリがある。これはシステム環境変数にパスを追加するといいみたいです。とりあえずPathに追加したら検索に引っかかるようになりました。

エクスプローラーの任意の場所を開く

エクスプローラーのフォルダパスのところにcmdと書いたらコマンドプロンプトが開く、みたいにcmderもできないか。

これはCmder Hereという機能でサポートされてるみたいです。

Cmderをエクスプローラの右クリックメニューから開く『Cmder Here』 :: コマンドプロンプト | Refills

新規に開いたときの場所(スタートアップディレクトリ)を指定する

これは調べてみたけど、使わんかもしれんな。

cmder上部のバーで右クリックし、Settingsを選択。

Startup/Tasksを開いて、タスクを選び、下の「Startup dir...」をクリックし、ディレクトリを選択してSave SettingsすればOKです。

Ctrl + tで表示されるメニューには異なる表示が出てますが、ここは無視されて必ず上記で指定したスタートアップディレクトリでcmderが起動します。それはそれでどうなんだって感じもするが…

windows 10 - How to change default path in cmder - Super User

Office 365をインストールしたがExcelがインストールされていない

Office 365あらためMicrosoft 365を使ってるわけですが、

Office 365 と Microsoft 365 と Windows 365 の違いは?マイクロソフトの365製品の概要を解説 | システム運用ならアールワークスへ

OfficeSetup.exeを使ってインストールしたのにExcelのアプリが入ってない、ということになりました。

状況としては

  • Officeアプリは入っていて、そこからOneDrive上のエクセルファイルは開くことができる。
  • ローカルにエクセルファイルを保存すると開けない
  • エクスプローラー上では.xlsxのファイルがエクセルに関連付けられていない。「プログラムから選択」にも出てこない
  • そもそもWindowsにエクセルのアプリが入っていない(入っていてほしい)

という感じでした。

結論

自分の場合、Excelより先にOneNoteに用事があったので先にOneNoteをインストールしました。

Microsoft OneNote デジタル ノート アプリ | Microsoft 365

OneNote のダウンロード

このときにOfficeSetup.exeをダウンロードして、OneNoteと一緒にOfficeアプリがインストールされました。このOfficeSetup.exeが罠だった。ここで冒頭の状況になっていることに気づき、excelを入れる方法はないかといろいろ探し、Officeアプリ経由でそれらしいリンクを踏んだものの、落ちてくるのは同名でサイズ名も同じOfficeSetup.exe。ダウンロードフォルダにはOfficeSetup.exe(1). OfficeSetup.exe(2)と増えていく。ところがこれは中身が違うらしい。一度再インストールを試みたものの、中身が違うと思わなかったので最初のOfficeSetup.exeを使って再インストールし、解決しない!と右往左往していました。


改めて、Excelを入れる方法を紹介します。

まず、Officeアプリを起動します。

右上の自分のイニシャルをクリックして、出てきたメニューから「マイ アカウント」を選択。画面に映ってる「Officeのインストール」でも多分いいんですけど、なぜかこのボタンが出たりでなかったりするので、より確実そうなほうを紹介します。

「マイ アカウント」から飛んだ先の「Officeのインストール」をクリックしましょう。するとOfficeSetup.exeがダウンロードされます。このOfficeSetup.exeを使えば大丈夫なはずです。

Gitの環境整理(Windows版)

何か問題が起こったときに同じアプリが違うパスに入ってたりすると無駄に混乱するので整理を心がける。自分の場合gitとかpythonとかで起こりがち。

なのでパッと確認できるようにしておこう。

gitを更新

まずは今のバージョンの確認

λ git version
git version 2.29.1.windows.1

最新版を確認

Git for Windows

最新版は2.36.1のようだ。以下のコマンドで更新。

λ git update-git-for-windows

参考 : 【Git】インストール済みのGitをアップデートする【Windows環境】 | かずさプログラマーの雑記帳

PCを再起動したら2.36.1になった。

インストール済みのgit、使っているgit

インストールされているgitを確認

λ where git
C:\Program Files\Git\cmd\git.exe
C:\Program Files\Git\mingw64\bin\git.exe

gitコマンドで実際に使われているのは一番上(多分)

cmderからだとwhichコマンドでも良い。

λ which git
/cmd/git

この/cmd/gitってなんだろう、と思ったけどls -lで詳細調べるとどうやらC:\Program Files\Git\cmd\git.exe のことを指してるっぽい。

環境変数から確認

setコマンドに文字列を引数で与えると環境変数を検索してくれる。

λ set git
git_executable=C:\Program Files\Git\cmd\git.exe
GIT_EXEC_PATH=C:\Program Files\Git\mingw64\libexec\git-core
GIT_INSTALL_ROOT=C:\Program Files\Git
GIT_LFS_PATH=C:\Program Files\Git LFS
git_locale="C:\Program Files\Git\usr\bin\locale.exe"
GIT_VERSION_USER=2.36.1.windows.1
GIT_VERSION_VENDORED=2.29.1.windows.1

git_executableはgitコマンドで呼ばれるパスで、GIT_EXEC_PATHはサブコマンドで呼ばれるバイナリのパスのようだ。

しかしいっぱいパスが出てきたが、これいつ入ったんだろう…。

実はこの作業の直後に新しいパソコンに移行して、新規にgit for windows入れたけど、環境変数にgitなにがしは入ってないし、where git も C:\Program Files\Git\cmd\git.exe しか返してこなかったんだよね。なのでこの記事では、こういう風に調べられますよ、だけの話になります。

git for windows内に複数あるgit.exeについての解説

stackoverflow.com


自分の場合コンソールにcmderを使っているのでlinuxのコマンド(bashか?)が混在しているのもまたわかりにくさに拍車をかけているが…徐々にやっていこう

大きいモニターを買おう

去年出張で泊まったホテルにかなり大きなテレビがあり、そのとき「ディスプレイは大きいほど面白い」という真実に気付きました。

その後いろいろ部屋のレイアウトを変え、気づけばちょうどいい感じに大きいディスプレイを置ける部屋になったので真剣に考えてみようと思います。


とはいえ漠然と「大きい」といったものの、何インチが良いのか。

価格ドットコムでサイズの大きい順に並べると、大体43インチくらいがボリュームゾーン、それより上は当然ながら値段が高かったり、発売日が古かったり、口コミが少ないなど、食指が動かない。

肝心の43インチクラスも、どうにも決め手にかけるなあと思っていたんですが、

【デカすぎ注意】40インチ級4Kモニターのおすすめ機種ランキング | けしろぐ

  • そこそこ画質が良くて、リモコンとか付いてて、なんとなく色んな使い方ができそうなモデル

みたいな、なんかふわっとしたモデルがほとんどだ。要するにメーカー側もあまり力を入れていないのである。

40インチ超えの4Kモニターはあくまで「物理的大きさを最重要視する人向け」の商品だと思ったほうがいい。

ということみたいです。僕は今「物理的大きさを最重要視する人」なので果敢に向かっていこうと思います。


それで、以下の選択肢まで絞りました。

www.amazon.co.jp

大きな違いはリフレッシュレートになるのかな。GIGABYTEのほうは144Hz, Dellは60Hz。ゲームやってみたいけどFPSとかシビアなやつをやるつもりはないので60Hzでいいかな。

あと今の環境で古いMacと繋げたりすること考えると、今問題なく使えてるDellのほうが安心できる。というわけでDellでいこう。Dellは価格安定しないのでもう少し様子見してみます。


ちなみにGIGABYTEのほうはAmazonでこういうページもありました。

Amazon | GIGABYTE(ギガバイト) AORUS FV43U 43型 ゲーミング液晶ディスプレイ AORUS Gaming Monitor 4K UHD解像度、QUANTUM DOT技術採用 HDMI 2.1、リフレッシュレート144Hz、応答速度1ms(MPRT) | 通用 | ディスプレイ 通販

なんと8万円代。約半額です。なんでこんなに安いのか。メーカーの欄に「GIGABYTE中国」と書いてあるので、日本の代理店を通しているかどうかで値段が違うのかな?と最初は思ってました。しかし出品者情報を見ると日本人の個人名だったり、住所が中国福建省だったり、ストアフロントが

だったりしたので…怖くてやめました。