7 に答える
Bazaar vs. Gitの記事も読んでいると思いますが、最終的には、「機能豊富なコード管理」に関して何を求めているかということになります。
コード管理によって、ファイル(およびディレクトリと名前の変更) を参照している場合は、Bazaar を使用してください。
コード管理によってコンテンツ管理を見ている場合、Git はまさにそれを管理するように設計されています (たとえば、ステージング領域では、コミットしたい現在のコンテンツを記録できます。現在のブランチでコミットしたくない変更)
確かに、Git に対するLinus の最初のビジョン(2005 年 4 月) をもう一度読んでください。あなたがそれに同意するなら、おそらく Git はあなたが望むものを提供してくれるでしょう。要するに:
- 非常に単純なモデル (blob-tree-commit-tag)
- メタデータは追加されていません (たとえば、名前の変更を追跡するため)
- 次のような「強力な」原則:
- 「ファイル」は関係ありません。重要なのは、「コンテンツ」がツリー内でどのように移動したかだけです
- 本当に重要な唯一のレベル、つまりプロジェクト全体で何が変更されたかを追跡する SCM があります。定義上、「プロジェクト」は他のファイルに依存するか、プロジェクトではないため、より小さな粒度では、実際にはどの情報もまったく意味がありません。
この「すべてのプロジェクト」という概念は、実際にはプロジェクト管理の点で Git の強みであり限界でもあります。1 つのGit リポジトリにすべてを入れようとするべきではありません。
それは個人的な好みに帰着しますが、単純明快です。
私は Bazaar を使っていますが、非常に簡単です。Git のステージング エリアの概念は優れた柔軟性を提供しますが、複雑さも増します。4 つのコマンド (add、commit、merge (おそらく push/pull)、および log または qlog) のようなものを使用して、Bazaar でコードを非常に簡単に管理できます。複数のブランチが必要な場合にのみ、merge が必要です。
通常、Bazaar は正しいことをしているように見えます。ばかげたことをしたり、ばかげたことをさせたりして、本当に問題を抱えたことはありません。
それはあなたの個人的な好みによると思います-両方とも議論があります。私は0.8日から数年間、個人的なプロジェクトにbzrを幅広く使用してきましたが、昨年はgitに切り替えて、少なくともソースコード管理については振り返りませんでした。
私は怠惰すぎて自分の印象を書き直すことはできませんが、要約すると次のようになります。
- bzrは、プラットフォーム間でより一貫して機能します
- bzrはより発見しやすくなっています(ドキュメントがあれば、セミコンピテントユーザーなら誰でもbzrを使用できますが、gitではそれほど真実ではありません)
- bzrはAPIの方法で拡張するのが簡単で、gitはunixの方法で拡張するのが簡単です(パイプ)
- gitは非常に強力なIMHOです。特に、名前の変更とコンテンツの追跡に対する彼らのアプローチは、多くの場合に適切であると私は確信しています。
- bzrrevnoシステムは私見では良くありません。見た目はシンプルですが、多くのブランチを持ち始めてメインラインを変更すると、非常に混乱します。
Bazaar の開発は停止しました。最後のリリースは 2.6 で、日付は 2013-08-04 です。2015 年 4 月の時点で、それ以降のコミットは 20件未満です。
バージョン管理を開始する場合は、アクティブなものを検討する必要があります (ほとんどの場合、これは Git または Mercurial になります)。
編集 1: 私の投稿以降に 2.7 のリリースが行われましたが、プロジェクトが基本的に 1 年あたり約 10 件のコミットで死んでいるという事実は変わりません。
編集 2: Bazaar よりも活発なBreezyと呼ばれるバザーの分岐点があります。これが本当に活発なプロジェクトになるとは思えませんが、少なくともこれはツールが維持されることを意味します (たとえば、Python 2 の終了後も存続する必要があります。Breezy の目標の 1 つは Python 3 への移植です)。
Bazaar は ubuntu と非常によく統合されています。私は長年 ubuntu を使用しており、他のよりマニアックなディストリビューションに切り替えるのにうんざりしていますが、意味がありません。私は git/mercurial coz bazaar よりも bazaar を選択します。これは、通知が Ubuntu に非常によく統合されているためです。さらに、大きなプラスであるLaunchpadから無料のホスティングを利用できます.
Gitがはるかに優れていることの1つは、多くのブランチを処理することです。bzrよりもはるかに高速で、ソースコードの複数のコピーを必要としません。すべてのブランチは同じディレクトリ内にあります。特に、リポジトリが小さくなく、バイナリファイル(合計180MB)も含まれているため、bzrで使用していたよりもはるかに頻繁にgitブランチを使用しています。
編集:実際には、私は間違っています。--no-trees+軽量チェックアウトはGitのように機能します。ありがとう、FryGuy。ああ、そして私は有用な情報を持っているこのブログエントリを見つけました。
git vs bzr/hg を使用する一番の理由は、github が優れているからです。Launchpad は問題ありませんが、github は検索、ソーシャル、スタイルが適切です。
技術的には、多くの点でランチパッドの方がおそらく優れています。マージ、統合ビルド システム、およびその他の機能により、ランチパッドは多くの人にとって魅力的なものになっています。github のビルトイン エディタ、要点... そこにはランチパッドにはないフローがあります。視覚的に、社会的に、競争はありません。