0

Redmine プラグインとパッチの開発を始めたばかりで、svn を使用しています。私は次の構造を持っています:

doc/
src/
src/branches/
src/plugins/
src/patches/
src/trunk/

私のアイデアは、開発するプラグインまたはパッチごとにトランクからブランチを作成することでした。プラグイン フォルダーは、さまざまなバージョンのプラグインを格納することを目的としており、パッチ フォルダーはパッチのバージョンを格納することを目的としていました。

現在、次の問題に直面しています。パッチを開発するためにブランチ issue_x を作成しました。最初のバージョンの後、私svn diff > patch.diffはパッチを入手していました。次に、パッチ フォルダに保存し、.xml でトランクに適用しましたpatch -p0 < ../patch.diff。クールですが、本番環境でエラーが発生したため、パッチを少し修正する必要があります。

私は何をすべきか?

  • エラーを修正するために新しいパッチを作成しますか?
  • エラーを修正し、パッチ全体 (加えられたすべての変更を含む) を作成し、トランクのパッチを元に戻してから、新しいパッチを再適用しますか?
  • 他に何か?
4

2 に答える 2

0

マージの代わりにパッチを使用している理由がわかりません。それはかなり奇妙です。

(私にとって)最も明白なことは、 から分岐しissue_x、バグを修正し、 にマージしてからissue_x、 にマージしissue_x直すことtrunkです。

あなたのシナリオでは、 のバグを修正するために変更を加えissue_x、パッチを作成し、それを に適用することをお勧めしますtrunkただし、 SVNブックからSVNの分岐とマージについて学ぶ必要があります。

于 2013-03-08T08:13:07.520 に答える
0

Subversion (および一般的な SCM) の方法は、異なる開発ラインからの「変更をマージする」ことです。

つまり、svn 内部手法を使用する diff-patch 方法の代わりに - ブランチをトランクにマージし、必要な結果が得られない間にブランチにいくつかの変更が追加された後に再マージします

SVN Bookを読んでください。これは便利なことです

于 2013-02-04T22:06:19.833 に答える