独立した開発者向けのバージョン管理?


60

独立した開発者であれば、バージョン管理を使用する価値があると思いますか?リポジトリを自分のコンピューター、またはバックアップとして使用できる他の場所に保管していますか?


54
薬剤師に「薬剤を整理された方法で保管するのか、それともすべてを引き出しに入れるべきなのか?努力する価値があるのか​​?」と尋ねるのが楽しみです。
エリック

23
このすばらしいソフトウェアを1週間真っすぐに作成することを想像してください。次に削除します。あなたならどう思う?ストレージだけではありません。先週機能した何かが壊れたとき、あなたは何が変わったのかを見ることができ、通常あなたが破ったものを見ることができます。backup001およびbackup_backup001フォルダーがソースと混在している「プロフェッショナル」な開発者がまだいます。まだ若いうちに良い習慣を身に付けましょう。
エリック

@Erik Yuck、バックアップフォルダーは厄介です。私はプロジェクトにソース管理を使用していますが、頻繁にコミットするのはあまり得意ではありません。
ヴェドシティ

回答:


61

分散型ソース管理(Mercurial、Git、Bazaarなど)を使用すると、SVN / CVSよりも優れた利点が得られ、インディの場合に使いやすく、便利で強力になります。

  1. ローカルでコミットします。プロジェクトディレクトリは、完全な履歴を持つレポジトリです。そのため、サーバーを用意する必要はなく、リポジトリで直接コミットし、同じコンピューターに複数のリポジトリを作成できます。時々開いているラップトップを使用して、作業を続行しますか?すばらしいです!サーバーをセットアップする必要はなく、後で必要な場合は簡単で、リポジトリ間で変更を「プッシュ」および「プル」するだけです。
  2. 実験を容易にするために作られました。多くの場合、コードを汚染することなく機能についてのアイデアを持っている必要があります。SVNとCVSを使用すると、既に分岐システムを使用し、機能が望んでいるほど良くない場合は分岐を捨てることができます。ただし、この機能をトランクバージョンとマージする場合、驚きを修正するのは非常に困難です。Git、Mercurial、およびBazaar(少なくとも)を使用すると、マージとブランチが非常に簡単になります。必要に応じて、レポジトリを複製したり、しばらく作業したり、コミットして削除したり、メインレポジトリに変更をプッシュしたりすることさえできます。
  3. 組織の柔軟性:先に指摘したように、必要に応じて組織するリポジトリを持っているので、一人で始めて、組織を変更することで他の人があなたと協力できるようにするのは簡単です。組織は課されていないので、あなたはそれを設定し、それを無駄にするだけです。私は自分のコンピューター(ラップトップ/デスクトップ/サーバー)の間で変更をプッシュ/プルするだけでよく、開発者はまだ一人です。Mercurialを使用すると、仕事を複製するのに役立ちますが、ラップトップで外で考えていた機能にも取り組み、デスクトップ上の他の機能で働き続け、ラップトップの変更をデスクトップまたはサーバーにプッシュして、デスクトップ全体をマージします+ラップトップとそれを(バックアップおよび将来のチームワークリポジトリとして)サーバーに配置します。
  4. バックアップのセットアップに役立ちます:中央リポジトリ(パブリックの場合はGitHubで、BitBucketのプライベートリポジトリで)をセットアップすると、コンピューターを起動するたびに実行されるスクリプトを簡単に記述でき、そのスクリプトを渡すことができます定期的にあなたの仕事の自動バックアップを作成するようにあなたの友人に。私がやっていることですので、今では仕事を失うのは簡単ではないと確信しています。

実際、現在、プロジェクトにコントロールソースツールを使用しない理由はありません。以前よりも強力かつ柔軟であり、ニーズに合わせて拡張できるためです。


6
GitHubは常に存在します
HedgeMage

8
または、Mercurialを使用している場合はbitbucket.org
テレンスポンス

7
Dropbox上のローカルファイルシステムリポジトリを使用するMercurialは、単一の開発者にとって非常にうまく機能します。
ピーターブリード

