mike-neckのブログ

Java or Groovy or Swift or Golang

Terminal Night #1 に行ってきた #terminalnight

表題の通りの勉強会に行ってきた

kichijojipm.connpass.com

実はあまりターミナルを使いこなしているわけでもないし、 IDE 絶対派なので関係ないだろうと思いつつも、 他の人のターミナルを参考にすればターミナルも効率的に使えるかもしれないと思って参加することにした。

  • ast-grep という CLI ツールはよさそうだった
    • grep や文字列検索での検索は、その後で検索結果のフィルタリングが必要になってて、そこそこ困ってたので試してみたい
    • IDE(GoLand) での検索で十分なところもあるといえばあるのだけど、 IDE のプロジェクトではないディレクトリーで重宝しそう
    • 後で試してみたいと思う
  • muse という構成管理ツールが流行っていそうだというのはわかった
    • 仕事では asdf を使っていて、特に困っていない状態ではあるが…
  • dotfiles を全然管理していないが、 AI 使って式年遷宮パターンの定義にあるゴール地点を目指して定義すれば気軽に入れるという考え方は面白かった
  • 動画とか画像をターミナルで表示したプレゼンは見事でした
    • 画像とかどうやって表示するんだ???

ターミナルエミュレーターにフォーカスした発表がなかったのはちょっぴり残念…


久々にじゅくちょーに会って、最近の仕事などの情報を交換しました。

以上、おわり

Gerrit の repo ツールで、複数のサブマニフェストで同一リモートから同一プロジェクトをフェッチした場合のディレクトリー構造

単なるメモ

  • repo でクローンする場合は、 git init のあとにリモートを設定して、 git fetch している
  • その際にgitオブジェクトはフェッチしたプロジェクトの .git ディレクトリーではなく、 .repo/project-objects ディレクトリーの下に リモートの名前、プロジェクトのディレクトリーから計算されるディレクトリーに Git オブジェクト専用の .git ディレクトリーが作られる
  • 上記のGit オブジェクト専用のディレクトリーへは Git 標準仕様にある objects/info/alternates というファイルをもって参照することでディレクトリーを解決する
  • サブマニフェスト構成のマニフェストにおいて、同じプロジェクトが同じリモート、ディレクトリーに配置される場合、同じ Git オブジェクトのディレクトリーを参照するので、フェッチの通信量を抑えられる
  • すでに一度 repo sync した後で、リモート名を変更すると、プロジェクトの .git ディレクトリーを破棄して新しい .git ディレクトリーを作成し、Git オブジェクト専用の .git ディレクトリーも新しいものを作成する
    • 古い Git オブジェクト用 .git ディレクトリーは破棄しない
  • 古いバージョンの repo では、サブマニフェスト構成で複数のサブマニフェストが同じプロジェクトを同じリモートから同じパスで取得してる場合に、上記のディレクトリーの作り直しが失敗するケースがある(v2.41 以前)