私たちはCIチームシティとAssemblaを通したsvn setupを持っています。私はソース管理を理解している、私のチームはそれに新しいですか?私たちはどのように仕事を進めるべきですか?現在、私たちの環境は整然としたものではありません。 Tracが私たちのグループのために働くように努めています。私たちはそれぞれの人が自分の支店で仕事をするにはどうすればよいですか?完了したら変更をトランクに併合しますか?または、彼らがトランクから仕事をすることを許可し、うまくいけばTeamcityは悪いものを捕まえるだろうか?Subversion、5人の開発者からなる小規模チームのベストプラクティス?
答えて
1をタグ付けしていますか? チームが構成管理の初心者である場合、短期的な目標は、自分の仕事に最小の妨害を加えて制御された方法で作業させることです。つまり、個人の設定目標を短期的な目標と長期的な目標に分割する必要があります。チームが学ぶように長期目標を再定義する準備をしてください!
2.現在のところ、私たちの環境は整然としているわけではありません。 良い構成マネージャーはいつもこれを考えます。あなたがしたい最後のことは、あなたがプロセスを "本物の仕事"よりも好むという認識を与えることです。革命ではなく、動いて進化をここで考えてください。ソフトウェアと同様に、チームプロセスの定義には「計画」と良好なコミュニケーションが必要です。
3.私はまた、私たちのグループのためにTracを働こうとしています。 良い動き。最初に、TRACはあなたの開発者が何が起こっているかを見ることができます。しかし、チケット、マイルストーン、リビジョン、優先順位、そして開発者を困惑させる混乱を招くツールもたくさんあります。したがって、最初は、svnタイムラインと便利なdiffingツールのビューとしてtracを使用してください。彼らがツールセット自体に慣れているときにはチケット/マイルストーンなどを紹介し、それが得られない/必要がなければこれを使うことはできません。
4.私たちはそれぞれのブランチで作業する必要がありますか?完了したら変更をトランクに併合しますか? 最終的には、おそらく。しかし、分岐/結合があなたのために解決するという問題を定義しましたか?覚えておいても、あなたのチームはこの種の問題になることはありません。ここに私の推薦は、あなたが問題に直面し、あなたの指導の下でチームとしてそれを解決するまで待つことです。
5.トランクをオフにすることを許可して、Teamcityが悪いことを捕まえることを願っていますか? まず、はい。その後、問題が発生したときにCMについて知っている良いことをすべて紹介してください。
覚えておいてください - 偉大な構成管理システムではなく、ソフトウェア製品を構築しています。だから、シンプルにして、より良い製品をチームとして構築できるツール/プロセスだけを使用してください。途中で構成管理の価値を明らかに学んだので、開発者にも学びましょう。それらを導く、それらにプロセスを強制しないでください。明白なもの(「SVNは制御された方法でコードを共有できます」)から始め、あなたの経験を使ってそこから移動します。がんばろう!
私たちはそれぞれのブランチで作業する必要がありますか?完了したら変更をトランクに併合しますか?
私は通常、開発者ごとの支店がぎこちなくて、これは好きではないし、特定の開発者が他の人がこのように作業していることを理解するのは難しいブランチ。すべてのコミットでトランクにマージするように全員に依頼することでこれをいくらか緩和できますが、なぜブランチがあるのでしょうか?
トランクをオフにすることができますか、Teamcityが悪いものを捕まえることができますか?
ここで推奨するのは、開発者のバイインをチームルールにすることです。皆が更新してトランクにコミットし、コミットする前にローカルでテストを実行します。 Subversionのブランチは、機能の個別テストの根拠ではなく、今後のリリースに対応するような一連の機能のセットでより効果的に使用されます。
あなたのCIは、あなたが期待する状態にないことを警告するセーフティネットであるべきだと思います。しかし、開発者が最初に合格しないコードをチェックするべきではないと理解している場合に役立ちます。
1 - 更新
2 - コード
3 - テスト
4 - Update'n'merge
5 - テスト
6 - SVNで
リポジトリに変更がない限り、ループ4と5をループします。 – Scoregraphic
あなたは何を言っているのか分かりません。あなたはそれを改めて気にしますか? – user154366
絶対に必要でない場合はブランチを使用しないでください。変更を行う前にローカルで更新してください。あなたの変更を行います。コードとテストを実行しているときに、リポジトリから更新し、起こり得る競合をマージし、テストを再実行してコミットします。大きな仕事に取り組んでおり、定期的にコードを実行するのが難しい場合(少なくとも毎日)、定期的に更新して、大きな驚きや合併を防ぐ。 – runarM
ブランチをコミット対処するように簡単ではありません彼らがgitにいるように。したがって、私は、ほとんどの日々の作業をトランク内で行う必要があり、ブランチで大きな破壊的な変更が発生するという意見があります。
注:これは私たちが私の会社でやる方法であり、かなりうまく機能します。
似たような状況で私たちは3人のチームであり、自分の経験が限られていても私はソースコントロールを求めています。私はこの記事が例外的に有用であることを発見しました:http://www.ericsink.com/scm/source_control.html
あなたのチームがそれをまだ読んでいないなら、彼らは間違いなく出発点です。
誰もが自分の枝で試してからトランクの方法に合併して、私は間違いから、痛いほど控えめに言っても紛らわしいと伝えます。あなたが最も経験豊かで新しい人たちであれば、そのブランチを一緒にマージする責任を負うことになる可能性があります。楽しいものではありません。
トランクを走っているすべての人は、これまでのところほとんど苦痛を感じていませんでした。あなたはすべて、別々のファイル上で互いの改善の恩恵を受けることができます。矛盾がない限り、差異は自動的に更新され、マージされます。また、あなたのチームはリビジョンコントロールの仕組みに慣れてゆき、徐々にそのメカニックに慣れてゆき、ブランチング&のマージを検討する価値があります。要するに
:それは長期的に報わます
:-)ベイビーステップ。
これは、我々はそれを使用する方法です:
- すべての変更は、実験
trunk
- 何で起こりますか?あなたが満足するまで、それを支えなさい。
trunk
に合併します。 - すべての主要なリリースでは、我々は仕事を進める必要がありますどのよう
私はsvnをこの方法で使用しており、それについては一度も不平を言いませんでした。あなたの戦略は、あなたが開発しているソフトウェアの種類に依存していると思います。私の場合、それは多くの異なる顧客によって使用され、重要な環境(プラントオートメーション)でいくつかの異なるバージョンで使用可能な製品でした。
- トランクは常にコンパイルする必要があります。
- リリースごとのタグ
- すべての修正とマイナーな開発はトランクで行う必要があります。
- メジャーバージョンのすべてのリリースのブランチ。
- すべての主要な開発は専用ブランチで行われます。それらはQAの後にマージされます。
- すべての修正は、サポートされているバージョンのすべてのブランチでも行われます。
重く見えるかもしれませんが、うまくいき、多くのユーザーにサービスを提供することができました。この種のクリティカルなソフトウェアでは、誰もが新しいバージョンの内容を確認したいと考えています。
この種の制約がない場合は、1〜3で十分です。支店で働くことは時々苦しいです。
複数の主要プロジェクトを並行して実行する必要がある場合は、水銀やgitのようなDVCSを考慮する必要があります。
- 1. Visual Studio Proffessionalで働く7人の開発者からなるチームのベストプラクティス/ツールは何ですか?
- 2. Centuraチーム開発者(以前のGuptaチーム開発者)
- 3. 小規模アプリケーション用の開発プラットフォーム
- 4. 小規模企業の.net共有ライブラリを管理する(50人以上の開発者)
- 5. 小規模なWebチームのためのワークフロー
- 6. 多くの小規模プロジェクトと単一開発者によるチームサービス
- 7. 小規模なWeb開発会社のコードリポジトリの設定
- 8. 自分で小規模なプロジェクトを作成する際のベストプラクティス
- 9. 小規模チームにとって最高のアジャイル開発プラットフォームとは何ですか?
- 10. 小規模開発チームにはいくつのgithub sshキーが必要ですか?
- 11. Team Foundation Server 2010小規模チームのプロジェクト構成
- 12. Sybase:大規模データベースから小規模データベースへのダンプ/ロード
- 13. 小規模なスルーリクエストデータストレージ
- 14. 開発者や他の人たちがゲーム開発チームで働くようにする
- 15. 大規模サイトのベストプラクティス
- 16. 小規模から大規模プロジェクトまで
- 17. クラウドホスティングは1人の開発チームに行く方法ですか?
- 18. 開発チームに外部開発者を追加
- 19. 小規模のUDPデータグラムと小規模のものが多い
- 20. 小さなチームのためのGit開発戦略
- 21. 小規模な方法 - 小さなsprocs
- 22. 1人のiPhone開発者キーを使用できる開発者は何人ですか?
- 23. 1人の開発者からコミットを取り除く
- 24. AWS:大規模なファイルアップロード - API Gateway&Lambda - ベストプラクティス
- 25. laravel 5. * - パッケージ駆動型開発 - ベストプラクティス
- 26. 小規模のバックグラウンドタスクのオプション
- 27. 非常に大規模なSubversionリポジトリのファイルとディレクトリのカウント
- 28. iOS:複数のMacで複数の人がApple開発者アカウントを(チームとして)共有できますか?
- 29. 開発者からの応答なし
- 30. stackoverflowコミュニティは規模の小さい、あるいは世界規模の小さなネットワークですか?
http://stackoverflow.com/questions/417599/svn-best-practices-working-in-a-teamの重複 –