2012-02-13 16 views
4

私はどのように記述してありVCS多くがありますが、もっとたくさんの記事/ブログ/ ... ...私はここに繊細な主題に触れた場合、少なくとも、簡単ではないようバージョン管理システムで特定の変更を見つけるにはどうすればよいですか?

を知りません彼らは効率的です。また、コードが必要ないときにコードから削除するための提案(クリーンコード)もあります。 「いつでも迷子にならない」、「いつも戻ってくる」などの文章が常にあります。

私はあまりそれに従うことができません。特定の1つのプロジェクトに取り組んでいる開発者がいくつか存在するとしましょう。新しい要件がシーンに表示され、コードの作成、変更、削除が行われます。そしてうまくいけばリファクタリング。

実際には、特定の機能が必要な場合があります。その後、ドロップしてから後で再追加します。つまり、すでに書かれたコードがありました。そのコードは「必須」の段階で書かれ、「それ以上」の段階で削除されました。 「再追加」段階ではどうなりますか?コードを書き直すよう提案する人もいますが、ここではそのオプションを考慮しません。実際には、「古い」コードには当時の問題の修正が含まれている可能性があります。

プロジェクトは小規模ではなく、多くのクラス、多くの論理、多少の人事異動など、あなたはそのアイデアを得るでしょう。 IMHO少なくとも1人の開発者から、コードが書かれていることと起こった場所(ブランチ名を含む)があることを常に覚えておくことは、常に公正ではない。

はまだ削除され、特定の方法であったと私は、その名前についての漠然とした推測を持って

  • ような質問に答えるためにVCSからのサポートはありますか?
  • ここにif文があることは間違いありませんが、どうしたのですか?
  • ...

私は1 VCSにこの質問を制限しません。それはもっと一般的な質問でなければなりません。誰かが気にしているなら、現在Mercurialを使用しています。

答えて

0

これは最高で扱うシナリオの一種である:(あなたは機能がマージされ、もうしたくない場合やreverting)すべてのあなたがマージされている

  • 多くの機能ブランチ
  • 1の統合ブランチ統合テストを実行するために、次のリリースで使用する必要がある機能(「What is a useful Branch Versioning Strategy?」で説明したように)

これはその中で、あなたは簡単に1つのブランチからコミットのセットをチェリーピック/リベース/マージすることができ、DVCS(Mercurialは、Gitの)と関係する方が簡単です他にも、canceling commits you don't want to see。 「ものを見つけること」について今


:DVCSでリビジョンがCVCSにおけるよりも小さくなる傾向があるので

は、あなたが自分の中に単離された「小さなこと」で終わるあなたが得ることができることをコミットそれらがマージされているかどうかを確認してください。また、DVCSと簡単です何

は次のとおりです。(あなたが一緒に、それらをsplitting them or mergingをコミットを再配置することができるので)

  • は、特定の取り戻すの変更が向上し、コヒーレント変更セットで明確な歴史を保ちますよく確認されたコミットで隔離された変更(同じリビジョンの他の変更と混在しない)。
  • finding a specific content within commits
+0

ありがとうございますが、私の質問には答えません。私は成長するコードベースで_finding_ものについて質問していました。多くのコードがさまざまなブランチにコミットされ、マージされるかどうかはわからないので、範囲外の小さなものを失う可能性は高いです。 – sjngm

+0

@sjngm:ok、答えを編集し、あなたの質問に関連性の高いセクションを追加しました – VonC

+1

私は参照してください。 'git log --oneline -S'(あなたが言及した)(http://stackoverflow.com/a/7909283/483113)は、私が探しているものをかなりするようです。 [docs](http://linux.die.net/man/1/git-log)によれば、 '-S'は文字列が消えた場所の結果も表示します。きちんとした機能。 – sjngm

関連する問題