2024年7月26日金曜日

Google drive で git repositories

6月の頭にノートPCを入れ替えたので、前のPCで使っていたものが色々無くなっていた。
その一つがGoogleドライブ上にgitリポジトリを作って、そこにpush/pullする事だ。

Googleドライブは、Ubuntuからもnautilusやnemoで簡単にアクセスできるが、コマンドラインから普通にアクセスするには少し難しい。
普通にアクセスするには、rcloneを使う。
そこまでは覚えていたのだが、細かいことはすっかり忘れてしまった。
もう一度やり直して、メモとしてブログに書いておく。

rcloneはUbuntuのパッケージもあるが、rcloneのホームページから.deb形式もダウンロードできるので、最新のものをダウンロードして使っている。
セットアップはややこしいが、ネットで検索すれば色々出てくる。
このブログでは説明しないので、そちらを参照してほしい。

gitリポジトリを置いてpush/pullできるようにするには、mountする。

mountしてgitリポジトリとして使うには、キャッシュ機能を使う必要がある。
キャッシュOFFだと読み書き同時アクセスができないためだ。
--vfs-cache-mode writes 以上でマウントする。

キャッシュするということは、write backするまでの時間が気になる。
その時間の設定は、--vfs-write-back で行う。
デフォルトは5秒なので、そのままで使う。
改めて設定しても良い。

write back後、ローカルから捨ててもいい。それを捨てるタイミングが次に気になる。
その設定は、--vfs-cache-max-age で行う。
デフォルトは1hなので、3mぐらいに短縮する。

というわけで、コマンドラインはこんな感じになる。
rclone mount <remote>:<path> <マウントポイント> \
	--vfs-write-back 5 \
	--vfs-cache-max-age 3m \
	--vfs-cache-mode writes &
これでマウントできる。

アンマウントするには
fusermount -u <マウントポイント>

注意しなければいけないことがある。

気になるのはタイミングだ。
gitのremoteは、pushとpullで別々に指定できるが、書き込みしたら即時読み取りに変化が現れなければならない事になっていたと記憶している。
(何で読んだか忘れたし、詳細不明)
cacheを使ってもローカルではそれが達成できるが、リモート(Googleドライブ)側ではラグが生じることになる。
そのため複数人で、Googleドライブ上のgitリポジトリを使うのは危険かもしれない。

一人で使うなら、衝突するわけがないので問題ないだろう。

0 件のコメント:

コメントを投稿