【Git素人向け】GitHubに定期的にバックアップをpushするソフトウェア(案)
作ったものをバックアップしていないともしデータが壊れた時が怖い! でもバックアップの取り方よくわからない!
という時に、自動バックアップを取ってくれるソフトウェアがあると便利そう(小並感)Mijinko_SD.icon ターゲット
何かを作ってデータ(ファイル)を生み出している人
Unityのように複数ファイル存在するもの
Unityの使い方はなんとなくわかるけどGitの使い方がわからない人はそこそこいるはず
既存の類似システム
※誰かが追記してくれる
仕様(案)
利用規約・法律・フリープランの制約等をクリアしているかは未調査なので注意
規約違反ではない模様
LFSは無料だと1GBの制限があるので、ファイル分割で挑むか
target => local repo(分割済み) => github
クロスプラットフォームにしたいbsahd.icon
GUI部分をブラウザに任せればクロスプラットフォーム化できそうMijinko_SD.icon
シェルコマンドはOSに合わせて書く必要があるけれど
Gitに限ればファイルパス以外は共通bsahd.icon
バックアップ対象はフォルダ単位で監視する
監視対象はユーザーが指定する
監視対象フォルダが増える事にGitHub上で非公開リポジトリを自動作成する
監視対象フォルダを指定する際に、ユーザーに監視対象の種別(プログラミング言語)を指定させる
もしUnityと指定されたら、GitHubのリポジトリ作成時に選択できるUnityの.gitignoreを自動作成する 種別を指定しなくても、一般的に除外されてるものはすべて除外しておくのはbsahd.icon
(npmを使うと数GB余裕で食われるしnpmはメジャーなので種別関係なく除外すべき)
まあ容量制限がきついGoogleDriveの話だが
バックアップ対象を定期的かつ自動的にステージング→コミット→プッシュする
失敗した場合は強制プッシュする
強制プッシュも駄目な場合はユーザーにエラー通知
Windowsの通知機能とか使えればいい
ファイル編集を監視して、編集されてすぐに自動コミットだ!bsahd.icon
定期的にスカッシュしないと履歴数やばいことになりそうMijinko_SD.icon
コミットから8時間経過すると、1分より短い間隔のコミットはスカッシュされるbsahd.icon
コミットから3日経過すると、10分より短い間隔のコミットはスカッシュされる
1週間経過すると、1時間より短い間隔のコミットはスカッシュされる
2か月経過すると、1日より短い間隔のコミットはスカッシュされる
自動作成したリポジトリの一覧やバックアップ履歴はGUI上で確認できるようにする
あくまで個人のバックアップ用途に特化させる
なので競合が発生しても暗黙的な強制上書き等の雑な処理で済ませる
それでも複数PC間の同期に使いたい人とかいるのでは...bsahd.icon
競合発生時にローカルがリモートを上書きするか、確認するかってオプションにすればいいのか
強制プッシュは結構悪影響あったりする
いるかもしれないですが、あまり色々できるようにすると制作難易度が上がってしまうので…Mijinko_SD.icon
もしやるとしても、競合が発生した場合、ユーザー側に専門知識を要求せずに解決できるような仕様を考えなければならない
今回のターゲットユーザーはGitのような専門的なことがわからない人なので
可能ならできるようにするぐらいで良さそうな気がします
私が実装するなら絶対やる候補ですbsahd.icon
「あったら見やすいよね」ぐらいの感覚
今回はバイナリファイルもバックアップ対象として想定されるので、差分表示が必ずしも役に立つとは限らない
一方で、バックアップ履歴を確認して任意のバックアップをリストアできるようにする機能は必須
daemonで常駐するか、cronでバックアップするかbsahd.icon
gitバックアップは結構便利bsahd.icon
もともとはGoogle Driveでnode_modulesが除外できなかったからGit on google driveにした
適当なスクリプトを置くリポジトリを作る
そのリポジトリは、"_"みたいなメッセージでmasterに直接コミットする
ワイルドカードステージングしてね
何日かに一度
破壊的な変更をする時とか(こっちはコミットメッセージまともに書く)
モノレポ・フラット
Git GUIってあるじゃん
これじゃダメなのかな?
Git GUIについてあまり詳しくないのでなんとも言えませんが、(そのツールで)できることは極力絞ってシンプルにしないと、ツールに詳しくないユーザーはついていけないと思いますMijinko_SD.icon 今回は単なるバックアップ用途なので、Gitの機能全部使えるツールは明らかに機能過多 Windows版Gitを入れるとついてきますbsahd.icon