rm-id-conflicts
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #! /usr/bin/perl
  2. # $Id: rm-id-conflicts,v 1.1 2001/05/11 19:44:42 bko Exp $
  3. # find all conflict files and resolve $Id: rm-id-conflicts,v 1.1 2001/05/11 19:44:42 bko Exp $ conflicts ONLY
  4. open(FILELIST, "cvs update|") || die "cannot run cvs update: $!";
  5. while(<FILELIST>) {
  6.     chomp;
  7.     if(s/^C //) {
  8. push (@filelist, $_);
  9.     }
  10. }
  11. close(FILELIST);
  12. foreach $file ( @filelist) {
  13.     open(OUT, ">$file.removed-id-conflict") || die "can't open $file.new for writing: $!";
  14.     open(FILE, "$file") || die "can't open $file: $!";
  15.     $file =~ //?([^/]*)$/;
  16.     $basename = $1;
  17.     print $basename, "n";
  18.     $in_conflict = 0;
  19.     while(<FILE>) {
  20. if(/^<<<<<<< $basename/) {
  21.     # in a conflict
  22.     $in_conflict = 1;
  23.     $first = "";
  24.     $second = "";
  25.     $first_count = 0;
  26.     $second_count = 0;
  27. #     print "in conflict: $basenamen";
  28.     $start = $_;
  29. } elsif( $in_conflict && /^>>>>>>> /) {
  30.     $in_conflict = 0;
  31.     if($first_count == 1 && $second_count == 1 &&
  32.        $first =~ /$Id:[^$]*$/ &&
  33.        $second =~ /$Id:[^$]*$/) {
  34. print OUT $first;
  35.     } else {
  36. print OUT $start;
  37. print OUT $first;
  38. print OUT "=======n";
  39. print OUT $second;
  40. print OUT $_;
  41.     }
  42. } elsif ($in_conflict && /^=======$/ ) {
  43.     # switching
  44.     $in_conflict = 2;
  45. } elsif ($in_conflict == 1) {
  46.     $first .= $_;
  47.     $first_count++;
  48. } elsif ($in_conflict == 2) {
  49.     $second .= $_;
  50.     $second_count++;
  51. } else {
  52.     print OUT;
  53. }
  54.     }
  55.     close(FILE);
  56.     close(OUT);
  57.     $diff = `diff $file $file.removed-id-conflict`;
  58.     if(!$diff) {
  59. unlink "$file.removed-id-conflict";
  60.     }
  61. }