1
@Guillaume:1人の開発者がDVCSの「分散」側面を使用できます。私がやります。例えば、私は、コンピュータA上で動作することができます私のUSBキーに私の仕事をプッシュし、コンピュータBのこのUSBキーからプル
barjak

1
@Guillaume "Distributed"は技術的な側面であり、組織的な側面ではありません。コミットされたコードの検証のみが許可されているインテグレータを持つ組織では、集中管理されたソースシステムを使用できます。これは可能ですが、ツールが集中化されているため、セットアップが困難です。しかし、それはまだ直交問題です。
クライム

34

独立した開発者にとって、ソースコード管理はまったく役に立たない。

  • 独立した開発者は間違いを犯さない
  • 独立した開発者は、うまくいかないリビジョンに行くことはありません
  • 独立した開発者は複数のバージョンを持つことはないため、ブランチには使用できません
  • 独立した開発者は、昨日または先週の変更を気にしません
  • 独立した開発者はバックアップを必要としない

「依存開発者」と呼んでください。Mercurialリポジトリは、デスクトップ、ラップトップ、USBバックアップドライブ、bitbucket.orgの間で簡単に複製できます。私は依存して育ちました、そしてそのようにそれが好きです!


6
この回答は皮肉ですか?

4
@kurtnelle:非常に!
スティーブンA.ロウ

1
Kewlio、チェックだけ。

21

何故なの?

私はソロ開発者で、個人プロジェクトにはBitBucketとMercurialを使用しています。コードを元に戻してフォークする機能を持つことは、あまりにも良いことです。


8
BitBucketの+1-無制限のプライベートリポジトリを無料で提供します。
ジョン相良

2
無料のプライベートリポジトリが、GitHubではなくBitBucketを使用する理由です。
テレンスポンセ

4
無料のプライベートレポ?? 私をgitからhgに変換したかもしれません。
ゴーティエ

@Gauthier、うん、BitBucketには無料のプライベートリポジトリがあります。しかし、それらが無制限かどうかはわかりません。
テレンスポンセ

1
それでもgitをbitbucketで使用できます。実際、sshキーを含むgithubから直接インポートします。ちょうど動きましたが、それでもgitを使用します(私はそれが好きです!)
ダニエルキャサリー

1

個人的には価値があります。私のプロジェクトはすべてgitリポジトリにチェックインされています(ハードウェアに障害が発生した場合に備えて、すべてを複数のマシンに保持しています)。最も便利な機能は、分岐(コードベースの半分を台無しにする実験を実行できるようにするためで、永久に爆発する心配はありません)と元に戻す(基本的にはステロイドで元に戻すだけです。通常の元に戻す範囲外の間違い)。


1

はい。とても便利です。私の友人マット・ギャラガーが投稿この優れた記事彼の「ココア愛をこめて」のiOS / MacOSの開発ブログにわずか数日前に、この非常に主題にします。

この記事はMacとGitを中心にしていますが、基本をカバーしています。

また、以下のStackExchangeの質問(およびその回答)に興味があるかもしれません。


1

価値??マスト!ソース管理を使用しない場合、ソースを管理しません。それは悪いことです。戻すことはできません。変更を追跡することもできません。入力したばかりのダミーのバグを見つけるのに何時間も費やします。バックアップされたサーバーに保存することをお勧めしますが、コンピューターで適切なバックアップ方法を使用することもできます。


2
私は実際にソース管理を使用しますが、過剰なエンジニアリングや過剰なものの採用なども行う傾向があります。私は仕事でこれで有名です。繰り返しますが、私を含む私が働いているプログラマーはプログラマーとして他のどこでも働いたとは思わず、私たちのほとんどはまだ高校生です。
ヴェドシティ

1

絶対にソース管理を使用します。次に、ビルドサーバーをセットアップし、ビルドおよびテストプロセスを自動化します。中央リポジトリのソースコミットからビルドをトリガーします。私はこの方法で3年間独力で仕事をしてきましたが、それは素晴らしいことです。


0

はい。

独身の開発者でさえ、過去のリビジョンのコードの状態を時々見る必要があります。そして、重要なすべてのものをバックアップすることは常に良い考えであり、それはすべての人々に当てはまります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.