😇
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の有無は原因ではない
- リポジトリに .obsidian/snippets ディレクトリを含んでいたので、cloneした結果そのワークスペースの .obsidian を上書き破壊してしまったのでは、というもの
- 次に思ったのは、
- リポジトリに疎通できてない?
- 14 of 14 compressing という表示が出ており、リポジトリ疎通は出来てそう
- リポジトリに疎通できてない?
- じゃあどこが悪いんだ?
- 原因箇所の切り分け
- まっさらのリポジトリをGithubに作成し、Cloneできるか試した → 成功
- →obsidian-gitは機能してそう
- 全ファイルをコピーした別リポジトリを新規作成し、Cloneできるか試した → 失敗
- じゃあリポジトリ(に格納されたファイル)のせい?
- 色々調べていく間に、これを見つける
- これが原因かも知れない。。。
- [Bug]: When git fetch on iOS, Obsidian will reload. · Issue #911 · Vinzent03/obsidian-git
- Weird Obsidian Git repo clone behaviour on iOS : r/ObsidianMD
- (ざっくり)大きいファイルがあるとfetch/pullが失敗する、とある
- →じゃあPush/Pullが小さければobsidian-gitが機能する...ってコト!?
- これが原因かも知れない。。。
- 扱いサイズが大きくなる初手のCloneだけWorking Copy使えばよさそう
- working copyの使い方はこちらを参考にさせていただいた
- できた!
おまけ
READMEに「Gitのモバイル実装は不安定だから、このプラグインは使うなよ」と書いてあった。ちゃんと読んでなくて申し訳ない気持ちでいっぱい。
Discussion