[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12026] cm2diff

From: "Akinori MUSHA" <knu@...>
Date: 2001-01-15 08:00:34 UTC
List: ruby-dev #12026
 さっきの commit mail を処理してみて cm2diff のバグが見つかった
ので直しました。ブランチポイントをちゃんと認識しないという問題の
修正版。

 使い方は、前にも書いたように標準入力から commit mail を食わせる
と diff を取ってきて出力するというものです。root に ':' が入って
いないときはローカルのレポジトリとみなし、 rcsdiff で差分を取り
ます。(当然速い)

 でも、 commit 直後は当然同期していないので差分が出ません。 ;)
自分でスケジュールして CVSup している人は、経過時間をみて変える
とか工夫を入れるといいかも。

-- 
                     /
                    /__  __            Akinori.org / MUSHA.org
                   / )  )  ) )  /     FreeBSD.org / Ruby-lang.org
Akinori MUSHA aka / (_ /  ( (__(  @ iDaemons.org / and.or.jp

"We're only at home when we're on the run, on the wing, on the fly"

#!/usr/bin/env ruby
#
# Placed into the public domain by M. Warner Losh. 1997.  Enjoy.
# Rewrote to be ruby by Brian Feldman. 2000.  Enjoy more :)
# Modified by Akinori MUSHA 2000.  Well, Ruby rules :)
#
# >    1.94      +72 -34    src/sys/i386/scsi/aic7xxx.c
#
# Turns into a lot of diffs
#
# $Idaemons: /home/cvs/cm2diff/cm2diff,v 1.3 2001/01/15 07:51:05 knu Exp $
#

def do_diff(root, file, rev, args)
  /^(.*\.)(\d+)$/ =~ rev or return

  revold = $1
  last = $2.to_i

  next if /^(?:1\.1\.)*1\.1$/ =~ rev

  if last == 1 && rev.split('.').length & 1 == 0 	# a branch, EVILNESS
    revold.sub! /\.(\d+)\.$/, ''
  else
    revold += (last - 1).to_s
  end

  cmd = nil

  if /:/ =~ root
    cmd = "cvs -d #{root} rdiff #{args.join ' '} -r#{revold} -r#{rev} #{file}"
  else
    cmd = "rcsdiff -u #{args.join ' '} -r#{revold} -r#{rev} #{root}/#{file},v"
  end

  if cmd
    puts cmd
    system cmd
  end
end

def main(args)
  root = ''

  STDIN.each_line do |line|
    case line
    when /^X-Ruby-CVS-Root: *(\S+)/
      root = ':pserver:anonymous@cvs.ruby-lang.org:' + $1
      #root = '/home/cvs/ruby' + $1
    when /^X-FreeBSD-CVS-Branch:/
      root = ':pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs'
      #root = '/home/ncvs'
    when /^ *((?:\d+\.)+\d+) +\+\d+ +-\d+ +(\S+)/
      do_diff(root, $2, $1, args)
    end
  end
end

if $0 == __FILE__
  main ARGV
end

In This Thread

Prev Next