解決策が正常にコンパイルされ、正常に構築された場合にのみコミットする必要がありますか?コードが非常に大きな変更で受け入れられる「途中」コミットは、コードが数時間では機能しないままになりますか?SVNコミットの規則
答えて
はい、問題ありません。
バージョン管理はバージョン管理用です。バックアップではありません。コンパイル可能なコードのバックアップを処理するためには、別の場所に別のものを用意しておく必要があります。これは実際にバージョン管理システムに回り込むことがあります。 に現像剤を強制的に
いずれかの方法コードをチェックインするを待つかの時点で失われたコードの差し迫った災害です。
コードが長時間にわたって壊れないようにするには、バージョン管理ではなくcontinuous integrationのジョブを使用します。
あなたの会社がCIを信じていなくても、それをあなたのマシンの1台に置くことができます(JEEのただ1つの戦争で、あなたを遅らせることはありません)。 – IAdapter
あなたの会社がトランクを常にコンパイルするように制御することができれば、CIは彼らの夢のような夢でなければなりません...それはトランクがコンパイルできるようにして数分以内に犯人を指摘します... –
私は質問がポリシーあなたはその政策の技術的強化についてではなく) –
BrianとAaronのコメントに加えて、私はブランチや、もっと極端な解決策としてGitのような分散システムを使って、安定性と最新のコードとの間のこのトレードオフを緩和することもできると付け加えます。 「頻繁にコミットしてビルドボックスにエラーを発見させる」というのが私の大好きなポリシーですが、コードをチェックアウトするための安定した場所が必要な場合は、ブランチが必要です(もちろん誰かがそれを維持しなければなりません)。私の意見で
私はチームメンバーにこの方法をお勧めします。ビルドを壊す恐れがなくなります(フィーチャーブランチは通常は自動的にビルドされないため)。また、リポジトリに変更を加えるセキュリティも提供します。また、私のチームは自分たちの機能ブランチを再統合することを奨励するので、自分のコードをより良くマージする方法を学ぶのに役立ちます。 – arcain
@arcain SVNに組み込まれているマージ管理を使用していますか?それはどれくらいうまくいくのですか?私は数ヶ月後に面倒な機能のマージによって燃えてしまったので頼みます。私たちは古いSVNバージョンを実行していたので手で並べていました。 –
私たちはTortoiseSVNを使用していますが、エラーでマージフラットアウトが失敗することはありませんでしたが、偶発的にブランチにコミットした場合に、わずかな数のリビジョンのロールバックが必要なコミッタによるオペレータエラーのケースがありました。完全なリビジョン範囲を親にマージすることができなかったので、ブランチを自動的に再統合することは選択肢ではなかったので、リビジョン範囲をチェリーピックする必要がありました。これらのケースの中には、ブランチから作業コピーにマージされたrevを無視し、解決されたものとしてマークし、変更を手動でマージするほうが簡単でした。 – arcain
私の経験では、少なくともは、変更の急変をコミットしないようにしてください。チームがより大きい場合、または開発のペースがより速い場合、より多くのことができます。アイデアは、チームのすべてのメンバーが最新の変更で最新の状態に保たれるということです。 チームメンバーによって各コミット後にsvn update
を実行することを恐れてはなりません。
最新のバージョンに定期的にコンパイルエラーがある場合、これは不可能です。コミットされていない変更や、今すぐ受け取った問題がsvn update
によって導入されたかどうかを確認することは必ずしも容易ではないので、失敗したテストでさえ迷惑になる可能性があります。突然事態がもはや働いていない理由を誰もが解明しようとしているので、仕事は止まってしまいます。
また、変更を中断すると、bisect the source code historyの機能が妨げられます。だから、あなたが単独でやフィーチャーブランチで仕事をしても、それらを避けることは依然として貴重です。
変更を破棄しないようにするポリシーは、通常の小さなコミットと矛盾する必要はありません。大規模な変更は、ほとんどの場合、小さなタスクのリストに分割することができます。それぞれのタスクは、ビルドを壊さない程度の小さなサイズのコミットで完了できます。これには、競合が軽減されるという利点があります。
- XYZを固定に向けて:私は、このような小さなタスクのための私のコミットメッセージにこのようなものを置く傾向があるXYZを固定に向けてアスペクトfooの
- のpreperationにファズをリファクタリング: アスペクトfooは現在動作します
- 固定xyz:aspect ba rは現在動作します
- 1. ジェネリックと規則の規則の規則
- 2. SVNのコミット後 - /がコミットした後
- 3. git-svn Kerberosをコミットした後のコミット
- 4. 命名規則
- 5. 命名規則
- 6. ドキュメント名規則
- 7. コンストラクタのアクセス規則
- 8. Javaのスコープ規則
- 9. Clojureのスコープ規則
- 10. HTMLコメントの規則
- 11. ポリマーダーツパッケージのレイアウト規則?
- 12. Java MVCパターンの変数宣言の規則/規則?
- 13. F#推論規則としての入力規則
- 14. SonarQube 5.4 svnコミットの行
- 15. Webサービス:svnコミットの更新
- 16. 反復規則+ vCalendar
- 17. NCover除外規則
- 18. serialVersionUID命名規則
- 19. Rails、命名規則
- 20. ビットマスクパラメータ命名規則?
- 21. インテントキー命名規則
- 22. データビニング:不規則なポリゴンから規則的なメッシュ
- 23. 不規則な規則で言語に翻訳する
- 24. 正規表現bashの不規則性
- 25. バイナリファイルをSVNにコミットする
- 26. SVN更新なしコミット
- 27. Fxcopチェック中にSVNコミット
- 28. Railsマイグレーションの命名規則
- 29. Pythonのモジュール命名規則
- 30. cssメニューの命名規則
+1です。同意する。できるだけ頻繁にコミットしてください。それ以上考えないでください。できるだけ多くのことをコミットしてください。私は、利点があり、頻繁にコミットするのに欠点がないことがわかります。 – Upgradingdave
+1。私も同意する。開発者が洞窟で開発を進めて、「楽しいよ!」と言っている間に、ビットとバイトの山を他のプログラマーに投げ捨てることは望ましくありません。状況やその他の要因によっては、ウイルスやハードドライブが壊れたり、ノートパソコンが盗まれたりするなど、1日以上の価値が失われたり、仕事を失った場合は、ポリシーを適用した会社で働いていました。 – jgifford25
@ jgifford25 Eee-yikes !!あなたはストレスをよく補ってくれることを願っています...私はナッツに心配していると思います... –