404 motivation not found | t_ishidaのブログ

12月/10

27

svnのブランチのマージ

NetBeansが遅くてどうにもならないので、
svnのよくあるブランチのBASEからマージする作業を自動化してみた。
これでvimdiffへの繋ぎ込みとか出来るようになれば、
大体大丈夫になるが。

#!/usr/bin/perl

##
## 環境設定
##
my $ROOT
  = 'http://svn-server.domain/path/to/branches';
my $SVN
   = 'svn';
my $LOG_COMMAND
   = "$SVN log --stop-on-copy --quiet";
my $MERGE_COMMAND
  = "$SVN merge ";

## 未実装
my $DIFF_COMMAND
   = "$SVN diff diff-cmd svndiff";

##
## ロジック
##
my ( $path, $dry_run ) = @ARGV;
$path or die 'ブランチ名の指定がありません' ;
my @log =
   map {  ($_) = $_ =~ /(\d+)/; }
     grep { $_=~/\S/ }
       split /^\s*-+$/m, `$LOG_COMMAND ${ROOT}/${path}`;

my $rev = pop @log;
$dry_run and $MERGE_COMMAND .= ' --dry-run ';
$MERGE_COMMAND .= "-r ${rev}:HEAD ${ROOT}/${path}";
print `$MERGE_COMMAND`;
Share and Enjoy:
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Tumblr
  • email
  • Facebook
  • FriendFeed

RSS Feed

コメントはまだありません。

Leave a comment!

<< [誰得]SVNのブランチを切ってチェックアウトするスクリプト

Macの環境作りついて >>

Find it!

Theme Design by devolux.org

Tag Cloud