1

私は応用数学者であり、最近、科学的応用のための生産コードの開発を含むプロジェクトに参加しました。コードベースは小さくなく、Webアプリケーションの一部としてデプロイされます。

私が参加したとき、コードはリビジョン管理システムなしで奇跡的に維持されました。サーバーには中央フォルダーがあり、研究者はコードを操作する必要があるときにそこからコピーしていました。このルートディレクトリ内には、コードのバージョンが異なる一連のディレクトリがあったため、人々は見つけた最新バージョンで作業を開始し、変更を加えて新しいバージョンを作成しました。

Mercurialリポジトリを作成し、それにすべてのコードバージョンを追加して、すべての人にそれを使用するように説得しました。ただし、Mercurialに移行して以来、バージョン番号をアップグレードする必要性はほとんど感じられませんでした。厳しい使用でも、hg copy改訂履歴を保持することができます。

ここで、このコードベースを維持するためのベストプラクティスに関するアドバイスが必要です。RCSの下で、異なるバージョンのフォルダーをリポジトリに保持することは意味がありますか?コードの単一のコピーをリポジトリに保持する場合、バージョンを追跡する最も一般的な方法は何ですか?READMEファイル?バージョンを指定するリポジトリの外部にコードのスナップショットを保持する必要がありますか?物事をそのままにしておくのは理にかなっていますか?どのような戦略を使用していますか?

私たちのチームはたくさんの科学者であり、そのようなレポを維持する方法については誰も経験がないので、私は一般的に行われていることに興味があります。

4

2 に答える 2

6

バージョン管理システムを使用する場合は、それらのバージョン フォルダーを忘れてください。完全に。Mercurial がそれを行います。リポジトリは、プロジェクトのすべてのファイルの完全な履歴です。

バージョン番号を追跡する一般的な方法は、タグを使用することです。バージョン番号のタグを変更セットに割り当てます。

バージョン管理の「入門ガイド」として、この本をお勧めします: Version Control By Example。無料で、CVCS、DVCS、基礎、リポジトリとは何か、基本的なコマンドなどについて最初から説明しています。また、3D ファイル システムのように、ディレクトリ x ファイル x 時間という興味深いアナロジーもいくつかあります。わかりやすくて面白い本なので、オススメです。

TortoiseHgのような GUI ソフトウェアもお勧めします。日常の使用では、ほとんどの時間をコンソールで過ごしますが、GUI は特に最初にすべてのコマンドをまだ知らない場合に非常に便利です。一番いいのはグラフです。何が起こっているかを視覚的にフィードバックできます。

于 2012-07-31T19:20:15.623 に答える
0

これは、Mercurialの優れた簡単な紹介です。まず、フォルダを使用してさまざまなバージョンを保持することがそれほど優れていないことについて説明します。

hg copyコマンドを使用している場合は、おそらく間違った方向に進んでいると思います。私はそれを必要としませんでした;)

チュートリアルでは、私が個人的に好むhgのコマンドラインバージョンについて説明しています。リポジトリの概要が必要な場合は、「hgserve」を実行してWebブラウザでlocalhost:8000を開くことができます。TortoiseHGよりもそれが好きですが、多くの人が純粋なGUIツールを望んでいることを理解しています。

于 2012-08-02T13:10:53.903 に答える