Subversion Repositories DevTools

Rev

Rev 1271 | Rev 2412 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1271 Rev 1272
Line 67... Line 67...
67
my $opt_vobMap;
67
my $opt_vobMap;
68
my $opt_fileList;
68
my $opt_fileList;
69
my $opt_preserveProjectBase;
69
my $opt_preserveProjectBase;
70
my $opt_ignoreProjectBaseErrors;
70
my $opt_ignoreProjectBaseErrors;
71
my $opt_resume;
71
my $opt_resume;
-
 
72
my $opt_delete;
72
 
73
 
73
################################################################################
74
################################################################################
74
#   List of Projects Suffixes and Branch Names to be used within SVN
75
#   List of Projects Suffixes and Branch Names to be used within SVN
75
#
76
#
76
#       Name        - Name of branch for the project
77
#       Name        - Name of branch for the project
Line 210... Line 211...
210
my $multiPackages = -1;
211
my $multiPackages = -1;
211
my $visitId = 0;
212
my $visitId = 0;
212
my $noTransfer;
213
my $noTransfer;
213
my $rippleCount = 0;
214
my $rippleCount = 0;
214
my $svnRepo;
215
my $svnRepo;
-
 
216
my $processCount = 0;
-
 
217
my $processTotal = 0;
215
 
218
 
216
our $GBE_RM_URL;
219
our $GBE_RM_URL;
217
my $UNIX = $ENV{'GBE_UNIX'};
220
my $UNIX = $ENV{'GBE_UNIX'};
218
 
221
 
219
my $result = GetOptions (
222
my $result = GetOptions (
Line 231... Line 234...
231
                "pruneMode:s"   => \$opt_pruneModeString,
234
                "pruneMode:s"   => \$opt_pruneModeString,
232
                "listtags:i"    => \$opt_listTags,
235
                "listtags:i"    => \$opt_listTags,
233
                "name:s"        => \$opt_name,          # Alternate output
236
                "name:s"        => \$opt_name,          # Alternate output
234
                "tip:s"         => \@opt_tip,           # Force tip version(s)
237
                "tip:s"         => \@opt_tip,           # Force tip version(s)
235
                "log!"          => \$opt_log,
238
                "log!"          => \$opt_log,
-
 
239
                "delete!"       => \$opt_delete,
236
                "postimage!"    => \$opt_postimage,
240
                "postimage!"    => \$opt_postimage,
237
                'workdir:s'     => \$opt_workDir,
241
                'workdir:s'     => \$opt_workDir,
238
                'filelist:s'    => \$opt_fileList,      # A list of CC tags
242
                'filelist:s'    => \$opt_fileList,      # A list of CC tags
239
                'resume:s'      => \$opt_resume,
243
                'resume:s'      => \$opt_resume,
240
                );
244
                );
Line 1125... Line 1129...
1125
    }
1129
    }
1126
 
1130
 
1127
    #
1131
    #
1128
    #   All done
1132
    #   All done
1129
    #
1133
    #
-
 
1134
    $processTotal = scalar keys %versions;
1130
    Message("Retained entries: " . (scalar keys %versions) );
1135
    Message("Retained entries: $processTotal" );
1131
    Message("Pruned entries: $pruneCount");
1136
    Message("Pruned entries: $pruneCount");
1132
    Message("Deadwood entries: $trimCount");
1137
    Message("Deadwood entries: $trimCount");
1133
    Message("Bad Singletons: $badSingletonCount");
1138
    Message("Bad Singletons: $badSingletonCount");
1134
    Message("Ripples: $rippleCount");
1139
    Message("Ripples: $rippleCount");
1135
}
1140
}
Line 1341... Line 1346...
1341
 
1346
 
1342
    #
1347
    #
1343
    #   If its been processed then fake that its been done
1348
    #   If its been processed then fake that its been done
1344
    #   May have been a ripple that we processed
1349
    #   May have been a ripple that we processed
1345
    #
1350
    #
