2010-12-28 22 views
10

私はトランクからの変更を最新に保つためにSVNにブランチを持っています。私がしたいのは、このマージを行う夜間スクリプトや何かを持っていて、マージの競合がなければ新しいバージョンのブランチをコミットしますが、マージの競合があれば何とかそれを示します。私はこれを見つけましたpostそれは多少役に立っていますが、すべてを行うわけではありません。SVN - ブランチへのトランクのマージを自動化

マージ競合が存在するかどうかを判断する方法が見つからず、これは主に私が探しているものです。コードをビルドして成功をコミットすることはスクリプトでは簡単には簡単ですが、マージの競合をチェックする方法がなくても成功しません。

ご協力いただきありがとうございます!

答えて

10

私は正確に同じ問題を抱えていましたが、私はマージを自動化しようとはしませんでしたが、ブランチが多くなく、手動で行っていました。

とにかく、スクリプトを使用するのが最善の選択肢です。投稿にリンクされたスクリプトは、最後の必要なアクション行いません。私はしばしばそうでLinuxを使用し

をコミットし、私はあなただった場合、私は次のようなシェルスクリプトを使用しているだろう:

cd /path/to/branch 
svn update #just to be sure... 
svn merge --non-interactive svn://path/to/trunk 
svn commit -m "Automated commit" 

同様のコマンドをバッチスクリプトのウィンドウ用SVNで使用することができます

+0

これは、競合が発生した場合にコミットが失敗する可能性があるため、考えられる解決策かもしれません。これを考えた後、コミットする前にコンパイルしようとすると、マージの競合があると失敗するはずです。私はその後、クルーズコントロールから失敗メッセージを生成することができます。助けてくれてありがとう! – BryceH

+0

実際には、未解決のマージの競合がある場合はコミットできないため、コミットは確実に失敗します。それでも、svn mergeの戻り値を使うか、私が知らない別のコマンドで競合をチェックしようとするかもしれません。とにかく、--non-interactiveフラグをマージするのを忘れました。紛争の場合に行うこと。 –

+0

Jenkins/Hudsonとの連携方法が不明です。 – gnuyoga

0

MergeFairyをご覧ください。それは継続的にマージし、紛争の際にあなたに電子メールを再開する方法に関する指示をメールします。

関連する問題