今のところ私は一人の開発者です。 VC一人の開発者のための設定)についての経験を共有してください。
私の制約は;
私は現在Subversion(クライアントからリモートサーバーへ)を使用していますが、問題はありません。 Mercurialとgit DVCSに興味がありますが、それらのユースケースはどれも私の状況に意味がありません。
編集:私はアクティブな開発をFossilに移行しました http://www.Fossil-scm.org/ クライアントで試した後。リポジトリを自動同期する機能(偶発的なフォークの削減)、さまざまなスペースでのコードとプロジェクトのドキュメント化の必要性をサポートするドキュメントサポート(wikiと埋め込み/バージョン化の両方)、問題トラッカーの構成が簡単、ニースアクセスコントロール、スキン変更可能なWebインターフェース、役立つコミュニティ。
Fossilと呼ばれるかなり新しいバージョン管理を提案するかもしれません。
これは私もプロジェクトではありません。SQLiteを担当した同じ人であるRichard Hipp博士によって書かれました。リポジトリ全体はSQLiteファイルなので、非常に堅実です。 Wikiとチケットシステムが組み込まれています。さまざまな権限を持つ多くのユーザーがいる可能性があるため、たとえば、ユーザーにチケットを発行する権利を与えるが、ソースコードを表示しないようにすることができます。
これは非常に単純で単純で、分散システムとして機能します。つまり、ローカルおよびリモートでクローンを作成してチェックアウトできます。
詳細は http://www.Fossil-scm.org/ で確認できます。よく見ると、サイト全体が実際にFossilであることがわかります。
Fossilで本当に印象に残ったことの1つは、ファイルが1つだけであることです。 Fossilプログラム全体はかなり小さいですが、作者が誰であるかを考えると、それは本当に驚きではありません。
また、リポジトリはsqliteファイルなので、コピーするだけでバックアップを作成できます。
それぞれの人はおそらく彼らのお気に入りのDVCSがあなたに最適だと言うでしょう。 Mercurialが最高だと思います! ;-)
しかし、それはがらくたです。あなたは間違いなくDVCSを必要としていますが、それらすべてを試すか、少なくとも最もよく使われるものを試して、自分で選択してください。あなたが第一人者を知っているDVCSを選択することも、賢明な選択です。少なくともMercurial、Git、Bazaarを試す(またはドキュメントを読む)ことをお勧めします。 SVKには、SVNと対話するように設計されているという望ましい機能があるかもしれませんが、前回チェックしたところ、パフォーマンスに厄介な問題がありました。 Gitには、SVN対話プラグインのAFAIKもあります。
オフラインで作業することは、Gitにとって完全に理にかなっています。履歴全体を閲覧したり、コミットしたり、マージしたり、ブランチを作成したり、リポジトリに関連するすべてのことをオフラインで行うことができます。さらに、「マスター」である中央リポジトリを設定できます。つまり、すべての変更をその中央リポジトリにプッシュします。これにより、常に最新のコードがどこにあるかを知ることができますが、必要に応じて、あるマシンから別のマシンに変更を送信できるという利点もあります。
私は最近、80以上のSubversionリポジトリをすべてGitに変換しましたが、振り返っていません。
バザール : 単独のユースケース および 5分でわかるバザール を参照してください。
特にオフラインで使用する場合は、 分散バージョン管理システム が適しています。
Subversionは素晴らしい働きをします(特にTortoiseSVNで)。分散型のVC=が単一の開発者シナリオで有利になるとは思いません。
編集:私が最初に返信したとき、「ときどきオフラインで作業する」という部分に気づかなかった。その場合、オフラインの履歴/改訂を提供するという事実を使用して、DVCSの追加された複雑さを重み付けする必要があると思います。
私は常にこの状況に darcs をお勧めします( 同様の質問に対する私の回答です )。そのコマンドラインユーザーインターフェイスは使用する喜びであり、喜びは私自身が望むものです。開発:)
Gitにはいくつかの実用的なGUIがバンドルされていますが、個人的なプロジェクトで使用するためにコマンドラインをヒットしたとき、darcsに比べて扱いにくいことがわかりました。
どちらも、オフラインで作業する必要性を満たし、変更を簡単に同期できます。
Subversionは一元化されたリポジトリへのアクセスを必要とします。複数のマシンからオフラインで作業している場合は、オフライン中に修正を加えることはできません。
基本的なUnixの解決策は [〜#〜] rcs [〜#〜] を使用して作業ディレクトリ内に履歴を保持し、-を使用して異なるマシン間で作業ディレクトリ(履歴を含む)を同期することです。 ユニゾン 。主な注意点は、マシンを切り替える場合は、新しいリビジョンのコミットを開始する前にまずマシンを同期する必要があるということです。それが問題である場合は、実際のDVCSを調べることをお勧めします。
あなたはDVCS(または私がpeer2peer VCSと呼ぶもの)を試す必要があります。私はどこにも同意しません。 svnで時間を無駄にしないでください。svnを使いやすくするために、すべてのソフトがその周りに作成されています。 DVCSは、古い非推奨のクライアントサーバースタイルよりも直感的です。 SVNは、タグまたはブランチが何であるかを認識していません。 Svnの場合、すべては単なるコピーです。
たとえば、リビジョン番号の同義語としてタグを実装するのは非常に困難です。
Mercurialでは、タグはそれだけです。 svnのようにタグのバージョンを追跡し続けることはできません。
ここをお読みください dvcsガイド 開始します。次に、svk、Mercurial、別名hgまたはgitを使用できます。しかし、時間を戻さないでください
あなたが私が尋ねた質問への答えを見つけるかもしれません:一人の人のショー(一人の軍?)のためのVSSの代わり:
私は分散バージョン管理の大ファンです。私はgit、Mercurial、bzrをいじってみましたが、今ではすべてのプロジェクトでgitを使用しています。これら3つはすべて、コンピューター上に新しいリポジトリを作成するのが非常に簡単であるため、個人での使用に最適です。サーバーを実行する必要はありません。
複数のコンピューター間でリポジトリを共有するためのアイデアをいくつか紹介します。 1)githubなどのホストされたサービスを使用します。通常、これらはオープンソースプロジェクトでは無料で、商用プロジェクトでは低料金です。職場ではgithubを使用しています。 2)Dropboxを使用して、すべてのコンピューターがアクセスできる共有インターネットバックアップディスクを作成します。 2 GB未満は無料です。 (Ubuntuを使用している場合は、Ubuntu Oneが別の代替手段です。)マスターgitリポジトリをドロップボックスに配置してから、各コンピューターにローカルリポジトリを配置します。 (したがって、Dropboxはgithubと同じ役割を果たします。)それは完全に無料で、オフラインで簡単に作業でき、必要に応じて後で他の開発者とリポジトリを共有でき、自動的にバックアップされます。
また、本当にSVNを使用したい場合は、独自のサーバーを実行するのではなく、cvsdude(名前にもかかわらず、SVNを実行します)のようなホストされたソリューションを見てください。どこからでもコードにアクセスでき、費用は1か月あたり約5〜10ドルです。
Subversionを使い慣れている場合は、 [〜#〜] svk [〜#〜] を参照することをお勧めします
SourceGear Vault は1人の開発者に無料で提供され、非常に優れています。
assembla.comをお勧めします-無料のsvn、wiki、tracを提供しています。それ以上のことはできません!