1

GoogleがSVNについて教えてくれなかったことがいくつかあります。

私たちの仕事では、SVNと推奨されるトランク/ブランチ/タグ構造を使用しています。

私が知りたいのは、トランクフォルダーをbranchs / my branchフォルダーに切り替える必要がありますか、それともbranchs / my branchフォルダーで作業してそれらの変更をコミットできますか?ここでは、物理フォルダーと、変更を加えるための正しい場所について説明しています。

今までブランチを作成する必要はなかったので、正しく作成したいと思います:)

ありがとう!

4

3 に答える 3

0

ここでは切り替えはお勧めできません。基本的に、このコマンドはプロジェクトの再配置に使用されます。

あなたがブランチを持っているなら、そのブランチはそれ自身の人生を持っています。コミットされた機能の点でトランクが先行している場合もあれば、その逆になる場合もあります。ある時点で、一部のブランチがトランクよりも先行します。前述のコンテキストでswitchコマンドを使用すると、混乱してしまい、最終的にはクリーンなチェックアウトを取得する必要があります。

異なるブランチで作業している場合は、各ブランチを(別のブランチに基づいて)個別のトランクとして表示できることを理解し、受け入れる必要があります。したがって、作業しているブランチごとに個別のクリーンチェックアウトを用意してください

于 2012-07-13T07:58:06.353 に答える
0

最善の最初のステップは、Subversionの命名法と概念を自分のものと一致させることだと思います。そうでない場合は、結び目を作ることになります。たとえば、「トランクをブランチに切り替える」は意味がありません。ここでの意味は、実際には「トランクのコードが現在含まれている作業コピーを、代わりにブランチのコードが含まれるように切り替える」ということだと思います。

リポジトリには、トランクと作成されたブランチの現在の状態が保存されます。通常、以前のリリース(1.0.1リリースなど)のバグを修正するために戻って、バージョン2.0のトランクに大幅な変更を加えた場合にブランチを作成しますが、これはリスクが高すぎて挿入できません。 1.0.1。

プロジェクトで作業するときは、トランクまたはブランチから作業コピーをチェックアウトします。コミットすると、チェックアウトしたトランクまたはブランチになります。1.0.1ブランチで作業する必要がある場合は、次の2つの選択肢があります。

  • このブランチの新しい作業コピーを確認してください。コミットはすべてそのブランチにプッシュされます
  • トランクに使用していた作業コピーを切り替えて、トランクではなくブランチに従うようにします。コミットはすべて正しいブランチにプッシュされるようになりました。

これらの2つのアプローチのどちらを採用するかは、いくつかの要因によって異なります。

  • まだコミットしていない作業コピーに変更がありますか。もしそうなら、最も簡単なことは、新しい作業コピーをチェックアウトすることです。切り替えたい場合は、それらを失うリスクがあるため、コミットするか、パッチを作成して脇に置いてください
  • 新しい作業コピーを作成するのは費用がかかりますか?たとえば、非常に遅いネットワーク、巨大なソースツリー、または構築に何時間もかかる場合があります。もしそうなら、あなたは切り替えることを好むかもしれません
  • プロジェクトはハードコードされたパスに依存していますか?ビルドスクリプトがすべてが入っていると想定している場合、c:\sourceそれは、作業コピーを1つしか持てず、スイッチングを使用する必要があることを意味します。

簡単にするために、ブランチの新しい作業コピーを作成することをお勧めします。

于 2012-07-13T08:27:20.683 に答える
0

トランクからブランチを作成します。ブランチで作業し、必要な数のコミットを行います。終了したら、トランクからブランチへの新しいコミットをマージして、競合を解決します。すべての競合があればそれが解決され、コードをテストしたら、ブランチをトランクにマージできます。

于 2012-07-13T10:58:51.733 に答える