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