-
 
1351
    return if ($versions{$entry}{Processed});
-
 
1352
    $processCount++;
1346
    Message ("------------------------------------------------------------------" );
1353
    Message ("------------------------------------------------------------------" );
-
 
1354
    Message ("Package $processCount of $processTotal");
-
 
1355
 
1347
    Message ("New package-version: " . GetVname($entry) . " Tag: " . $versions{$entry}{vcsTag} );
1356
    Message ("New package-version: " . GetVname($entry) . " Tag: " . $versions{$entry}{vcsTag} );
1348
    return if ($versions{$entry}{Processed});
-
 
1349
 
1357
 
1350
    if ( $opt_resume )
1358
    if ( $opt_resume )
1351
    {
1359
    {
1352
        return
1360
        return
1353
        unless ( $opt_resume eq $versions{$entry}{vcsTag} );
1361
        unless ( $opt_resume eq $versions{$entry}{vcsTag} );
Line 1405... Line 1413...
1405
    logToFile( $cwd . '/importsummary.txt', ";$line;");
1413
    logToFile( $cwd . '/importsummary.txt', ";$line;");
1406
 
1414
 
1407
    #
1415
    #
1408
    #   Sava data
1416
    #   Sava data
1409
    #
1417
    #
-
 
1418
    $data{errFlags} = $flags;
-
 
1419
    $data{duration} = $duration;
1410
    $versions{$entry}{rmRef} = $data{rmRef};
1420
    $versions{$entry}{rmRef} = $data{rmRef};
1411
    $versions{$entry}{errStr} = $data{errStr};
1421
    delete $data{rmRef};
-
 
1422
    delete $data{tag};
1412
    $versions{$entry}{errFlags} = $flags;
1423
    delete $data{ViewRoot};
1413
    $versions{$entry}{BadProjectBase} = $data{BadProjectBase};
1424
    $versions{$entry}{data} = \%data;
1414
 
1425
 
1415
    #
1426
    #
1416
    #   Delete the created view
1427
    #   Delete the created view
1417
    #   Its just a directory, so delete it
1428
    #   Its just a directory, so delete it
1418
    #
1429
    #
Line 1469... Line 1480...
1469
    #
1480
    #
1470
    $data->{rmRef} = 'ERROR';
1481
    $data->{rmRef} = 'ERROR';
1471
    $data->{tag} = '';
1482
    $data->{tag} = '';
1472
    $data->{ViewRoot} = undef;
1483
    $data->{ViewRoot} = undef;
1473
    $data->{ViewPath} = undef;
1484
    $data->{ViewPath} = undef;
1474
    $data->{flags} = undef;
-
 
1475
    $data->{errStr} = '';
1485
    $data->{errStr} = '';
1476
    $versions{$entry}{Processed} = 1;
1486
    $versions{$entry}{Processed} = 1;
1477
    
1487
    
1478
    
1488
    
1479
    SystemConfig ('ExitOnError' => 0);
1489
    SystemConfig ('ExitOnError' => 0);
Line 1511... Line 1521...
1511
    #   Correct well known path mistakes
1521
    #   Correct well known path mistakes
1512
    #
1522
    #
1513
    $cc_path =~ s~/MASS_Dev/Bus/~/MASS_Dev_Bus/~i;
1523
    $cc_path =~ s~/MASS_Dev/Bus/~/MASS_Dev_Bus/~i;
1514
    $cc_path =~ s~/MASS_Dev_Bus/Cbp/~/MASS_Dev_Bus/CBP/~i;
1524
    $cc_path =~ s~/MASS_Dev_Bus/Cbp/~/MASS_Dev_Bus/CBP/~i;
1515
    $cc_path =~ s~/MREF_Package/ergpostmongui$~/MREF_Package/ergpostmongui~i;
1525
    $cc_path =~ s~/MREF_Package/ergpostmongui$~/MREF_Package/ergpostmongui~i;
-
 
1526
    $cc_path =~ s~/MREF_21/MREF_Package/~/MREF_Package/~i;
1516
 
1527
 
1517
#print "--- Path: $cc_path, Label: $cc_label\n";
1528
#print "--- Path: $cc_path, Label: $cc_label\n";
1518
 
1529
 
1519
    #
1530
    #
1520
    #   Create CC view
1531
    #   Create CC view
Line 1569... Line 1580...
1569
            $data->{errStr} = 'Bad usage of ProjectBase detected';
1580
            $data->{errStr} = 'Bad usage of ProjectBase detected';
1570
            return 14;
1581
            return 14;
1571
        }
1582
        }
