2009-03-30 3 views
0

最近私は約2年前に最後に取り組んだ古いプロジェクトを再訪してきました。明らかに、この時間の間、私はプログラミングの最善の方法についての新しい習慣を学びました。テストを保持し、実装を廃止し、プロジェクト全体を再実装するのはかゆいところがあります。それは大規模なプロジェクトではなく、私はそれを書き直すことで多くを失うことはないと信じています。新しく書き直されたプロジェクトの古いトランクを "撤去する"べきですか?

しかし、私はバージョン履歴について何をすべきかわかりません。私がそれを更新すると、新しいバージョンはそのコードの3〜4%だけを古いバージョンと共有する可能性が高いです。さらに、変化は、広範囲に及ぶ傾向があり、クリーンチェンジセットを維持しようとすると、不満と無駄を抱くことになります。これを考えると、潜在的な開発者に古い無関係なバージョンをダウンロードさせることを強制する必要はないようです。

私が検討してきたオプションの1つは、トランクをold-trunk/のようなブランチに移動し、空のブランチで開発を開始することです。私はこれが良い考えであるかどうかは分かりません.2つのトランクを持つと混乱を招く恐れがあります。どの質問に私をもたらします:

それはどう思いますか?トランクを「リセット」したプロジェクトに遭遇した場合は、それを混乱させるでしょうか?

答えて

4

トランクに「OldVersion」というラベルを付けるだけで、同じ場所で開発を続けるのはなぜですか?この方法で、二重ブランチを完全に回避し、古いバージョンのコードにアクセスする方法を維持します。別の製品を開発している場合を除き、同じトランクを維持したいと考えています。

+0

))私たち80の残りのためのデイリーWTFに飼料を投稿を開始、その後 )Oをそして、 「古い」トランクと「新しい」トランクの間で共有されるコードはほとんどありません。しかし、古い無関係なバージョンはまだバージョンリスト、プロジェクトの要約などに表示されます。 –

+0

@John、IMHO、歴史を維持することは良いことです。翻訳中にこれらのランダムなコードをヒットすると、コードを文脈に入れるために履歴を持つことは良いことです。バージョンは、現在のバージョンのコードにつながるプロセスの一部であるため、無関係ではありません。 – JaredPar

+0

私はただの幹にこだわることに決めました。私は古いコードを削除し、コミットして、新しいコードで作業を開始します。 –

0

私は$トランクにタグを付けるので、 "コピー"があります。リリースされた最後のバージョン、またはそれを開始する前の日付にタグを付けます。私は実際にリリースされた日付にタグを付け、実際の日付自体にタグを付けます。 (あなたのシステムがサポートしている場合は、タグのラベルを使用してください)。

タグが付けられたら、必要に応じて削除/名前の変更/オーバーホールを行います。ちょうどバージョン履歴がそこにあります。また、アーカイブ目的でラベル付け/タグ付けされた完全なコピーがあります。

0

あなたがSVNを使用していると仮定すると、本当に余計なことはありません。リファクタリングを開始したリビジョンを覚えておいてから、トランクの作業を続けてください。古いコードから新しいコードへの変更の履歴が記録されるので、空のブランチに移動するよりも優れています。

しかし、最初から何かを書き、ちょっと古いコードをコピーする予定がある場合は、新しいリポジトリで起動することを考えなければならないかもしれません。

+0

「rm -rf *」を除いて、旧バージョンと新バージョンの間に重要な履歴はありません。おそらく、READMEとmakefileは比較的そのまま残されますが、それ以外はほとんどありません。 –

+0

それから、新しいリポジトリが最善の選択肢になると思います。結局のところ、それはまったく新しいプロジェクトです。 –

0

古いバージョンを削除する必要はありません。すべての変更とチェックインを行います。新しい開発者は古いコードをダウンロードする必要はなく、常に新しいバージョンをチェックアウトします。

0

いいえ、それは私がそれに参入する前にプロジェクトのドキュメントが示すように、私を混乱させません。私たちは皆、やり直す必要がある、そして率直に言えば、すべきである。

それが安全でないとHIPAA準拠していないと、彼らはあなたが再コードそれもらおう皆に知らせる。前述のように

+0

これは個人的なプロジェクトなので、私は許可を求めることについて心配する必要はありません。コードがDWTFに適しているとは思えません。特に悪いコードではありませんが、それが何をするのかがはるかに複雑です(私はそれを書いたときYAGNIについて聞いたことがありません)。 –

+0

コードがそれと異なる場合、なぜ新しいプロジェクトはありませんか? – Keng

+0

私はその名前が賢明だと思います:) –

関連する問題