1

これは一部の人にとっては非常に基本的な質問のように聞こえるかもしれませんが、私は転覆に慣れていないので、この質問に対するアドバイスをお願いします:

人 B も私の前に変更を変更してコミットした場合、コーディングに数日かかる大規模なコミットをどのように処理すればよいですか? 彼のコミットは私と同じファイルに関するものでした。

要約すると、ワークフローは次のとおりです。

  • まだプッシュされていない rev.1 に基づいてコミット A
  • rev.0 に基づいて B をコミットし、すでにプッシュされており、rev.2 を作成しています

rev.1 と rev.2 の間で変更されたコードの量を考えると、コミット A をプッシュするのは危険ですか?

初心者の質問で申し訳ありませんが、プロジェクトのコードを壊さないようにしたいだけです。最悪の場合、レポを rev.2 にチェックアウトして、コードの一部を書き直します。

4

1 に答える 1

5

SVNは、最後に更新してからコミットしたいファイルのいずれかが他の誰かによってコミットされたことを検出した場合、コミットを許可しません。代わりに、コミットする前に「svnupdate」を実行する必要があることを通知するエラーメッセージでエラーが発生します。「svnupdate」を実行すると、他の人の変更がデータを失うことなくローカルファイルに統合され、すべてが引き続き機能することを確認したら、先に進んで独自のコミットを実行できます。

これはそれほど危険ではありません。最悪のシナリオは、他の人があなたが行ったのと同じファイルの同じ行をたくさん変更した場合です。その場合、「svn update」は競合を引き起こし、競合するファイルに移動し、手動で編集して、保持する行と削除する行を選択する必要があります(ファイルにはバージョンと他の人のこれらの行のバージョンであり、ファイルに明確にマークされているので、これは思ったほど悪くはありません)、競合するファイルに対して「svnresolved」を実行してSVNに通知します紛争の世話をしました。その後、通常どおりにコードをコンパイル、テスト、およびコミットできます。

于 2013-01-03T01:43:23.237 に答える