Dropboxに似た同期リポジトリを設定したいと思います。
目標/要件:
基本的に、私は複数のコンピューターを使用でき、異なるOSで可能であり、それらすべてのファイルにアクセス、使用、および同期できるようにしたいと考えています。また、ネットワークに接続していないときのために、リポジトリのローカルコピーが必要です(ラップトップで作業しているように、ローカルリポジトリを保持してリビジョンを保持し、後で「マスター」リポジトリとマージしたい) )。
たとえば、ネットワークの外で日中にラップトップでいくつかの写真を編集していますが、家に帰ったら、増分変更を含む変更を自宅のデスクトップと同期したいと思います。
また、ルームメイトもこのリポジトリにアクセスして使用できるようにしたいが、特定のファイルへのアクセスを制限したい。たとえば、これを使用して財務記録をバックアップしたいが、それらのファイルにアクセスしたくない場合があります。
私はプログラマーであり、SVNに精通していますが、バイナリを適切に処理せず、ローカルリポジトリを保持しないため、SVNは最適ではないことを知っています。私はより良い選択肢が存在することを知っていますが、最良のものを選択するのに十分なほどそれらをよく知りません。
Subversionの場合、ローカルリポジトリを作成できます。ローカルにリポジトリを作成するだけで完了です。その後、svnsyncを使用して定期的にリモートリポジトリと同期できます。または、逆に、リモートリポジトリを使用してローカルで同期します(バックアップの場合と同じように)。
Svnはバイナリをうまく処理しますが、少なくとも他のSCMと同様に処理します。バイナリの問題は、差分が難しいことです。これはsvnで失敗するのではなく、バイナリのプロパティにすぎません。
Git または Mercurial (または Bazaar )は、ローカルリポジトリですべてを操作するという点で分散SCMであるため、ニーズにより適しているように聞こえます。次に、変更をリモートリポジトリにプッシュします。優れたGUIツールがあるので、MercurialはおそらくWindowsに最適です。 Bazaarは、CanonicalとGitによってLinusによって開発されたものです。それは誰もが気にするそれらの間のすべての違いについてです:)ウェブ上に 比較 があります-gitがネイティブWindowsではないことを除いて、Mercurialはおそらくより多くをサポートしているのでより良いです 'あなたが持っているものは何ですかリモートユーザーは 'を持っていますが、Gitは'リモートユーザーが持っているものはあなたが持っているものです 'あなたの要件を考えるとあなたからより多くの努力が必要になります(もちろん、両方ともすべてまたはサブセットを共有できますが、Mercurialにとっては簡単ですGitがすべてを共有するよりもサブセットが制限されている)
'both'を使用する場合は、 git-svn または [〜#〜] svk [〜#〜] を使用して、SVNに分散機能を追加できます。
Gitをお勧めします。財務データと「共有」データに異なるリポジトリを設定するだけです。アクセスはssh経由で許可されます。
たぶんあなたは試してみたいでしょう http://www.sparkleshare.org/ それについての最近の議論は http://apps.ycombinator.com/item?id=1424299)で見つけることができます 。
Dropboxが機能しない特別な理由はありますか?モバイルデバイスのサポートが追加され、機能リストのすべてがカバーされます。バイナリをうまく処理する「簡単な」バージョン管理システムを見つけることができるかどうかはわかりません。
Gitを使用することを選択した場合は、DropboxでGitリポジトリをホストすることに関する興味深い投稿があります。
http://intranation.com/entries/2010/02/using-dropbox-git-repository/
この手法は、MercurialおよびSubversionリポジトリでも機能するはずです。
Subversion が進むべき道だと思います。
これは 多くのプラットフォーム で完全にサポートされており、 windows 、 mac 、および linux に適したクライアントが存在します。とりわけ。