それとも、従来のクライアント/サーバー VCS の方が適切でしょうか? 私は現在 TortoiseSVN を使用していますが、DVCS に興味がありますが、そのようなものをソロで使用するのが良い考えであるかどうかもわかりません。
6 に答える
Git/Mercurial/Bzr/etc を実行している別のマシンにプッシュすることもできるので、複数のコンピューターのバックアップの安全性を確保できます。ただし、旅行中にコードを作成する場合は、リポジトリに完全にアクセスできることが大きなプラスになる可能性があります。その後、ネット接続が再び確立されたとき/家に帰るときなどにサーバーに再同期するだけです.
はい。私の意見では、DVCS は、従来のサーバーベースのシステムよりも単独での開発に適しています。サーバーベースのシステムの機能の多くは、開発者が 1 人である場合、不必要に複雑になります。
一方、一人で作業している場合は、DVCS と SVN の生産性の大きな違いに気付かないでしょう。
私はイエスと思う。1 つには、複数のコンピューターを使用すると、マージがはるかに簡単になるため、拡張性が大幅に向上します。次に、オフラインでコミットできます。これは、一般的に優れています。
はい。私が趣味のプロジェクトのために DVCS (Git と Mercurial) に切り替えた主な理由は 2 つあります。1 つはバックアップの保持の問題であり、もう 1 つは、私が頻繁に移動し、地理的に離れた複数のコンピューターを使用することです。
迅速かつ簡単なバックアップ
少なくとも 2 つのリポジトリ クローンを使用しています。1 つは私のワークスペースにある明らかなローカルのもので、もう 1 つはファイル サーバー (またはgithubやbitbucketなどのオンライン リポジトリ) に保持しているもので、ローカルで作業が終了したときにダンプします。バックアップの作成は、リポジトリの同期と同じくらい簡単です。つまり、変更を上流にプッシュします。
別の場所またはコンピューターで作業する
私は旅行することが多いので、趣味のプロジェクトを行う開発者にとって、これはおそらくあまり一般的ではないシナリオです。自宅のコンピューターのほかに、私は時々両親の家に泊まり、古いコンピューターを保管しています (趣味のプログラミングには十分な速さです)。新しい機能をハッキングしたいときはいつでも、そのコンピューターでそれを行い、リポジトリを同期するだけで、家に帰ったときにそれらの変更を受け取ることができます.
簡単な分岐・合流
DVCS が分岐/マージを非常に自動的に処理することは周知の事実です。マージの競合は発生しますが、Subversion などの集中型のバージョン管理ツールがなくても、単純なシナリオであっても、マージに関してはあまり役に立ちません。私は個人的なプロジェクトでこの機能をあまり使用しませんが、使用する開発者もいます。
バージョン管理にまだ SourceSafe を使用している会社のプロプライエタリ システムで自分の作業を追跡するために git を使用したプログラミング請負業者を 1 人知っています。Git を使用すると、最終的にファイルを手動でマージする必要があったとしても、各修正を分岐することで個別の修正を簡単に追跡できるようになりました。ファイルを SourceSafe にチェックインするときが来ると、彼はさまざまなブランチの差分を調べて、必要な変更を確認し、それらを実行していました。彼の時間のほとんどは、仲間が追いつくのを待つことに費やされたとだけ言っておきましょう.
分散型を使用することを真剣にお勧めします。Windows では、Mercurial を選択しましたが、非常に満足しています。
大きな長所:
- ローカル コミットは高速で、頻繁にコミットできます (テスト、コード、リファクタリング、コミット)
- 分岐は簡単
- どこにいてもコミットできます。
- ファイルを簡単に移動できます (SVN を使用するときのように混乱することはもうありません)
- もっと簡単に。1 つのソフトウェアですべてを実行 (管理タスクを含む)
- ファイルシステムはよりクリーンです。どこにでも .svn はなく、1 つのフォルダーだけ
- 無視されたファイルのリストは、リポジトリ内の単なる別のファイルであり、すべてのクローンに自動的にコピーされます。SVN よりも簡単にきれいに保つことができます。
- Bitbucket.com は素晴らしく、1 つの無料のプライベート リポジトリを提供します
短所:
- (一部の場合)GUIツールはありません
- さまざまなソース リポジトリに接続するには、おそらくまだ SVN が必要です。たとえば、2 つのシステムを使用する必要があります。
1 人の開発者の場合、すべての VCS で十分です。セットアップが簡単で、構成をほとんどまたはまったく必要としないものを選択します。個人的にはモノトーンが好きです。これは最初の 1 つであり、今でも最高の 1 つであると考えています。
実際、私がこれまでで最も楽しかったのはdarcsを使用したときでしたが、かなり醜い言語 (Haskell) で記述されており、ソースから Mac OS X でビルドするのはすでにかなりの苦痛でした。
Git は良いシステムだと言われていますが、複数のバイナリやスクリプトなどで構成されているのが嫌いです。darcs や Monotone のようなシステムで私が本当に気に入っているのは、バイナリが 1 つあるということです...それだけです。バイナリの乱雑さはなく、この言語またはその言語のスクリプトはなく、バイナリ上ですべてを実行します。