😇

obsidian(ios)でobsidian-gitのPullが失敗する回避策

に公開

obsidian(iOS)でobsidian-gitのPullが失敗する回避策

現象:obsidian(iOS)でGithubからCloneできない

iOSのobsidianで、obsidian-gitを使ってGithubからリポジトリをcloneしようとすると、cloneがスンって異常終了してしまい一生cloneできない

多分原因

取得するファイルサイズが大きいと、obsidian-gitが内部で使っているgit実装が悲鳴を上げる

回避策:CloneはWorking Copyを使い、差分更新はobsidian-gitでPush/Pullする

以下、今回のワークアラウンド
大きなファイルじゃなければ大丈夫、多分

  • Working Copy でClone
    • sshじゃなくてhttpsを選択する
  • Cloneした結果ファイル群を、ファイルアプリで選択→移動かコピーかして、Obsidianのフォルダへ移動
  • Obsidianを再起動して、↑のフォルダをvaultとして開く
  • obsidian-gitをインストールし、ユーザーとPATを設定
  • コマンドパレット→Git: PULL で試しにプルして動作確認
  • Obsidian内で何かファイルを更新してからプッシュして動作確認

以下、細かい経緯とか

わかっていること

  • PCだとPush/PullできているGithubリポジトリだが、iOS(ipad)だとCloneできない
  • 今までiOSでも当該リポジトリをPullできていたが、気づいたらPullできなくなっていた

試したこと

状況整理

  • Cloneできない
    • ipad再起動
    • obsidian再インストール
    • 新規vaultを作って既存リポジトリをClone
  • Cloneできる
    • 新規vaultを作って空っぽの新規リポジトリをClone
  • ということは
    • 既存リポジトリからのCloneがとにかく失敗する
    • ipad側は悪くなさそう?

試行錯誤

  • 最初思ったのは
    • リポジトリに .obsidian/snippets ディレクトリを含んでいたので、cloneした結果そのワークスペースの .obsidian を上書き破壊してしまったのでは、というもの
      • .gitignoreに .obsidian 全体を追加してみても、現象変わらず
      • = .obsidianの有無は原因ではない
  • 次に思ったのは、
    • リポジトリに疎通できてない?
      • 14 of 14 compressing という表示が出ており、リポジトリ疎通は出来てそう
  • じゃあどこが悪いんだ?
    • 原因箇所の切り分け
    • まっさらのリポジトリをGithubに作成し、Cloneできるか試した → 成功
      • →obsidian-gitは機能してそう
    • 全ファイルをコピーした別リポジトリを新規作成し、Cloneできるか試した → 失敗
      • じゃあリポジトリ(に格納されたファイル)のせい?
  • 色々調べていく間に、これを見つける
  • 扱いサイズが大きくなる初手のCloneだけWorking Copy使えばよさそう
  • できた!

おまけ

READMEに「Gitのモバイル実装は不安定だから、このプラグインは使うなよ」と書いてあった。ちゃんと読んでなくて申し訳ない気持ちでいっぱい。

Discussion