Open28

remote にあげていない repo があるかを探したい

初期化したいとか、容量減らしたいとかの時に、「git push 忘れてたかも」みたいになってなかなか初期化に踏み切れない問題を解決したい

指定の dir だったりを探索して、git push していないとか、stash が残っているリポジトリを検知する
みたいなことがしたい

ちょっと脱線

https://qiita.com/shoma2da/items/117b2a0dc56ab52053e6

いつも gcd でリポジトリ移動をしていて、「alias の中身なんだっけ」となった
alias gcd で中身がわかるらしい

だめだった
やり方が違うのか

type gcd
gcd is a function with definition
# Defined in - @ line 1
function gcd --wraps='cd (ghq root)/(ghq list | fzf)' --description 'alias gcd=cd (ghq root)/(ghq list | fzf)'
  cd (ghq root)/(ghq list | fzf) $argv;
end

ghq と これの組み合わせと正規表現でいけそう

rust か何かで tool として作るか、
ただの shell script でやるか、

shell script でできそうな感じではある
rust でなんか書いてみたい気持ちもある
ghq との相性を考えると、go で書いたほうが良さげ
go 何もわからんけども

> ghq list
github.com/tkt-actions/add-issue-links
github.com/tktcorporation/chrome-extension-typescript-template
github.com/tktcorporation/dotfiles
github.com/tktcorporation/extended-spirit
github.com/tktcorporation/foam

引数に path を渡したら、それぞれに対してさっきのコマンドを実行してくれるってやれば良さそう

それでも git には依存するのか
それくらいの依存は command not found とか install git とか出せば良い話ではある

rust で作るのどうやるのか忘れてたので、昔作ったもので思い出してみる

これで良いのでは

> git-remind --path /home/tktcorporation/src/github.com/tktcorporation/* status -a
No help topic for '/home/tktcorporation/src/github.com/tktcorporation/dotfiles'

こんな感じで出てくる
よくわからん

> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status
> ls /home/tktcorporation/src/github.com/tktcorporation
chrome-extension-typescript-template/  dotfiles/  extended-spirit/  foam/  youtube_to_m3u8/

どうして

> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' repos
/home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
/home/tktcorporation/src/github.com/tktcorporation/dotfiles
/home/tktcorporation/src/github.com/tktcorporation/extended-spirit
/home/tktcorporation/src/github.com/tktcorporation/foam
/home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status

repository は取れるけど status はとれない

> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' repos
/home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
/home/tktcorporation/src/github.com/tktcorporation/dotfiles
/home/tktcorporation/src/github.com/tktcorporation/extended-spirit
/home/tktcorporation/src/github.com/tktcorporation/foam
/home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8
> git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status

repository は取れるけど status はとれない

git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/foam' status -a
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/foam

単体で呼んだら取れた?

git-remind --path '/home/tktcorporation/src/github.com/tktcorporation/*' status -a
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/chrome-extension-typescript-template
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/dotfiles
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/extended-spirit
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/foam
Up-to-date: /home/tktcorporation/src/github.com/tktcorporation/youtube_to_m3u8

全部取れるようになった。
どうして

branch 別でも取得してくれたりするのかな

コー読んでみよう

やりたいことができそうであれば、ここに ghq の repo を渡してあげればきれいに全部出そう

ログインするとコメントできます