1

私は、会社の開発者向けにSVNの一連のユーザーガイドラインを作成する任務を負っています。

ガイドラインは、管理者の観点(タグ付けのタイミング、構造化の方法など)ではなく、ユーザーの観点(コメントのコミット、コミットのタイミングなど)のみを対象としています。管理ガイドラインは別の文書に記載されます。

組み込み開発にも携わるアプリ開発会社です。そのため、開発者はHTML5やFlashからJavaやCまで多岐にわたります。コーディングの中には、非常に大きな(数百万のファイル)コードベースをフォークするものもあります。他の部分は、私たちがゼロからの開発に従事することを含みます。

ユーザー(つまり、うなり声の開発者)の観点からSVNを使用するためのベストプラクティスはありますか?

4

2 に答える 2

5

これはかなり主観的な質問なので、TPTBがそれを閉じることに反対するつもりはありません。しかし、私はこれについての私の意見を喜んで共有します。私は中小規模(10〜50人の開発者)のエンタープライズコンテキストで働いているバックグラウンドを持っているので、私の意見はその環境に合わせて調整されていることを覚えておいてください。

  1. 開発者はSubversionを理解する必要があります彼らに転覆の本、特に「基本的な作業サイクル」のビットを読んでもらいます。私の他の提案の多くはsvn本から来ています。
  2. 早くそして頻繁にコミットします。開発者は、壊れたり不安定になったりしない小さな塊で作業を行うように努力する必要があります。少なくとも1日に1回は作業をチェックインしていない場合は、何かが間違っている可能性があります。
  3. 非常に頻繁に更新します。チームの他のメンバーが1日に複数回行っている最新の作業を引き出したいと考えています。これは、別の開発者が同じファイルで作業している場合に変更をマージする手間を軽減するのにも役立ちます。
  4. 常に役立つコメントを提供してください。開発者は、チームの他のメンバーに役立つ方法で行われた作業を説明するチェックインコメントを作成する必要があります。「修正されたビルド」、「その他の変更」、「x」(実話、コメントが常に「x」である開発者と協力した)などのコメントは役に立ちません。

以下は、(分類法における)より「管理」ガイドラインですが、それでも開発者に関連しています。また、これらははるかに主観的であるため、さらに大きな塩の粒を使用してください。

  1. 安定した、解放可能なトランクを維持します。開発者が上記のガイドライン(2)に従っている場合は、トランクを安定して解放できるようにする必要があります。大きく、横断的で不安定な変更を加えることは避けてください。リスクの少ない小さなチャンクでこれらの変更を行う方法を見つけてください。安定したトランクを維持することで、より頻繁にデプロイできるため、ユーザーにより早く価値を提供できます。
  2. リリースごとのブランチワークフローを使用します。バグを修正する必要がある場合に備えて、リリースごとに新しいブランチを作成します。トランクから解放したり、トランクから静的解放ブランチに「プロモート」したりしないでください。
  3. 機能の分岐は避けてください。機能ブランチは、回避したい種類の不安定で分野横断的な変更を促進します。代わりに、トランクに大規模な変更を加えようとしますが、構成スイッチなどを介して本番ソフトウェアで「非アクティブ化」したままにします。コード行を不安定にして分離する必要なしに「大きな」機能を実装できるアーキテクチャを目指して努力したいと考えています。ここでは、制御の反転を使用することが大きな助けになります。
于 2012-11-29T21:39:38.143 に答える
3

@Stuart Langeの素晴らしい提案を補足するために、これが私がしばらくの間磨き続けてきた私のリストです。これは、 Simple-Talk.comで連続して公開されているTortoiseSVNとSubversionクックブックに関する私の経験と調査の両方から来ています(パート8は最近公開され、今後さらに公開されます)。簡潔にするために、ここでは箇条書きの項目のみをリストしています。私の一連の記事は、これらすべての理論的根拠とサポートを非常に詳細に提供しています。

A.各コミットは1つの理由で行う必要があります。

B.コード、ヘルプファイル、データベーススキーマなど、1つの理由をすべて一緒にコミットする必要があります。

C.コミットによってビルドが中断されることはありません。

D.ファイルをコミットする理由は常にあります。

E.コミットしようとしていることを、常に1行ずつ確認してください。

F.コミットメッセージを必須にします。

G.タイムリーにコミットします。

H.バージョン管理システム内で可能な限りファイル操作(移動、コピー、名前変更)を行います。

I.生成されたファイルを除くすべてをソース管理に含めます(サードパーティのバイナリも含めます)

J.コミットを単独で実行しないでください。SVN更新/手動検証/SVNコミットを「不可分」操作と見なしてください。

于 2012-11-30T15:03:56.753 に答える