ソロ開発者にDVCSを使用する利点はありますか?


19

今、私は自分のサーバー上で視覚的なsvnを使用し、私のマシン上でankhsvn / tortoiseを使用しています。それは十分に機能し、変更する必要はありませんが、DVCSを使用することの利点を確認できる場合は、試してみてください。

ただし、他の人なしでそれを使用しても意味や違いがない場合は、気にしません。

繰り返しになりますが、あなたが唯一の開発者であるときにDVCSを使用する利点はありますか?


1
:stackoverflowの上で同様の記事を参照してくださいstackoverflow.com/questions/179161/...を。あなたが知る必要があるすべてはそこでうまくまとめられます。
ysolik

それで、私の質問は、これとまったく同じように閉じられました。残念ながら、この質問は私の答えではありません。あなたはソロ開発者のときにマスターからプッシュおよびプルしますか、それともブランチとマージをしますか?私はちょうどあなたがソロのときにDVCSを使用する正しい方法を確認しようとしています
チェイスフロレル

1
バックアップは本質的に別のクローンです。それはいつか非常に重要かもしれません。また、gitツールはsvnよりも数年先です。

サーバーから離れてラップトップで作業することはありますか?
JBRウィルキンソン

回答:


19

はい!最大のメリットは、多くのDVCSが提供するより良い分岐+マージのサポートだと思います。分岐とマージは、SVNの苦痛の種です。短期間で機能を追加したり、バグを修正したり、実験したりするために、短命で短いブランチを作成するだけの価値がないのは面倒ですが、マージも面倒で長寿命のブランチを作成するのも苦痛です。一方、Gitでは分岐とマージが非常に簡単なので、作業中のほぼすべてのバグ修正または機能に対して(ローカル)分岐を作成します。

レポジトリの視覚化、ログのgrepなどのためにGitが提供するツールは、SVNよりもはるかに優れていると思います(ただし、DVCSに固有のものというよりはGitのものです)。

また、DVCSは中央サーバーを必要としません。SVNを開発者として使用する場合、プッシュするローカルリポジトリを作成する必要があります。これはGitの要件ではありません。すべてのリポジトリには完全な履歴が含まれているためです。結果として、レポジトリのアーカイブはプロジェクトを圧縮するだけの問題です。バックアップする「中央データベース」はありません。

しばらくSVNを使用してから4年ほど前にGitを使用し始めましたが、振り返ることはありません。



4
DVCS マージを容易にしないが、DVCSユーザーはマージを実行する際により練習されるという見方があります。これにより、マージの主観的な外観がより簡単になります。もちろん、重要なのは主観的な見方です。
リチャード

3
DVCSはgitだけとは限りません
マーフ

6
@Richardしかし、それは間違っています。一元化されたツールは、複雑なマージをうまくサポートしない線形の履歴を持つ傾向があります。
代替

2
@Murph:これは本当ですが、私はGitを使用しているため、例で使用しました。
ミパディ

7

私は個人的なもののためにDVCSをよく使います。(私はgitの$ HOMEにいる人の1人です。)いくつかの利点があります。

  • これにより、ラップトップとデスクトップ、およびラボのコンピューター間の複製が非常に簡単になります。これはSVNにも当てはまりましたが...
  • インターネットにアクセスできないときでも、ラップトップでコミットできます。
  • バックアップはと同じくらい簡単git pullです。
  • git citoolコミットする前に関連のない変更を多数行った場合でも、多くの変更を論理的なサイズのコミットに分割するために使用できます。Subversionでこれを行うツールを知りません。
  • オープンソースプロジェクトにパッチを適用する必要がある場合、パッチを適用するソースツリーの2つ目のコピーを作成するよりも、プロジェクトディレクトリに新しいgitリポジトリを作成することで、物事を整理しやすくなります。(完全にハードディスクのどこかに別のリポジトリが必要なので、Subversionでこれを簡単に行うことはできません。)
  • 簡単な分岐機能を使用して、他の人から受け取ったリビジョンをチェックインします。たとえば、顧問がリポジトリにアクセスできない場合でもアドバイザーと会議論文を編集する場合、彼に論文のコピーを送信し、送信したバージョンに基づいてブランチでリビジョンをチェックインすることができます彼は、その後git merge、彼のリビジョンを私がその間にやったこととマージするために使用します。

Gitは、論理的なチャンクでのすべての変更について考えることに慣れました。これは、Subversionがこれまでに行った以上のことです。


(またはミラーのgitフェッチ)

5

私の母は、手遅れでモデムをオフにします。DVCSを使用すると、モデムがオフになった後もVCSを引き続き使用できます。


1
「飛行機から仕事ができる」または「bitbucket.comがダウンしたときに仕事ができる」と言いますが、オフラインのケースをカバーするために+1します。
ワイアットバーネット

また、3Gネットワ​​ークのない屋外の場所。
リンキーズ

3

さて、デフォルトの答えは、「(現在使用しているものは何でも)うまくいくなら、なぜ変わるのか?」です。

しかし、はい、変更の理由がなくても、「古いモデル」よりもDVCSを使用する方が多少簡単だと思います。以下はMercurialについてのもので、私が最もよく使用します。そのため、使用するシステムに応じて走行距離が異なる場合があります。

  • 本当に使いやすい-私は1時間かそこらで必要なすべてのコマンドを見つけました
  • すべてがローカルです(リモートサーバーをオンラインにする必要はありません)
  • 非常に簡単な分岐/マージ-あなたはそれらのことさえもう考えない
  • 簡単なクローニング(また、一種の分岐)-そして一般的に、はるかにユーザーフレンドリーなインターフェース(私はそれがウィンドウ上のgitよりも楽しいと感じました;また、いくつかの概念はより簡単です;すなわち、私の側で考える必要はありません。 VSをいじるのが少なくなり、より多くの作業が行われます)
  • SVNでうまく動作します

便利なヒントのあるMercurialの紹介ブログ(きれいな色;-) へのゲートをジャンプします


うーん、CVSは以前は私たちのために働いていましたが、私たちがそれに移動したときの転覆ほど近くにはありませんでした。...ので、私はMercurialが今より良いオプション(私はFogBugzのを使用し、特にとして)とも信憑性の可能性であるかもしれないかどうかを見ていますまさにこの理由のために-新しいおもちゃはあなたに新しい機能を与える
Murph

3
SVNからMercurialへの切り替えは、私にとって啓示でした。Joelの素晴らしいhginit.comからインスピレーションを受けたので、振り返ることはありません。
アダムクロスランド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.