2009-05-04 7 views
2

私たちは一度に数週間氷上に置くことができるいくつかの機能ブランチを持っています。トランクに多くの変更を加えた後、トランクからの変更をブランチにマージするか、ブランチを削除し、トランクから直接新しいブランチを作成し、開始ブランチからの変更をブランチにコピーするのが最善です。Subversionはdiffをマージしているか、未修正ファイルのリビジョンを更新していますか

私が尋ねる理由は、マージのためだけです。SVNは、最後のマージからトランクのdiffを頭にかけて、ブランチに適用します。

多くの場合、トランクの変更がブランチの変更を上回るため、diffのサイズからフィーチャーブランチを削除し、フィーチャーブランチのパッチを変更して新しいブランチを作成すると意味があります。

これは、多くのPDFが更新された場合に特に問題となります。

別の方法として、SVNがブランチのファイルに触れられなかったことを認識して、diffを盲目的に適用するのではなく、そのリビジョン番号を更新する方法があるようです。

Subversionの出力から、diffを適用しているようです。

答えて

0

Subversion 1。6つの変更はファイル:リポジトリ内

同一のファイル共有ストレージスペースを(問題#2286)

だから、diffが印加されてもコミットすると、コードが同一のファイルを発見し、ちょうどへのポインタを使用する必要がありますことが表示されますファイルの最初のバージョン。

0

Subversionを使用している方法が間違っていると思います。あなたがしなければならないことは、トランクに一連のリビジョンをマージすることです。 例:

Rev: 100 
/trunk 

(ブランチを作成します)

Rev:101 
/trunk (r100) 
/branch (r101) 

(変更の多く)

Rev: 200 
/trunk (r100) 
/branch (r200) 

は今、あなたは何をする必要があるかR100とR200の間のすべての差分を生成することですトランクに適用します。合併はちょっと誤解を招く(like the documentation states)。ユースケースは、かなり一般的なシナリオで、covered in the documentationです。

私はtrunk-> branchまたはbranch-> trunkをマージするかどうかについてベストプラクティスはないと思います。どのように働きたいか、あなたのシナリオに依存しています。その音から、フィーチャーブランチはトランクがより不安定になります。機能が完了したら、トランクにマージすることは理にかなっています。トランクにマージするときの競合を制限するために、trunk->ブランチから引き続きマージすることができます。

1

SVNは ブランチ内のファイルは触れていなかったことを実現するために、したがって、 更新がリビジョン番号それは が指すためになる他の方法のように思えます。これにより、diffのために余分なスペースがなくなります。

AFAIKを適用すると、差分を適用すると、重大な余分なスペースを節約できません。 差分が小さい場合は、リビジョンを更新するだけの場合と同じくらいの容量が必要です。

私はトランクからブランチにマージしますか?後でブランチをトランクにマージする予定がある場合にのみ意味をなさないでしょう。

http://svnbook.red-bean.com/en/1.5/svn.branchmerge.basicmerging.html

関連する問題