1572
    }
1583
    }
1573
 
1584
 
-
 
1585
 
-
 
1586
    #
-
 
1587
    #   Developers have been slack
-
 
1588
    #       Sometime the mark the source path as 'GMTPE2005'
-
 
1589
    #       Sometimes as 'GMTPE2005/Package/Fred/Jill/Harry'
-
 
1590
    #
-
 
1591
    #   Attempt to suck up empty directories below the specified
-
 
1592
    #   source path
-
 
1593
    #
-
 
1594
    unless ( $opt_preserveProjectBase )
-
 
1595
    {
-
 
1596
        #
-
 
1597
        #   Look in ViewPath
-
 
1598
        #   If it contains only ONE directory then we can suck it up
-
 
1599
        #
-
 
1600
        my $testDir = findDirWithStuff( $data->{ViewPath} );
-
 
1601
        unless ( $data->{ViewPath} eq $testDir  )
-
 
1602
        {
-
 
1603
            Message ("Adjust Base Dir: $testDir");
-
 
1604
            $data->{adjustedPath} = $data->{ViewPath};
-
 
1605
            $data->{ViewPath} = $testDir;
-
 
1606
        }
-
 
1607
    }
-
 
1608
    
-
 
1609
 
1574
    #
1610
    #
1575
    #   Have a CC view
1611
    #   Have a CC view
1576
    #   Now we can create the SVN package and branching point before we
1612
    #   Now we can create the SVN package and branching point before we
1577
    #   import the CC data into SVN
1613
    #   import the CC data into SVN
1578
    #
1614
    #
Line 1765... Line 1801...
1765
    #   Only do once
1801
    #   Only do once
1766
    #
1802
    #
1767
    return unless ( $createPackageDone );
1803
    return unless ( $createPackageDone );
1768
    $createPackageDone = 0;
1804
    $createPackageDone = 0;
1769
 
1805
 
-
 
1806
    #
-
 
1807
    #   Real import
-
 
1808
    #       Do not Delete package if it exists
-
 
1809
    #       Package must NOT exist
-
 
1810
    #
1770
    Message ("Creating new SVN package: $packageNames");
1811
    Message ("Creating new SVN package: $packageNames");
-
 
1812
    if ( $opt_delete )
-
 
1813
    {
-
 
1814
        Message ("Delete existing version of package: $packageNames");
1771
    JatsToolPrint ( 'jats_svn', 'delete-package', '-noerror',  "$svnRepo/$packageNames" );
1815
        JatsToolPrint ( 'jats_svn', 'delete-package', '-noerror',  "$svnRepo/$packageNames" );
-
 
1816
    }
1772
    JatsToolPrint ( 'jats_svn', 'create', "$svnRepo/$packageNames", @opts );
1817
    JatsToolPrint ( 'jats_svn', 'create', "$svnRepo/$packageNames", '-new', @opts );
1773
}
1818
}
1774
 
1819
 
1775
 
1820
 
1776
#-------------------------------------------------------------------------------
1821
#-------------------------------------------------------------------------------
1777
# Function        : createBranchPoint
1822
# Function        : createBranchPoint
Line 2131... Line 2176...
2131
        $retval = 1;
2176
        $retval = 1;
2132
    }
2177
    }
2133
    return $retval;
2178
    return $retval;
2134
}
2179
}
2135
 
