32

純粋関数型言語を使用すると、不純な命令を使用するよりも多くの利点がありますが、低レベルのシステム言語を使用すると、CPUの計算方法の正確な手順を指定できるため、特に命令型の場合は特に、はるかに高いパフォーマンスを実現できます。結果。

高性能が絶対に必要なツールのリストがある場合は、VCSをそのリストの一番上に置き、gitはこれを非常にうまく達成します。ただし、パフォーマンスは、他の多くのタイプのバージョン管理システムに対するgitの唯一の利点ではありません。

gitチームは安全でないcコードを非常にうまく処理しており、型システム(またはそれが書かれている言語の他の機能)について心配することはありません。それで、darcsを使用しなければならないhaskell開発者がたくさんいるのはなぜですか完成品のみを使用するのはいつですか?

4

2 に答える 2

73

Darcsは、時系列の履歴ではなく、パッチのコレクションを管理します。これについての詳細は、Gitとの違いを文書化したdarcswikiページにあります。。この違いは、パッチを順番どおりにインタラクティブにプルするdarcs機能によって示されます。たとえば、「開発」から「テスト」までのチケット番号と一致するコミットタイトルを持つすべてのパッチをプルできます。Darcsは、これらのパッチが依存していた他のページも自動的にプルされるようにします。この重要な機能を使用すると、維持する必要のあるブランチとリポジトリがはるかに少なくなる可能性があります。Gitでは、作業を行う前にブランチを作成すると非常に役立ちますが、Darcsでは、関連するコミットに同じチケット番号を記載している限り、それは問題にならないことがよくあります。私はこれに基づくワークフローを100,000kのLoCプロジェクトで広範囲に使用しました。その技術的な違いに加えて、darcsは非常にユーザーフレンドリーです。コマンドの数は少なく、ほとんどのコマンドはデフォルトでインタラクティブであり、何をすべきかを尋ねられます。

darcsの長所と使いやすさのために、私はgitよりもはるかに好みます。gitはオープンソースプロジェクトでも定期的に使用しています。Darcsは非常に簡単に使用できるため、一部のプロジェクトに貢献するためにgitを学習する必要がある場合でも、選択可能な他のプロジェクトでdarcsを使用することを楽しんで利益を得ることができます。

于 2012-01-12T15:31:23.253 に答える
23

一般的に、ユーザーの特定のコミュニティは、あるテクノロジーまたは別のテクノロジーに引き寄せられると思います。これは、テクノロジーがコミュニティの言語を使用している場合に特に当てはまります。Darcsの作者や初期ユーザーがHaskellの開発者としてかなり有名であり、影響力が大きい可能性もあります(私にはわかりませんが)。

他の例もあります。たとえば、MercurialはPythonコミュニティでより人気があるようですが、他の言語はGitを使用しているようです。

特定のソフトウェアを使用した後は、利点がある場合でも、別のソフトウェアに切り替える価値がない場合があります。

正直なところ、あなたが一番好きなものを使ってください。この時点で、hg、git、およびsvnをインストールし、それらを使用するための基本を理解していることがほぼ必要です。Haskellを使用している場合は、おそらくこのリストにDarcsを追加する必要があるようです。

于 2010-03-23T15:56:42.277 に答える