2011-08-15 11 views
8

私はプロのプログラマーではありませんが、小さなソロプロジェクトをいくつか行います。バージョン管理と同期が必要ですが、コミットとチェックアウト(別のコンピュータで)を覚えておくプロセスは、ファイルが変更されたとき自動的にクラウドにアップロードするドロップボックスフォルダにコードを保存するよりも面倒です。現在のコピーを使用することは私にとって完全に透過的ですが、バージョン管理はありません。dropbox-style svn/git/mercurial ?:変更と自動チェックアウト時の自動コミット

コードベースをファイルの変更時に自動的にコミットしたり、ほんの数分おきに自動的にダウンロードして自動的にダウンロードする方法はありますか(シンクレーションは苦痛です。別のコンピュータから作業を続行したい場合は最新バージョンを使用しますか?

ありがとうございます!

+0

なぜこれをやりたいですか?あなたのコードを変更して偶然に何かが壊れたときにはどうなりますか? IMOは、あなたがたくさんのバージョンを持っているので、あなたが一日の仕事を終えた後にコミットすることを覚えておくよりも、あなたのオートコミット全体を通して戻ってくる大きな痛みになります。 – CamelBlues

+0

@CamelBlues、もっと同意できませんでした。コミットメッセージに追加する注釈や、フィーチャーやバグ修正の完了など、コミットを行う論理的な場所の選択がなければ、バージョン管理はほとんど無意味です。 –

+0

[Create git auto-commit]の複製があります。(http://stackoverflow.com/questions/420143/making-git-auto-commit) – 79E09796

答えて

0

私がやったことは、btsyncを使用して複数のコンピュータ間でコードベースを同期させることでした。これは私が探していた即時の「自動同期」機能を作成し、それは私には完全に透過的です。 (これは上記のような膨大な自動コミットの問題も処理しますが)ヒント:すべてのコンピュータでreposを試したり同期したりしないでください。これは可能ですが、私には必要ありませんでした。ファイルを同期させ、必要に応じてコミットしてプッシュするために遠隔操作できる1台のマシンにレポを保つ方が良いでしょう。こうすることで、バージョニングと自動同期が可能になります(または毎日コミットする必要があります。また、コンピュータから離れる必要があるときにコミットしたり、ラップトップを閉じる前に発生するコミットエラーに対処する必要があります)。毎日コミットすることを覚えておくために、忘れやすい思い出に頼らざるを得ません。

1

Dropboxは履歴にファイルのバージョンをほとんど保持しません。ほとんど「バージョン管理」と呼ばれることはありませんが、ファイルを元の状態に戻すことは可能です。

コミットやマージに本当に迷惑をかけることができない場合は、いいと自動であるので、私はドロップボックスで生きていると言います。

コミット/プッシュを5分ごとに実行する予定タスク(Windowsの場合)またはCronジョブ(Linuxの場合)を設定できます。コンピュータを起動するたびにプル/アップデートしてください。 しかし、手作業でのマージが必要なときに、プル/アップデート時に起こる可能性のある悪夢が待っています。

また、Mercurialを使うことをお勧めします.gitよりも学びやすく、扱いやすく、svnよりも高度です。これは、バージョン管理システムからの苦痛を取り除くでしょう。

5

「プロジェクト」の内容によって異なります。サイエンス・フィクション作家のCory Doctorowのが自動的にキャプチャし、定期的にバージョン彼の書き込み処理をしたかった後

Flashbakeが作成された:15分ごとに

、Flashbakeはあなたがチェックし、それを聞いてすべてのファイルを見て(I私のフィクション・イン・プログレス、私のトドゥー・リスト、有用な情報の私のファイル、最近の本の完成した電子版を見てください)、最後のチェック以降に加えられた変更を記録し、最新のもので注釈を付けますシステム時計のタイムゾーン、Googleから取得したタイムゾーンの天気、そしてブログのRSSフィードにある下の3つの見出しのうち、最後の3つの見出しは、「私はどこですか?それはそこに好きだ、と私は何について考えている? ")。また、コンピュータの稼働時間も記録されます。将来のバージョンでは、あなたの音楽プレーヤーで再生された最新の3曲を楽しくすることができます。 (source

これはバージョニングのためのgitに基づいて、自動更新のクーロン(gitのは、これは扱いやすいするために十分なスペース効率である)されています。 another reviewをご覧ください。コードはhereです。

X分ごとにコミットするのではなく、実際にファイルの変更を検出する必要がある場合は、something based on inotifydetails - これらの自動コミットがすぐに追加されることに注意してください)。

さらに別のオプション(自動コミットの質問を必ずしも解決しないので、混在したいかもしれません)は、Dropbox上でgitを実行することです。これはalready been discussed here on SOです。

+0

非常に良い答えですが、inotifyはリソースが集中しないほどです。エディタがオペレーティングシステムに対して 'write'呼び出しを行うまで、プロセスは完全に眠っています。もちろん、あなたが私のように頻繁に保存すると、それらのコミットはすぐに追加されます。 –

+0

@Karl:はい、これはまさに私の意味です。良いキャッチ。それを反映するように編集されました。 – huitseeker

関連する問題