2180
 
-
 
2181
#-------------------------------------------------------------------------------
-
 
2182
# Function        : findDirWithStuff
-
 
2183
#
-
 
2184
# Description     : Find a directory that contains more than just another subdir
-
 
2185
#
-
 
2186
# Inputs          : $base               - Start of the scan
-
 
2187
#
-
 
2188
# Returns         : Path to dir with more than just a single dir in it
-
 
2189
#
-
 
2190
sub findDirWithStuff
-
 
2191
{
-
 
2192
    my ($base) = @_;
-
 
2193
 
-
 
2194
    while ( $base )
-
 
2195
    {
-
 
2196
    my $fileCount = 0;
-
 
2197
    my $dirCount = 0;
-
 
2198
 
-
 
2199
    my @list = glob( $base . '/*');
-
 
2200
    foreach ( @list )
-
 
2201
    {
-
 
2202
        next if ( $_ eq '.' );
-
 
2203
        next if ( $_ eq '..' );
-
 
2204
        if ( -d $_ )
-
 
2205
        {
-
 
2206
            $dirCount++;
-
 
2207
            return $base if ( $dirCount > 1  );
-
 
2208
        }
-
 
2209
        else
-
 
2210
        {
-
 
2211
            return $base;
-
 
2212
        }
-
 
2213
    }
-
 
2214
    return $base unless ( $dirCount == 1  );
-
 
2215
    $base = $list[0];
-
 
2216
    }
-
 
2217
}
-
 
2218
 
2136
 
2219
 
2137
#-------------------------------------------------------------------------------
2220
#-------------------------------------------------------------------------------
2138
# Function        : JatsToolPrint
2221
# Function        : JatsToolPrint
2139
#
2222
#
2140
# Description     : Print and Execuate a JatsTool command
2223
# Description     : Print and Execuate a JatsTool command
Line 2728... Line 2811...
2728
 
2811
 
2729
        push @text, 'Total RM versions: ' . $totalVersions;
2812
        push @text, 'Total RM versions: ' . $totalVersions;
2730
        push @text, 'Essential Entries: ' . scalar @EssentialPackages;
2813
        push @text, 'Essential Entries: ' . scalar @EssentialPackages;
2731
        push @text, 'Initial trees: ' . $initialTrees;
2814
        push @text, 'Initial trees: ' . $initialTrees;
2732
 
2815
 
2733
        push @text, 'Number of Entries: ' . scalar keys %versions;
2816
        push @text, 'Number of Entries: ' . $processTotal;
2734
        push @text, 'Type : ' . $packageType;
2817
        push @text, 'Type : ' . $packageType;
2735
        push @text, 'All versions in Subversion' if ( $allSvn );
2818
        push @text, 'All versions in Subversion' if ( $allSvn );
2736
 
2819
 
2737
        push @text, '|';
2820
        push @text, '|';
2738
        push @text, 'Total Project Branches: ' . $ProjectCount;
2821
        push @text, 'Total Project Branches: ' . $ProjectCount;
Line 3562... Line 3645...
3562
    -images[=n]        - Create SVG of version tree. N=0,1,2
3645
    -images[=n]        - Create SVG of version tree. N=0,1,2
3563
    -name=aaa          - Alternate output package name. Test Only
3646
    -name=aaa          - Alternate output package name. Test Only
3564
    -[no]log           - Write output to log file. Def: -nolog
3647
    -[no]log           - Write output to log file. Def: -nolog
3565
    -[no]postimage     - Create image after transger: Def: -post
3648
    -[no]postimage     - Create image after transger: Def: -post
3566
    -workdir=path      - Use for temp storage (def:/work)
3649
    -workdir=path      - Use for temp storage (def:/work)
-
 
3650
    -delete            - Delete SVN package before test
3567
 
3651
 
3568
=head1 OPTIONS
3652
=head1 OPTIONS
3569
 
3653
 
3570
=over 8
3654
=over 8
3571
 
3655