9

SubversionからGitに切り替えました。Subversionの集中型アーキテクチャは、Webベースのアプリケーションの変更ログに組み込んだ意味のあるリビジョン番号を提供し、ログインして特定のサーバーで実行されているバージョンを簡単に確認できるようにします。Gitにはわかりやすいビルド番号がありません。git statusむしろ、またはの出力から何かを解析することが提案されているのを見てきましたgit tags

支店には常に顧客にわかりやすい名前を使用するとは思いません(システムを使用していることを公表したくない個々の顧客に名前を付けることもあります)。したがって、ビルドで次のような日付スタンプ/タイムスタンプタグを生成し2012-11-21_08-40-23、Subversionリビジョン番号を使用していた方法で使用できると考えています。ビルドはこのタグを生成し、デプロイ用のwarファイルをビルドするときにGitに追加するだけなので、任意のサーバーにデプロイするとタグが生成されます。

現在、数日ごとにテスト、月に数回(バーストで)統合、数か月ごとに本番環境にデプロイしています。

4

4 に答える 4

5

素敵なバージョン番号を生成するためのgit-version-genスクリプトを確認することをお勧めします。

「vX.Y」の形式のタグがあることを前提とし、「vX.Yz-aaaaaaaa」のようなバージョン番号を提供します。ここで、zはタグvX.Y以降のコミット数であり、aaaaaaaaは現在のHEADのSHAを短縮したものです。

タグ付け戦略に関しては、この方法でリリースバージョンにタグ付けする価値があることは間違いありません。統合およびテストバージョンでそれを使用することは、開発がどれだけ速く進んでいるかに依存します。

タグがオリジンサーバーからプルされるため、プライベート開発者ビルドでも機能します。

于 2012-11-21T14:03:23.707 に答える
5

むしろ、gitstatusまたはgitタグの出力から何かを解析することが提案されているのを見てきました。

それは醜い提案でした。本当に醜くて足が不自由です。ここでのgitdescribeルールは多かれ少なかれ、man git describestatusを読むことは、またはtagまたはlogサードパーティのすぐに使用できるスクリプトよりもはるかに便利です。

Smth。このように、リビジョンに適切な名前を付けるというトリックを実行します(また、公開されているすべての変更セットではなく、一部の変更セットにのみタグを付けることができます)

git describe --tags --long --match 'SUBSTRING-OF-CLIENT_TAGFAMILY*'

于 2012-11-21T15:00:15.873 に答える
2

SVNのリビジョン番号のポイントは、リリースされたコードをソース管理の特定のリビジョンに関連付けることができるようにすることでした。私は今、タグ付けは不要であり、私の質問に対する答えは、実際には次のように生成されたコミットハッシュを使用することだと考えています。

git log -1 --format=%H

私はこれまで自分の質問に答えたことがありません。みなさん、ありがとうございました。私はあなた方一人一人に試してみるために+1を与えました。私の質問の言い回しが不十分だった場合はお詫びします(振り返ってみると-そうだった)。誰かが私にこれが間違っている理由とそれを修正する方法(またはそれをより良くする方法)を説明したい場合、私は彼らの答えを正しいものとして喜んで受け入れます。

于 2012-11-26T15:02:43.073 に答える
1

Subversionからgitに切り替えるときにわかることの1つは、いくつかの概念は同じ名前ですが、まったく異なる意味を持っているということです。

ブランチは最大のものの1つです。私がgitを使用していることを知っているほとんどのショップは、ブランチを頻繁に使用しています。実際、すべての機能、バグ修正、雑用などには、ブランチがあります。ブランチは基本的に、コードが開発され、レビューされ、ローカルでテストされている間の一時的な構築です。次に、ブランチがマスターにマージされ、QAエリアにプッシュされ、最後にマスターが本番環境にプッシュされます。

ただし、ブランチの命名はそれらのスタイルのものの1つです。私が持っている1人の同僚は、追跡システムIDを参照できるようにinits_pt575757_whateverを使用し、もう1人の同僚はpete_1を使用しています。

私はメジャーバージョンでより多く使用されるタグを見る傾向がありますが、ymmv

全体的なプロセスの詳細については、https://stackoverflow.com/a/9204499/631619をご覧ください。

于 2012-11-22T03:46:51.907 に答える