You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
ghq を使い始めて以来、ディレクトリ移動にしろエディタオープンにしろ ghq list に頼りっぱなしだが、最近どうも遅く感じていた。そこでボトルネックを探してみて特定の状況下で ghq list の実行速度が向上する PR を出してみたところ、無事にマージされた。 具体的には ghq で Git リポジトリだけを使っている時に、ghq list --vcs=git が速くなる。自分の手元では20~30%くらい短縮された。 せっかくなので何を試して最終的に何をやったのかを書き残す。 試したこと ボトルネックを探すために pprof のフレームグラフを眺めてみたところ、findVcs という関数がそれなりの時間を食っていることがわかった。 findVcs(path string) は引数で渡されたディレクトリに VCS 毎の固有ディレクトリ(.git, .hg など)があるかを、os.St
最近Go Modulesを使っていて、だいたいプラクティスが定まってきたのでまとめてみる。 個人的な結論 Go Modulesは積極的に使っていけばいい 幾つか課題はある $GOPATH から出る必要もない $GO111MODULE を適宜設定すればよい どうせ次のGo 1.13からはどこに置こうが関係なくなる 2つのモード $GOPATH/src にプロジェクトを置いていると、今(Go 1.12)の標準動作はGOPATHモードになる。これは、$GOPATH/src 以下からサードパーティパッケージを読み込むこれまでのGoと同様の動作になるということ。 それ以外の場所では go mod コマンドを使ってGo Modulesを利用することができる。これをmodule-awareモードという。go.mod と go.sum を使って依存ライブラリを管理する方式になる。これらのファイルはgo m
This has been rocking my Twitter developer community for the past few days, but mostly only in Japanese — here’s an attempt #1 to fix this. tl;dr ghq allows you to organize git clones via a simple CLI and peco or percol makes cd’ing to these directories on your shell a snap. GOPATH/src for everything Go has an interesting directory structure that forces you to adopt when you write your own Go prog
2015-08-11 追記 @kyanny さんに指摘いただいた、ghq.root 配下にシンボリックリンクが存在すると ghq list などが不完全になる不具合を修正した バージョン 0.7.1 をリリースしています。最新版はこちらをご利用ください。 Release v0.7.1: Fixed symlink issue of v0.7 · motemen/ghq · GitHub ghq v0.7 にしたら ghq list の結果が大幅に減ったのでコードを読んでいる (v0.6 に戻したら期待する挙動に戻った— Kensuke Nagae (@kyanny) August 5, 2015 @motemen 再現する環境を再現できました https://t.co/Iqwrym5C7X— Kensuke Nagae (@kyanny) August 5, 2015 Vagrantfil
ども、ghq の方から来ました。各方面から PR いただいたおかげであれから機能がぐんぐん増えました。現在の最新バージョン 0.4 とリリース当初のバージョンを較べると: GitHub (Enterprise), Google Code だけでなく、Git もしくは Mercurial に対応しているリポジトリであれば clone できるようになりました。 GitHub からの clone 時、ghq get -p で ssh プロトコルを使用します。 ghq get -shallow で、shallow clone(履歴を辿らない clone)を行います。Git のみ。 ghq get git@github.com… みたいなこともできるようになりました。 ghq import starred 時に GitHub の API トークンを指定できるようになりました。 Homebrew ta
ghqというレポジトリ管理ツールを使ってみた。 Installation Goがインストールされていてかつ環境変数$GOPATHが設定されている環境で、go getを使ってインストールできた。 手元の環境を調べてみると、Goのversionは1.2.1、環境変数$GOPATHは$HOME/.goに設定されていた。 $ go get github.com/motemen/ghq $ go version go version go1.2.1 darwin/amd64 $ echo $GOPATH /Users/r7kamura/.go $ cat /Users/r7kamura/.zshrc.local | grep GO export GOPATH=$HOME/.go export PATH=$PATH:$GOPATH/bin $ which ghq /Users/r7kamura/.go
以前紹介したghqというツールで GitHub のリポジトリを手元に簡単クローンしてたのを、環境が新しくなったついでに Go で書き直し、完全リニューアルしました。(前は zsh だったのでなんだかなーと思ってた。) そもそも何をするツールか GitHub や Google Code Project でホストされている Git、Mercurial のリポジトリを手元にクローンすることができます。リポジトリは設定したルート(デフォルトで ~/.ghq)以下に、以下のようなパスで置かれます。 ~/.ghq/github.com/motemen/ghq go get と似てますね。同じような感じで ghq get <URL> します。 % ghq get https://github.com/motemen/ghq clone https://github.com/motemen/ghq ->
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く