ドキュメント
トラブルシューティング
うまくいかなくなる数少ないこと、PullMark のメッセージが意味するもの、 そして静かな失敗の裏にある設計。ここにある「エラー」のほとんどは、あなたの仕事を失うまいと アプリがあえて拒んでいる場面です。
GitHub へのアクセス——どうつながり、どう直すか
PullMark は、あなた自身のツールがすでに持っている GitHub の認証情報を借ります——自前の
ログインは持たず、秘密を保存することもありません。
設定 → 一般 → GitHub が、つながっているか、
誰として、どの出どころを通じてかを示します。「設定…」 は新しいマシンでの接続を
案内し、「再確認」 は直したその場で拾い上げます——gh auth login
のあと、再起動は要りません。
PullMark(0.36 以降)が入っている Mac でこれを読んでいますか? いま接続の行を開く。
PullMark が試す順に、認証情報の出どころはこうです。
- GitHub CLI のトークン。
gh auth tokenが何かを出力する必要があります。出ないならbrew install gh && gh auth loginを——これが推奨の道です。 トークンのスコープは確かめられており、ブラウザのフローで SSO も扱え、更新もされます。 - それ以外なら
git credential fill——github.com に対して git 自身が 使っているもの(macOS のキーチェーン、Git Credential Manager、昔の HTTPS プッシュが 残したトークン)。
中途半端に動いてしまうトークンのための、細かい話。classic トークンには
repo スコープが(組織のチーム名まで要るなら read:org も)
必要です。fine-grained トークンはひとつのリソースオーナーに縛られます——
パブリックリポジトリと、そのオーナーのプライベートリポジトリは動き、それ以外は拒まれます。
SSO で保護された組織では、組織ごとにトークンを承認する必要があります。そして手作業で
作ったトークンには期限があります——「昨日は動いたのに」が診断される場所が、あの設定の
行です。
GitHub:「その ref には存在しないか…プライベートリポジトリかもしれません」
「… を開けませんでした: …。その ref には存在しないか、いまの GitHub 認証情報ではアクセスできないプライベートリポジトリかもしれません。」 GitHub の API は「プライベートで権限が無い」と「存在しない」をまったく 同じように報告するので、PullMark にもどちらなのかは 分かりません。動くはずのリポジトリなら、ほぼ間違いなく認証の問題です——上の GitHub へのアクセスを見るか、 設定 → 一般 → GitHub を開いて 「設定…」 を押してください。
Gatekeeper がアプリを開いてくれない
リリースは Developer ID で署名され、Apple の公証を受けているので、普通にダウンロード
したものなら警告は出ません。ソースからビルドした場合(make app)はアドホック
署名なので、右クリック →「開く」→「開く」、または
システム設定 → プライバシーとセキュリティ から許可してください。
Quick Look のプレビューがレンダリングされなくなった
Homebrew のアップグレードはアプリバンドルを差し替えるので、Quick Look 拡張の登録が 黙って外れることがあります。PullMark は起動のたびに登録し直すので、一度アプリを起動すれば それで済みます。それでも素のテキストが出るなら、設定 → 一般 →「Quick Look のプレビュー」 が「レンダリング」になっているか確かめてください。
「PullMark は Markdown のデフォルトアプリではなくなりました」
原因は同じです。アップグレードがバンドルを差し替え、macOS が .md の
関連付けを手放しました。バナーの 「もう一度デフォルトにする」 で取り戻せますし、
設定 → 一般 からでも同じことができます。
「このブロックを編集しているあいだに … が変更されました — 何も保存されていません」
ブロックエディタを開いてから保存するまでのあいだに、ファイルがディスク上で変わりました (別のエディタ、エージェント、git の操作)。PullMark は、動いてしまった行に割り込むことを 拒みます——失われるのはその 1 回の編集だけで、ブロックを開き直せば現在のテキストが出ます。 同じガードはコミットも守ります。ファイルが存在しない ref と比べたときは、空の差分を見せる 代わりに、そうとはっきり伝えます。
淡くなった行——「そこに無い」フォルダと最近の項目
疑問符バッジの付いた「場所」や、グレーになった最近の項目は、いまそのパスが解決できない という意味です——マウント解除されたボリューム、切り替えた git ブランチ、削除されたワーク ツリー。行が消えずに淡くなるのは、わざとです。パスが戻れば、自動的に復活します。もう生きて いない最近の項目をクリックすると、「最近使った項目から取り除く」 か 「残す」 を選べます。
プルリクエスト——バナーと保留中のコメント
- 「このプルリクエストは GitHub で更新されました。」——読み込んでからブランチが 動きました。更新はワンクリックで、下書きのコメントは生き残ります。レビューの途中で PullMark が勝手に読み直すことはありません。
- 「レビューコメントを読み込めませんでした — 既存のスレッドが表示されて いない可能性があります。」——そうでなければ、差分がコメントの 無い PR のふりをしてしまいます。「再試行」で取得し直します。
- 「保留中のコメント N 件を GitHub にアップロードできませんでした — 再試行のためローカルに保持しています。」—— オフラインで(あるいは API の不調で)書いたコメントは、PR のヘッドごとにディスクで順番を 待ち、可能になり次第アップロードされます。捨てられるものはありません。
- 「… 個のファイルをコミットしました。ただしプッシュに失敗しました」——コミットはローカルの履歴に無事 あります。やり直すべきは、プッシュだけです。
アップデート
バナーの 「今すぐアップデート」 は brew のアップグレード(DMG でのインストールなら、
検証付きのその場での上書きインストール)を実行して、再起動します。失敗したときは、バナーが
brew upgrade --cask pullmark というコマンドをそのまま「コピー」ボタン付きで
表示します——ターミナルで走らせても、することは同じです。開発ビルドはアップデートを
確認しません。
pullmark コマンド
- 「no such file or folder」——コマンドは何かを開く前に、すべてのパスを検証 します。タイプミスひとつでオープン全体が中止され(終了コード 1)、スクリプトは大きな声で 失敗します。
- Command not found——コマンドのインストールを 参照してください。
- 「コマンドをインストールできませんでした」——設定のインストーラは
/usr/local/binに書き込むための認証を必要とします。プロンプトを閉じて しまったなら、キャンセルしてやり直してください。
それでも行き詰まったら
issue を立ててください—— ヘルプ →「バグを報告…」なら、アプリの中から下書き済みのものを開けます。