Subversion Repositories DevTools

Rev

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

Rev 3859 Rev 3967
Line 92... Line 92...
92
my @opt_deleteFiles;
92
my @opt_deleteFiles;
93
my $opt_useTestRepo;
93
my $opt_useTestRepo;
94
my $opt_saveCompressed;
94
my $opt_saveCompressed;
95
my $opt_skipBuildNameCheck;
95
my $opt_skipBuildNameCheck;
96
my $opt_deleteLinks;
96
my $opt_deleteLinks;
-
 
97
my $count_BadPaths = 0;
-
 
98
my $opt_IgnoreBadSourcePath;
-
 
99
my $opt_forceSuck;
-
 
100
my $opt_noVCS;
97
 
101
 
98
################################################################################
102
################################################################################
99
#   List of Projects Suffixes and Branch Names to be used within SVN
103
#   List of Projects Suffixes and Branch Names to be used within SVN
100
#
104
#
101
#       Name        - Name of branch for the project
105
#       Name        - Name of branch for the project
Line 127... Line 131...
127
    '.pmb'      => { Name => 'Pietermaritzburg' },
131
    '.pmb'      => { Name => 'Pietermaritzburg' },
128
    '.vps'      => { Name => 'VixPayments' },
132
    '.vps'      => { Name => 'VixPayments' },
129
    '.ncc'      => { Name => 'NSWClubCard' },
133
    '.ncc'      => { Name => 'NSWClubCard' },
130
    '.rm'       => { Name => 'Rome' },
134
    '.rm'       => { Name => 'Rome' },
131
    '.vss'      => { Name => 'SmartSite' },
135
    '.vss'      => { Name => 'SmartSite' },
-
 
136
    '.ssts'     => { Name => 'SydneySchoolbus' },
132
    'unknown'   => { Name => 'UnknownProject' },
137
    'unknown'   => { Name => 'UnknownProject' },
133
 
138
 
134
    '.ebr'      => { Name => 'eBrio' , Trunk => 1 },
139
    '.ebr'      => { Name => 'eBrio' , Trunk => 1 },
135
    '.mas'      => { Name => 'Mass'  , Trunk => 1 },
140
    '.mas'      => { Name => 'Mass'  , Trunk => 1 },
136
    '.cr'       => { Name => 'Core'  , Trunk => 1 },
141
    '.cr'       => { Name => 'Core'  , Trunk => 1 },
Line 349... Line 354...
349
    'FinRun'                => 'SkipBuildFileCheck,SelectProjectBase=MASS_Dev_Bus/Financial',
354
    'FinRun'                => 'SkipBuildFileCheck,SelectProjectBase=MASS_Dev_Bus/Financial',
350
    'olstxnstream'          => 'SelectProjectBase=MASS_Dev_Infra/core_olstxnstream',
355
    'olstxnstream'          => 'SelectProjectBase=MASS_Dev_Infra/core_olstxnstream',
351
 
356
 
352
    'product'               => 'SkipBuildFileCheck,SelectProjectBase=MASS_Dev_Bus/Product',
357
    'product'               => 'SkipBuildFileCheck,SelectProjectBase=MASS_Dev_Bus/Product',
353
    'oracen-bei-patch'      => 'RetainCompressed',
358
    'oracen-bei-patch'      => 'RetainCompressed',
-
 
359
    'oracen-patch'          => 'RetainCompressed',
354
    'pcv'                   => 'IgnoreMakeProject',
360
    'pcv'                   => 'IgnoreMakeProject',
355
    'summarisation'         => 'SkipBuildFileCheck',
361
    'summarisation'         => 'SkipBuildFileCheck',
356
    'AVMApplicationEngine'  => 'IgnoreMakeProject',
362
    'AVMApplicationEngine'  => 'IgnoreMakeProject',
357
    'ESL'                   => 'IgnoreMakeProject',
363
    'ESL'                   => 'IgnoreMakeProject',
358
    'daf_br_oar'            => 'IgnoreProjectBase',         # Look OK
364
    'daf_br_oar'            => 'IgnoreProjectBase',         # Look OK
359
    'daf_br'                => 'RetainCompressed,IgnoreProjectBase,SelectProjectBase=DPG_SWBase/daf_br;DPG_SWBase/br',    # Look OK
365
    'daf_br'                => 'RetainCompressed,IgnoreProjectBase,IgnoreMakeProject,SelectProjectBase=DPG_SWBase/daf_br:DPG_SWBase/br',    # Look OK
360
    'daf_dti'               => 'IgnoreProjectBase,SelectProjectBase=DPG_SWBase/dti;DPG_SWBase',
366
    'daf_dti'               => 'IgnoreProjectBase,SelectProjectBase=DPG_SWBase/dti;DPG_SWBase',
361
    'OcpGui'                => 'IgnoreMakeProject',
367
    'OcpGui'                => 'IgnoreMakeProject',
362
    'ssu5000'               => 'ForceProjectBase=/DPG_SWCode',
368
    'ssu5000'               => 'ForceProjectBase=/DPG_SWCode',
-
 
369
    'obftp'                 => 'IgnoreMakeProject,IgnoreProjectBase,ForceProjectBase=/DPG_SWCode',
-
 
370
    'saftp'                 => 'IgnoreProjectBase,ForceProjectBase=/DPG_SWCode',
-
 
371
    'PFTPp'                 => 'IgnoreMakeProject,ForceProjectBase=/DPG_SWCode',        # Need to test
-
 
372
    'ocp5000'               => 'ForceProjectBase=/DPG_SWCode,RetainCompressed,IgnoreMakeProject', # Need to test
-
 
373
    'SPOS'                  => 'ForceProjectBase=/DPG_SWCode',
363
 
374
 
-
 
375
    'gak6000'               => 'ForceProjectBase=/DPG_SWCode,IgnoreProjectBase',
-
 
376
    'gak5000'               => 'ForceProjectBase=/DPG_SWCode,IgnoreProjectBase,IgnoreBadPath',
-
 
377
    'hcp5000'               => 'IgnoreMakeProject,ForceProjectBase=/DPG_SWCode,RetainCompressed,IgnoreBadSourcePath',
-
 
378
    'agents_unit'           => 'IgnoreProjectBase,ForceProjectBase=/DPG_SWCode',
-
 
379
 
-
 
380
    'tp5000'                => 'noVCS,IgnoreProjectBase,ForceProjectBase=/DPG_SWCode',
-
 
381
    'vcp5000'               => 'IgnoreProjectBase,ForceProjectBase=/DPG_SWCode',
364
 
382
 
-
 
383
    'MetrixOra'             => 'Trunk=.sea,ForceSuck,ForceProjectBase=/MASS_Dev_Bus,IgnoreBadSourcePath,NoProcessRipples',
-
 
384
    'oracs'                 => 'ForceSuck,ForceProjectBase=/MASS_Dev_Bus,IgnoreBadSourcePath,NoProcessRipples,SelectProjectBase=MASS_Dev_Bus/web/patches/oracs:MASS_Dev_Bus/web/patches:MASS_Dev_Bus/web',
-
 
385
    'oradacw'               => 'ForceSuck,ForceProjectBase=/MASS_Dev_Bus,IgnoreBadSourcePath,NoProcessRipples,SelectProjectBase=MASS_Dev_Bus/web/patches/oradacw:MASS_Dev_Bus/web/patches:MASS_Dev_Bus/web',
-
 
386
    'orabocw'               => 'ForceSuck,ForceProjectBase=/MASS_Dev_Bus,IgnoreBadSourcePath,NoProcessRipples,SelectProjectBase=MASS_Dev_Bus/web/patches/orabocw:MASS_Dev_Bus/web/patches:MASS_Dev_Bus/web',
365
 
387
 
366
 
388
 
367
    'icl'                   => 'IgnoreProjectBase,',
389
    'icl'                   => 'IgnoreProjectBase,',
368
    'itso'                  => 'IgnoreProjectBase,',
390
    'itso'                  => 'IgnoreProjectBase,',
369
#    'daf_osa_mos'           => 'IgnoreProjectBase,',
391
#    'daf_osa_mos'           => 'IgnoreProjectBase,',
Line 525... Line 547...
525
                'resume'            => \$opt_resume,
547
                'resume'            => \$opt_resume,
526
                'mergePackages:s'   => \$opt_mergePackages,
548
                'mergePackages:s'   => \$opt_mergePackages,
527
                'subdir:s'          => \$opt_repoSubdir,    # Subdir within repo
549
                'subdir:s'          => \$opt_repoSubdir,    # Subdir within repo
528
                'fromSvn!'          => \$opt_extractFromSvn,
550
                'fromSvn!'          => \$opt_extractFromSvn,
529
                'testRepo!'         => \$opt_useTestRepo,
551
                'testRepo!'         => \$opt_useTestRepo,
-
 
552
                'novcs'             => \$opt_noVCS,
530
                );
553
                );
531
 
554
 
532
#
555
#
533
#   Process help and manual options
556
#   Process help and manual options
534
#
557
#
Line 1054... Line 1077...
1054
 
1077
 
1055
        if ( index( $data, ',processRipples,' ) >= 0) {
1078
        if ( index( $data, ',processRipples,' ) >= 0) {
1056
            $opt_processRipples = 1;
1079
            $opt_processRipples = 1;
1057
        }
1080
        }
1058
 
1081
 
-
 
1082
        if ( index( $data, ',NoProcessRipples,' ) >= 0) {
-
 
1083
            $opt_processRipples = 0;
-
 
1084
            Message ("Disable Processing of ripples");
-
 
1085
        }
-
 
1086
 
-
 
1087
        if ( index( $data, ',noVCS,' ) >= 0) {
-
 
1088
            $opt_noVCS = 1;
-
 
1089
            Message ("Use of ClearCase disabled.");
-
 
1090
        }
-
 
1091
 
1059
        if ( index( $data, ',SetProjectBase,' ) >= 0) {
1092
        if ( index( $data, ',SetProjectBase,' ) >= 0) {
1060
            $opt_preserveProjectBase = 1;
1093
            $opt_preserveProjectBase = 1;
1061
            $opt_ignoreProjectBaseErrors = 1;
1094
            $opt_ignoreProjectBaseErrors = 1;
1062
            Message ("Preserving ProjectBase");
1095
            Message ("Preserving ProjectBase");
1063
        }
1096
        }
Line 1065... Line 1098...
1065
        if ( index( $data, ',AllowMultiPath,' ) >= 0) {
1098
        if ( index( $data, ',AllowMultiPath,' ) >= 0) {
1066
            $opt_AllowMuliplePaths = 1;
1099
            $opt_AllowMuliplePaths = 1;
1067
            Message ("Allowing Multiple Paths");
1100
            Message ("Allowing Multiple Paths");
1068
        }
1101
        }
1069
 
1102
 
-
 
1103
        if ( index( $data, ',IgnoreBadSourcePath,' ) >= 0) {
-
 
1104
            $opt_IgnoreBadSourcePath = 1;
-
 
1105
            Message ("Ignore Source Paths tagged as Bad");
-
 
1106
        }
-
 
1107
        
1070
        if ( $data =~ m~,ForceProjectBase=(.*?),~ ) {
1108
        if ( $data =~ m~,ForceProjectBase=(.*?),~ ) {
1071
            $opt_forceProjectBase = $1;
1109
            $opt_forceProjectBase = $1;
1072
            $opt_AllowMuliplePaths = 1;
1110
            $opt_AllowMuliplePaths = 1;
1073
            Message ("Force Project Base: $opt_forceProjectBase");
1111
            Message ("Force Project Base: $opt_forceProjectBase");
1074
        }
1112
        }
Line 1098... Line 1136...
1098
 
1136
 
1099
        if ( $data =~ m~,DeleteLinks,~ ) {
1137
        if ( $data =~ m~,DeleteLinks,~ ) {
1100
            $opt_deleteLinks = 1;
1138
            $opt_deleteLinks = 1;
1101
            Message ("Delete soft links");
1139
            Message ("Delete soft links");
1102
        }
1140
        }
-
 
1141
 
-
 
1142
        if ( index( $data, ',ForceSuck,' ) >= 0) {
-
 
1143
            $opt_forceSuck = 1;
-
 
1144
            Message ("Force sucking empty directories");
1103
        
1145
        }
-
 
1146
 
1104
        if ( index( $data, ',IgnoreProjectBase,' ) >= 0) {
1147
        if ( index( $data, ',IgnoreProjectBase,' ) >= 0) {
1105
            $opt_ignoreProjectBaseErrors = 1;
1148
            $opt_ignoreProjectBaseErrors = 1;
1106
            Message ("Ignore ProjectBase Errors");
1149
            Message ("Ignore ProjectBase Errors");
1107
        }
1150
        }
1108
 
1151
 
Line 1241... Line 1284...
1241
            {
1284
            {
1242
                my $ep = $versions{$entry};
1285
                my $ep = $versions{$entry};
1243
                unless ( $ep->{last} || $ep->{next}[0] )
1286
                unless ( $ep->{last} || $ep->{next}[0] )
1244
                {
1287
                {
1245
#                    if (  $ep->{isaWip}  )
1288
#                    if (  $ep->{isaWip}  )
1246
                    if ( (exists $ep->{badVcsTag} && $ep->{badVcsTag}) || $ep->{isaWip}  )
1289
                    if ( (!$opt_IgnoreBadSourcePath  && (exists $ep->{badVcsTag}  && $ep->{badVcsTag})) || $ep->{isaWip} )
1247
                    {
1290
                    {
1248
                        $ep->{badSingleton} = 1;
1291
                        $ep->{badSingleton} = 1;
1249
                        $reprocess = 1;
1292
                        $reprocess = 1;
1250
                        $badSingletonCount++;
1293
                        $badSingletonCount++;
1251
 
1294
 
Line 1261... Line 1304...
1261
            calcLinks()
1304
            calcLinks()
1262
                if ( $reprocess );
1305
                if ( $reprocess );
1263
        }
1306
        }
1264
 
1307
 
1265
        #
1308
        #
-
 
1309
        #   True Patches show up as singletons - they have no parent
-
 
1310
        #   Need to create strands of patches to be glued onto the base
-
 
1311
        #
-
 
1312
        {
-
 
1313
            my %patchTree;
-
 
1314
            my $patchSeen;
-
 
1315
            Message ("Creating patch threads");
-
 
1316
            foreach my $entry ( sort {$versions{$a}{version} cmp $versions{$b}{version}} @startPoints )
-
 
1317
            {
-
 
1318
                my $ep = $versions{$entry};
-
 
1319
                next unless ( defined $ep->{buildVersion} );
-
 
1320
 
-
 
1321
                my $suffix = $ep->{name} . $ep->{suffix};
-
 
1322
 
-
 
1323
                my ($major, $minor, $patch, $build) = @{$ep->{buildVersion}};
-
 
1324
 
-
 
1325
                my $patchBase = sprintf ("%3.3d.%3.3d.%3.3d.$suffix", $major, $minor, $patch);
-
 
1326
                
-
 
1327
                if ( defined $ep->{buildVersion} )
-
 
1328
                {
-
 
1329
                    if ( $ep->{isaPatch} )
-
 
1330
                    {
-
 
1331
                        push @{$patchTree{$patchBase}}, $entry;
-
 
1332
                        $ep->{patchRoot} = $patchBase;
-
 
1333
                        $patchSeen++;
-
 
1334
                    }
-
 
1335
                }
-
 
1336
            }
-
 
1337
 
-
 
1338
            my %patchRoot;
-
 
1339
            if ($patchSeen)
-
 
1340
            {
-
 
1341
                foreach my $entry ( sort {$versions{$a}{version} cmp $versions{$b}{version}} keys %versions )
-
 
1342
                {
-
 
1343
                    my $ep = $versions{$entry};
-
 
1344
                    next if ( $ep->{isaPatch} );
-
 
1345
                    next unless ( defined $ep->{buildVersion} );
-
 
1346
 
-
 
1347
                    my $suffix = $ep->{name} . $ep->{suffix};
-
 
1348
                    my ($major, $minor, $patch, $build) = @{$ep->{buildVersion}};
-
 
1349
                    my $patchBase = sprintf ("%3.3d.%3.3d.%3.3d.$suffix", $major, $minor, $patch);
-
 
1350
 
-
 
1351
                    if ( defined $patchRoot{$patchBase})
-
 
1352
                    {
-
 
1353
                        Warning ("Multiple Patch Roots identified", $versions{$patchRoot{$patchBase}}{vname},$ep->{vname}, "Both hash to: " . $patchBase );
-
 
1354
                    }
-
 
1355
                    else
-
 
1356
                    {
-
 
1357
                        $patchRoot{$patchBase} = $entry;
-
 
1358
                    }
-
 
1359
                }
-
 
1360
 
-
 
1361
#DebugDumpData('%patchRoot', \%patchRoot );
-
 
1362
                foreach  ( keys %patchTree )
-
 
1363
                {
-
 
1364
                    my $last;
-
 
1365
                    foreach my $entry ( sort {$versions{$a}{version} cmp $versions{$b}{version}} @{$patchTree{$_}} )
-
 
1366
                    {
-
 
1367
                        if ( $last )
-
 
1368
                        {
-
 
1369
                            $versions{$last}{MakeTree} = 1;
-
 
1370
                            push @{$versions{$last}{next}}, $entry;
-
 
1371
                            $reprocess = 1;
-
 
1372
                        }
-
 
1373
                        else
-
 
1374
                        {
-
 
1375
                            # First entry in thread.
-
 
1376
 
-
 
1377
# print "--- Patch Branch $versions{$entry}{vname}\n";
-
 
1378
                            $versions{$entry}{branchPoint} = 2;
-
 
1379
                            
-
 
1380
 
-
 
1381
                            my $patchBase = $versions{$entry}{patchRoot};
-
 
1382
                            my $patchBaseEntry = $patchRoot{$patchBase};
-
 
1383
                            if ( $patchBase )
-
 
1384
                            {
-
 
1385
 
-
 
1386
                                if ( defined($patchBaseEntry) && exists ($versions{$patchBaseEntry}) )
-
 
1387
                                {
-
 
1388
                                    push @{$versions{$patchBaseEntry}{next}}, $entry;
-
 
1389
#    Message( "Attaching ",$versions{$entry}{version}," to $patchBase");
-
 
1390
                                }
-
 
1391
                                else
-
 
1392
                                {
-
 
1393
    Message( "Cannot Attach ",$versions{$entry}{version}," to $patchBase" );
-
 
1394
                                    Warning ("Cannot attach thread. No base version");
-
 
1395
                                }
-
 
1396
                            }
-
 
1397
                        }
-
 
1398
                        $last = $entry;
-
 
1399
                    }
-
 
1400
                }
-
 
1401
            }
-
 
1402
            calcLinks()
-
 
1403
                if ( $reprocess );
-
 
1404
        }
-
 
1405
#DebugDumpData('$verions', \%versions );
-
 
1406
 
-
 
1407
        #
1266
        #   Create simple trees out of the chains
1408
        #   Create simple trees out of the chains
1267
        #   Tree is based on suffix (project) and version
1409
        #   Tree is based on suffix (project) and version
1268
        #
1410
        #
1269
        {
1411
        {
1270
            my %trees;
1412
            my %trees;
Line 1276... Line 1418...
1276
            }
1418
            }
1277
 
1419
 
1278
            foreach  ( keys %trees )
1420
            foreach  ( keys %trees )
1279
            {
1421
            {
1280
                my $last;
1422
                my $last;
1281
                foreach my $entry ( sort { $versions{$a}{version} cmp $versions{$b}{version}  } @{$trees{$_}} )
1423
                foreach my $entry ( sort {$versions{$a}{version} cmp $versions{$b}{version}} @{$trees{$_}} )
1282
                {
1424
                {
1283
                    if ( $last )
1425
                    if ( $last )
1284
                    {
1426
                    {
1285
                        $versions{$last}{MakeTree} = 1;
1427
                        $versions{$last}{MakeTree} = 1;
1286
                        push @{$versions{$last}{next}}, $entry;
1428
                        push @{$versions{$last}{next}}, $entry;
Line 1823... Line 1965...
1823
    #   Display warnings about Bad Essential Packages
1965
    #   Display warnings about Bad Essential Packages
1824
    #
1966
    #
1825
    $allSvn = 1;
1967
    $allSvn = 1;
1826
    foreach my $entry ( keys(%versions) )
1968
    foreach my $entry ( keys(%versions) )
1827
    {
1969
    {
-
 
1970
        markDpkgArchive($entry);
1828
        $rippleCount++ if ( exists($versions{$entry}{isaRipple}) && $versions{$entry}{isaRipple} );
1971
        $rippleCount++ if ( exists($versions{$entry}{isaRipple}) && $versions{$entry}{isaRipple} );
1829
        $allSvn = 0 unless ( $versions{$entry}{isSvn} );
1972
        $allSvn = 0 unless ( $versions{$entry}{isSvn} );
1830
        next unless ( exists $versions{$entry}{Essential}  );
1973
        next unless ( exists $versions{$entry}{Essential}  );
1831
        next unless ( $versions{$entry}{badVcsTag}  );
1974
        next unless ( $versions{$entry}{badVcsTag}  );
1832
        push @badEssentials, $entry;
1975
        push @badEssentials, $entry;
1833
        Warning ("BadVCS Essential: " . GetVname($entry))
1976
        Warning ("BadVCS Essential: " . GetVname($entry));
1834
    }
1977
    }
1835
 
1978
 
1836
    #
1979
    #
1837
    #   All done
1980
    #   All done
1838
    #
1981
    #
Line 2350... Line 2493...
2350
#        $data->{errStr} = 'Package is DeadWood';
2493
#        $data->{errStr} = 'Package is DeadWood';
2351
#        return 3;
2494
#        return 3;
2352
#    }
2495
#    }
2353
 
2496
 
2354
    #
2497
    #
-
 
2498
    #   Check for a handcrafted substitute package
2355
    #   Determine version information
2499
    #       May have been created with gen_cots
2356
    #
2500
    #
2357
    $data->{tag} = $versions{$entry}{vcsTag} || '';
2501
    testDpkgArchive($entry);
2358
    if ( $versions{$entry}{badVcsTag} )
2502
    if (extractFilesFromStore($data, $entry) )
2359
    {
2503
    {
2360
        Warning ("Error: Bad VcsTag for: " . GetVname($entry),
-
 
2361
                 "Tag: $data->{tag}" );
2504
        Message ("Using package from store");
2362
        $data->{errStr} = 'VCS Tag Marked as Bad';
-
 
2363
        return 1;
-
 
2364
 
-
 
2365
    }
2505
    }
2366
 
-
 
2367
 
-
 
2368
    $data->{tag} =~ m~^(.+?)::(.*?)(::(.+))?$~;
-
 
2369
    $vcs_type = $1;
-
 
2370
    $cc_label = $4;
2506
    else
2371
    $cc_path = $2;
-
 
2372
    $cc_path = '/' . $cc_path;
-
 
2373
    $cc_path =~ tr~\\/~/~s;
-
 
2374
    $cc_path_original = $cc_path;
-
 
2375
 
-
 
2376
    #
2507
    {
2377
    #   Correct well known path mistakes in CC paths
-
 
2378
    #
2508
        #
2379
    if ( $vcs_type eq 'CC' )
2509
        #   Determine version information
2380
    {
2510
        #
2381
        $cc_path =~ s~/build.pl$~~i;
-
 
2382
        $cc_path =~ s~/src$~~i;
2511
        if ($opt_IgnoreBadSourcePath)
2383
        $cc_path =~ s~/cpp$~~i;
-
 
2384
        $cc_path =~ s~/MASS_Dev/Infra/~/MASS_Dev_Infra/~i;
-
 
2385
        $cc_path =~ s~/MASS_Dev/Tools/~/MASS_Dev_Tools/~i;
-
 
2386
        $cc_path =~ s~/MASS_Dev/Bus/~/MASS_Dev_Bus/~i;
-
 
2387
        $cc_path =~ s~/MASS_Dev_Bus/Cbp/~/MASS_Dev_Bus/CBP/~i;
-
 
2388
        $cc_path =~ s~/MREF_Package/ergpostmongui$~/MREF_Package/ergpostmongui~i;
-
 
2389
        $cc_path =~ s~/MREF_../MREF_Package/~/MREF_Package/~i;
-
 
2390
        $cc_path =~ s~/MREF_Package/mass_ergocdp/~/MREF_Package/ergocdp/~i;
-
 
2391
        $cc_path =~ s~/MASS_Dev_Bus/CBP/systemCD.ejb~/MASS_Dev_Bus/CBP/systemCD/ejb~i;
-
 
2392
        $cc_path =~ s~/MASS_Dev_Bus/Financial/cpp/paymentmanager~/MASS_Dev_Bus/Financial/cpp/paymentmanager~i;
-
 
2393
        $cc_path =~ s~/MASS_Dev_Bus/WebServices~/MASS_Dev_Bus/WebServices~i;
-
 
2394
        $cc_path =~ s~/MASS_Dev_Bus/CBP/nullAdapter~//MASS_Dev_Bus/CBP/nullAdaptor~i;
-
 
2395
        $cc_path =~ s~/DPG_SWBase/Services~/DPG_SWBase/services~i;
-
 
2396
 
-
 
2397
 
-
 
2398
        $cc_path = '/MASS_Dev_Bus/Application' if ( $versions{$entry}{name} eq 'application');
-
 
2399
        $cc_path = '/MASS_Dev_Bus/Product'     if ( $versions{$entry}{name} eq 'product');
-
 
2400
        $cc_path = '/MASS_Dev_Bus/Financial'   if ( $versions{$entry}{name} eq 'FinRun');
-
 
2401
 
-
 
2402
        $cc_path = '/MASS_Dev_Bus' if ( $cc_path =~ m~/MASS_Dev_Bus/ImageCapture(/|$)~i );
-
 
2403
        $cc_path = '/MASS_Dev_Bus' if ( $cc_path =~ m~/MASS_Dev_Bus/ImageCapture(/|$)~i );
-
 
2404
        $cc_path = '/MASS_Dev_Bus/CBP/enquiry' if ( $versions{$entry}{name} eq 'EJBEnqPxyConnector');
-
 
2405
        $cc_path = '/MASS_Dev_Bus/CBP/enquiry' if ( $versions{$entry}{name} eq 'proxyif4j');
-
 
2406
        $cc_path = '/MASS_Dev_Bus' if ( $versions{$entry}{name} eq 'ImageCaptureTomcatDeployment');
-
 
2407
        $cc_path = '/MASS_Dev_Bus/WebServices/MassWS' if ( $versions{$entry}{name} eq 'MassWebServicesImpl');
-
 
2408
 
-
 
2409
        if (   $versions{$entry}{name} =~ m/^ERGagency$/i
-
 
2410
            || $versions{$entry}{name} =~ m/^ERGavm$/i
-
 
2411
            || $versions{$entry}{name} =~ m/^ERGboi$/i
-
 
2412
            || $versions{$entry}{name} =~ m/^ERGcallcenter$/i
-
 
2413
            || $versions{$entry}{name} =~ m/^ERGcardholder$/i
-
 
2414
            || $versions{$entry}{name} =~ m/^ERGcdaimports$/i
-
 
2415
            || $versions{$entry}{name} =~ m/^ERGcda$/i
-
 
2416
            || $versions{$entry}{name} =~ m/^ERGcscedit$/i
-
 
2417
            || $versions{$entry}{name} =~ m/^ERGcs$/i
-
 
2418
            || $versions{$entry}{name} =~ m/^ERGofs$/i
-
 
2419
            || $versions{$entry}{name} =~ m/^ERGols$/i
-
 
2420
            || $versions{$entry}{name} =~ m/^ERGtpf$/i
-
 
2421
            || $versions{$entry}{name} =~ m/^ERGorasys$/i
-
 
2422
            || $versions{$entry}{name} =~ m/^ERGoracs$/i
-
 
2423
            || $versions{$entry}{name} =~ m/^ERGpxyif$/i
-
 
2424
            || $versions{$entry}{name} =~ m/^ERGtp5upg$/i
-
 
2425
            || $versions{$entry}{name} =~ m/^ERGinstitutional$/i
-
 
2426
            || $versions{$entry}{name} =~ m/^ERGinfra$/i
-
 
2427
            || $versions{$entry}{name} =~ m/^ERGcrrpts$/i
-
 
2428
            || $versions{$entry}{name} =~ m/^ERGmiddle$/i
-
 
2429
            || $versions{$entry}{name} =~ m/^ERGmiddleapi$/i
-
 
2430
            || $versions{$entry}{name} =~ m/^ERGwebapi$/i
-
 
2431
            || $versions{$entry}{name} =~ m/^ERGwebtestui$/i
-
 
2432
            || $versions{$entry}{name} =~ m/^ERGwebesbui$/i
-
 
2433
            || $versions{$entry}{name} =~ m/^ERGwspiv$/i
-
 
2434
            || $versions{$entry}{name} =~ m/^ERGwscst$/i
-
 
2435
            || $versions{$entry}{name} =~ m/^sposMUG$/i
-
 
2436
            || $versions{$entry}{name} =~ m/^ERGfinman$/i
-
 
2437
            || $versions{$entry}{name} =~ m/^ERGkm$/i
-
 
2438
            || $versions{$entry}{name} =~ m/^ERGxml$/i
-
 
2439
            || $versions{$entry}{name} =~ m/^ERGoradacw$/i
-
 
2440
            || $versions{$entry}{name} =~ m/^ERGtru$/i
-
 
2441
            )
-
 
2442
        {
2512
        {
-
 
2513
            # Ignore versions tagged with a bad source path
-
 
2514
            #   Will expect that the Vob will be forced
2443
            $cc_path = '/MREF_Package';
2515
            #   Hope that we have a label
-
 
2516
            delete $versions{$entry}{badVcsTag};
2444
        }
2517
        }
2445
 
2518
 
-
 
2519
        $data->{tag} = $versions{$entry}{vcsTag} || '';
2446
        if (   $versions{$entry}{name} =~ m/^tp5000_MUG$/i )
2520
        if ( $versions{$entry}{badVcsTag} )
2447
        {
2521
        {
2448
            if ( $versions{$entry}{version} =~ m~vtk$~ )
2522
            Warning ("Error: Bad VcsTag for: " . GetVname($entry),
2449
            {
2523
                     "Tag: $data->{tag}" );
2450
                $cc_path = '/MREF_Package';
2524
            $data->{errStr} = 'VCS Tag Marked as Bad';
2451
            }
2525
            return 1;
-
 
2526
 
2452
        }
2527
        }
2453
 
2528
 
2454
        $cc_path = $opt_forceProjectBase
-
 
2455
            if ( $opt_forceProjectBase );
-
 
2456
 
2529
 
-
 
2530
        $data->{tag} =~ m~^(.+?)::(.*?)(::(.+))?$~;
-
 
2531
        $vcs_type = $1;
-
 
2532
        $cc_label = $4;
-
 
2533
        $cc_path = $2;
-
 
2534
        $cc_path = '/' . $cc_path;
-
 
2535
        $cc_path =~ tr~\\/~/~s;
-
 
2536
        $cc_path_original = $cc_path;
-
 
2537
 
-
 
2538
        #
-
 
2539
        #   Process IgnoreBadSourcePath
-
 
2540
        #
2457
        foreach ( @opt_limitProjectBase )
2541
        if ($opt_IgnoreBadSourcePath)
2458
        {
2542
        {
2459
            if ( $cc_path =~ m~$_~ )
2543
            if (($vcs_type eq 'UC') || (length($cc_label) < 1))
2460
            {
2544
            {
-
 
2545
                $versions{$entry}{badVcsTag} = 98;
-
 
2546
                Warning ("Error: Bad VcsTag for: " . GetVname($entry),
-
 
2547
                         "Tag: $data->{tag}" );
-
 
2548
                $data->{errStr} = 'VCS Tag Marked as Bad - and has no label';
2461
                $cc_path = $_;
2549
                return 1;
-
 
2550
            }
-
 
2551
        }
-
 
2552
 
-
 
2553
        #
-
 
2554
        #   Correct well known path mistakes in CC paths
-
 
2555
        #
-
 
2556
        if ( $vcs_type eq 'CC' )
-
 
2557
        {
-
 
2558
            $cc_path =~ s~/build.pl$~~i;
-
 
2559
            $cc_path =~ s~/src$~~i;
-
 
2560
            $cc_path =~ s~/cpp$~~i;
-
 
2561
            $cc_path =~ s~/MASS_Dev/Infra/~/MASS_Dev_Infra/~i;
-
 
2562
            $cc_path =~ s~/MASS_Dev/Tools/~/MASS_Dev_Tools/~i;
-
 
2563
            $cc_path =~ s~/MASS_Dev/Bus/~/MASS_Dev_Bus/~i;
-
 
2564
            $cc_path =~ s~/MASS_Dev_Bus/Cbp/~/MASS_Dev_Bus/CBP/~i;
-
 
2565
            $cc_path =~ s~/MREF_Package/ergpostmongui$~/MREF_Package/ergpostmongui~i;
-
 
2566
            $cc_path =~ s~/MREF_../MREF_Package/~/MREF_Package/~i;
-
 
2567
            $cc_path =~ s~/MREF_Package/mass_ergocdp/~/MREF_Package/ergocdp/~i;
-
 
2568
            $cc_path =~ s~/MASS_Dev_Bus/CBP/systemCD.ejb~/MASS_Dev_Bus/CBP/systemCD/ejb~i;
-
 
2569
            $cc_path =~ s~/MASS_Dev_Bus/Financial/cpp/paymentmanager~/MASS_Dev_Bus/Financial/cpp/paymentmanager~i;
-
 
2570
            $cc_path =~ s~/MASS_Dev_Bus/WebServices~/MASS_Dev_Bus/WebServices~i;
-
 
2571
            $cc_path =~ s~/MASS_Dev_Bus/CBP/nullAdapter~//MASS_Dev_Bus/CBP/nullAdaptor~i;
-
 
2572
            $cc_path =~ s~/DPG_SWBase/Services~/DPG_SWBase/services~i;
-
 
2573
 
-
 
2574
 
-
 
2575
            $cc_path = '/MASS_Dev_Bus/Application' if ( $versions{$entry}{name} eq 'application');
-
 
2576
            $cc_path = '/MASS_Dev_Bus/Product'     if ( $versions{$entry}{name} eq 'product');
-
 
2577
            $cc_path = '/MASS_Dev_Bus/Financial'   if ( $versions{$entry}{name} eq 'FinRun');
-
 
2578
 
-
 
2579
            $cc_path = '/MASS_Dev_Bus' if ( $cc_path =~ m~/MASS_Dev_Bus/ImageCapture(/|$)~i );
-
 
2580
            $cc_path = '/MASS_Dev_Bus' if ( $cc_path =~ m~/MASS_Dev_Bus/ImageCapture(/|$)~i );
-
 
2581
            $cc_path = '/MASS_Dev_Bus/CBP/enquiry' if ( $versions{$entry}{name} eq 'EJBEnqPxyConnector');
-
 
2582
            $cc_path = '/MASS_Dev_Bus/CBP/enquiry' if ( $versions{$entry}{name} eq 'proxyif4j');
-
 
2583
            $cc_path = '/MASS_Dev_Bus' if ( $versions{$entry}{name} eq 'ImageCaptureTomcatDeployment');
-
 
2584
            $cc_path = '/MASS_Dev_Bus/WebServices/MassWS' if ( $versions{$entry}{name} eq 'MassWebServicesImpl');
-
 
2585
 
-
 
2586
            if (   $versions{$entry}{name} =~ m/^ERGagency$/i
-
 
2587
                || $versions{$entry}{name} =~ m/^ERGavm$/i
-
 
2588
                || $versions{$entry}{name} =~ m/^ERGboi$/i
-
 
2589
                || $versions{$entry}{name} =~ m/^ERGcallcenter$/i
-
 
2590
                || $versions{$entry}{name} =~ m/^ERGcardholder$/i
-
 
2591
                || $versions{$entry}{name} =~ m/^ERGcdaimports$/i
-
 
2592
                || $versions{$entry}{name} =~ m/^ERGcda$/i
-
 
2593
                || $versions{$entry}{name} =~ m/^ERGcscedit$/i
-
 
2594
                || $versions{$entry}{name} =~ m/^ERGcs$/i
-
 
2595
                || $versions{$entry}{name} =~ m/^ERGofs$/i
-
 
2596
                || $versions{$entry}{name} =~ m/^ERGols$/i
-
 
2597
                || $versions{$entry}{name} =~ m/^ERGtpf$/i
-
 
2598
                || $versions{$entry}{name} =~ m/^ERGorasys$/i
-
 
2599
                || $versions{$entry}{name} =~ m/^ERGoracs$/i
-
 
2600
                || $versions{$entry}{name} =~ m/^ERGpxyif$/i
-
 
2601
                || $versions{$entry}{name} =~ m/^ERGtp5upg$/i
-
 
2602
                || $versions{$entry}{name} =~ m/^ERGinstitutional$/i
-
 
2603
                || $versions{$entry}{name} =~ m/^ERGinfra$/i
-
 
2604
                || $versions{$entry}{name} =~ m/^ERGcrrpts$/i
-
 
2605
                || $versions{$entry}{name} =~ m/^ERGmiddle$/i
-
 
2606
                || $versions{$entry}{name} =~ m/^ERGmiddleapi$/i
-
 
2607
                || $versions{$entry}{name} =~ m/^ERGwebapi$/i
-
 
2608
                || $versions{$entry}{name} =~ m/^ERGwebtestui$/i
-
 
2609
                || $versions{$entry}{name} =~ m/^ERGwebesbui$/i
-
 
2610
                || $versions{$entry}{name} =~ m/^ERGwspiv$/i
-
 
2611
                || $versions{$entry}{name} =~ m/^ERGwscst$/i
-
 
2612
                || $versions{$entry}{name} =~ m/^sposMUG$/i
-
 
2613
                || $versions{$entry}{name} =~ m/^ERGfinman$/i
-
 
2614
                || $versions{$entry}{name} =~ m/^ERGkm$/i
-
 
2615
                || $versions{$entry}{name} =~ m/^ERGxml$/i
-
 
2616
                || $versions{$entry}{name} =~ m/^ERGoradacw$/i
-
 
2617
                || $versions{$entry}{name} =~ m/^ERGtru$/i
2462
                last;
2618
                )
-
 
2619
            {
-
 
2620
                $cc_path = '/MREF_Package';
2463
            }
2621
            }
2464
        }
-
 
2465
 
2622
 
2466
        if ( $cc_path_original ne $cc_path )
2623
            if (   $versions{$entry}{name} =~ m/^tp5000_MUG$/i )
2467
        {
2624
            {
2468
                Message ("Package: $versions{$entry}{name}. Forcing CC path to: $cc_path" );
2625
                if ( $versions{$entry}{version} =~ m~vtk$~ )
2469
        }
2626
                {
-
 
2627
                    $cc_path = '/MREF_Package';
2470
    }
2628
                }
2471
    
2629
            }
2472
#print "--- Path: $cc_path, Label: $cc_label\n";
-
 
2473
 
2630
 
2474
    if ( $vcs_type eq 'SVN' )
-
 
2475
    {
-
 
2476
        $rv = extractFilesFromSubversion( $data, $entry );
-
 
2477
        return $rv if ( $rv );
-
 
2478
    }
-
 
2479
    else
-
 
2480
    {
-
 
2481
        #
-
 
2482
        #   Create CC view
-
 
2483
        #   Import into Subversion View
2631
            $cc_path = $opt_forceProjectBase
2484
        #
-
 
2485
        $rv = extractFilesFromClearCase( $data, $cc_path, $cc_label, $entry );
-
 
2486
        return $rv if ( $rv );
2632
                if ( $opt_forceProjectBase );
2487
 
2633
 
2488
        #
-
 
2489
        #   May need to limit the extracted source tree
-
 
2490
        #   Use the first selected directory that we have
-
 
2491
        #
-
 
2492
        if ( @opt_selectProjectBase )
-
 
2493
        {
-
 
2494
            foreach ( @opt_selectProjectBase )
2634
            foreach ( @opt_limitProjectBase )
2495
            {
2635
            {
2496
                my $testDir = join('/', $data->{ViewRoot}, $_);
-
 
2497
                if ( -d $testDir )
2636
                if ( $cc_path =~ m~$_~ )
2498
                {
2637
                {
2499
                    $selectDir = $_;
2638
                    $cc_path = $_;
2500
                    $data->{ViewPath} = $testDir;
-
 
2501
                    last;
2639
                    last;
2502
                }
2640
                }
2503
            }
2641
            }
2504
 
2642
 
2505
            unless ( $selectDir )
2643
            if ( $cc_path_original ne $cc_path )
2506
            {
2644
            {
2507
                Warning ("No directory selected from list");
2645
                    Message ("Package: $versions{$entry}{name}. Forcing CC path to: $cc_path" );
2508
            }
2646
            }
-
 
2647
        }
-
 
2648
    
-
 
2649
    #print "--- Path: $cc_path, Label: $cc_label\n";
-
 
2650
 
-
 
2651
        if ( $vcs_type eq 'SVN' )
-
 
2652
        {
-
 
2653
            $rv = extractFilesFromSubversion( $data, $entry );
-
 
2654
            return $rv if ( $rv );
-
 
2655
        }
-
 
2656
        else
-
 
2657
        {
2509
            else
2658
            #
-
 
2659
            #   Create CC view
-
 
2660
            #   Import into Subversion View
-
 
2661
            #
-
 
2662
            $rv = extractFilesFromClearCase( $data, $cc_path, $cc_label, $entry );
-
 
2663
            return $rv if ( $rv );
-
 
2664
 
-
 
2665
            #
-
 
2666
            #   May need to limit the extracted source tree
-
 
2667
            #   Use the first selected directory that we have
-
 
2668
            #
-
 
2669
            if ( @opt_selectProjectBase )
2510
            {
2670
            {
-
 
2671
                foreach ( @opt_selectProjectBase )
-
 
2672
                {
-
 
2673
                    my $testDir = join('/', $data->{ViewRoot}, $_);
-
 
2674
                    if ( -d $testDir )
-
 
2675
                    {
-
 
2676
                        $selectDir = $_;
-
 
2677
                        $data->{ViewPath} = $testDir;
-
 
2678
                        last;
-
 
2679
                    }
-
 
2680
                }
-
 
2681
 
-
 
2682
                unless ( $selectDir )
-
 
2683
                {
-
 
2684
                    Warning ("No directory selected from list");
-
 
2685
                }
-
 
2686
                else
-
 
2687
                {
2511
                Message ("Selecting Dir: /$selectDir");
2688
                    Message ("Selecting Dir: /$selectDir");
-
 
2689
                }
2512
            }
2690
            }
2513
        }
2691
        }
2514
    }
2692
    }
2515
 
2693
 
2516
    #
2694
    #
Line 2547... Line 2725...
2547
    #       Sometimes as 'GMTPE2005/Package/Fred/Jill/Harry'
2725
    #       Sometimes as 'GMTPE2005/Package/Fred/Jill/Harry'
2548
    #
2726
    #
2549
    #   Attempt to suck up empty directories below the specified
2727
    #   Attempt to suck up empty directories below the specified
2550
    #   source path
2728
    #   source path
2551
    #
2729
    #
2552
    unless ( $opt_preserveProjectBase || $opt_forceProjectBase || @opt_limitProjectBase || $selectDir)
2730
    unless (($opt_preserveProjectBase || $opt_forceProjectBase || @opt_limitProjectBase || $selectDir) && ! $opt_forceSuck)
2553
    {
2731
    {
2554
        #
2732
        #
2555
        #   Look in ViewPath
2733
        #   Look in ViewPath
2556
        #   If it contains only ONE directory then we can suck it up
2734
        #   If it contains only ONE directory then we can suck it up
2557
        #
2735
        #
Line 2570... Line 2748...
2570
    #
2748
    #
2571
    #   Check for bad source paths
2749
    #   Check for bad source paths
2572
    #
2750
    #
2573
    if (detectBadMakePaths($data) )
2751
    if (detectBadMakePaths($data) )
2574
    {
2752
    {
-
 
2753
        $count_BadPaths++;
2575
        unless ( $opt_ignoreBadPaths )
2754
        unless ( $opt_ignoreBadPaths )
2576
        {
2755
        {
2577
            $data->{BadPath}++;
2756
            $data->{BadPath}++;
2578
            $data->{errStr} = 'Bad Paths in Makefile';
2757
            $data->{errStr} = 'Bad Paths in Makefile';
2579
            return 4;           # Lets see what the others look like too
2758
            return 4;           # Lets see what the others look like too
Line 2972... Line 3151...
2972
#                   Perform the calculation to determine the details of
3151
#                   Perform the calculation to determine the details of
2973
#                   the branch point. The work will only be done when its
3152
#                   the branch point. The work will only be done when its
2974
#                   needed. This will avoid the creation of branchpoints
3153
#                   needed. This will avoid the creation of branchpoints
2975
#                   that are not used.
3154
#                   that are not used.
2976
#
3155
#
2977
# Inputs          : $entry                  Entry being processed
3156
# Inputs          : $entry          - Entry being processed
2978
#                   $author         - Who done it
3157
#                   $author         - Who done it
2979
#                   $date           - When
3158
#                   $date           - When
2980
#
3159
#
2981
# Returns         : 
3160
# Returns         : 
2982
#
3161
#
Line 3037... Line 3216...
3037
 
3216
 
3038
    #
3217
    #
3039
    #   Create target name
3218
    #   Create target name
3040
    #
3219
    #
3041
    my $tgt_label;
3220
    my $tgt_label;
-
 
3221
    if ($versions{$entry}{isaPatch} )
-
 
3222
    {
-
 
3223
        my $parent = $versions{$entry}{last};
-
 
3224
        my $pver = $versions{$parent}{vname};
-
 
3225
        $tgt_label = 'Patching_' . $pver;
-
 
3226
    }
3042
    if ( $forceNewProject || $versions{$entry}{newSuffix} || $createSuffix || !defined $src_label )
3227
    elsif ( $forceNewProject || $versions{$entry}{newSuffix} || $createSuffix || !defined $src_label )
3043
    {
3228
    {
3044
        #
3229
        #
3045
        #   Create target name based on project
3230
        #   Create target name based on project
3046
        #
3231
        #
3047
        return if ( $singleProject );
3232
        return if ( $singleProject );
Line 3057... Line 3242...
3057
            #
3242
            #
3058
            if ( $Projects{$suffix}{Trunk} )
3243
            if ( $Projects{$suffix}{Trunk} )
3059
            {
3244
            {
3060
                # This project can use the trunk, if it has not been allocated.
3245
                # This project can use the trunk, if it has not been allocated.
3061
                $ProjectTrunk = $suffix unless ( defined $ProjectTrunk );
3246
                $ProjectTrunk = $suffix unless ( defined $ProjectTrunk );
3062
                
3247
#                Message ("ProjectTrunk allocated to: $ProjectTrunk");
3063
                #
3248
                #
3064
                #   If this package has multiple instances of the potential
3249
                #   If this package has multiple instances of the potential
3065
                #   trunk, then don't place either of them on the trunk as it
3250
                #   trunk, then don't place either of them on the trunk as it
3066
                #   may cause confusion
3251
                #   may cause confusion
3067
                #
3252
                #
Line 3105... Line 3290...
3105
 
3290
 
3106
    #
3291
    #
3107
    #   Save branch name for use when populating sandbox
3292
    #   Save branch name for use when populating sandbox
3108
    #
3293
    #
3109
    $currentBranchName = $tgt_label;
3294
    $currentBranchName = $tgt_label;
-
 
3295
#    Message ("Setting currentBranchName: $currentBranchName");
3110
 
3296
 
3111
    #
3297
    #
3112
    #   Perform the branch
3298
    #   Perform the branch
3113
    #
3299
    #
3114
    if ( defined $src_label )
3300
    if ( defined $src_label )
Line 3224... Line 3410...
3224
    Warning ("Packages not processed: $notProcessedCount") if ( $notProcessedCount );
3410
    Warning ("Packages not processed: $notProcessedCount") if ( $notProcessedCount );
3225
    Warning ("Internal Errors: $inernalErrorCount") if ( $inernalErrorCount );
3411
    Warning ("Internal Errors: $inernalErrorCount") if ( $inernalErrorCount );
3226
    Warning ("Multiple source paths", @multiplePaths ) if ( scalar @multiplePaths > 1 );
3412
    Warning ("Multiple source paths", @multiplePaths ) if ( scalar @multiplePaths > 1 );
3227
    Message ("Packages Relabled: $packageReLabelCount") if ( $packageReLabelCount );
3413
    Message ("Packages Relabled: $packageReLabelCount") if ( $packageReLabelCount );
3228
    Warning ("Packages with Bad Paths: $badPathCount") if ( $badPathCount );
3414
    Warning ("Packages with Bad Paths: $badPathCount") if ( $badPathCount );
-
 
3415
    Warning ("Packages with Ignored Bad Paths: $badPathCount") if ( $count_BadPaths );
-
 
3416
 
3229
    Warning ("Packages with Bad ProjectBase: $badProjectBaseCount") if ( $badProjectBaseCount );
3417
    Warning ("Packages with Bad ProjectBase: $badProjectBaseCount") if ( $badProjectBaseCount );
3230
    Warning ("Packages with MakeProjects: $badMakeProjectCount") if ( $badMakeProjectCount );
3418
    Warning ("Packages with MakeProjects: $badMakeProjectCount") if ( $badMakeProjectCount );
3231
    Warning ("Build File Clashes Found: $buildFileClashes") if ( $buildFileClashes );
3419
    Warning ("Build File Clashes Found: $buildFileClashes") if ( $buildFileClashes );
3232
    Warning ("Global Error Detected") if ( $globalError );
3420
    Warning ("Global Error Detected") if ( $globalError );
3233
    Message ("---- All Done -----");
3421
    Message ("---- All Done -----");
Line 3302... Line 3490...
3302
                my $cc_vob = $cc_path;
3490
                my $cc_vob = $cc_path;
3303
                $cc_vob =~ s~^/~~;
3491
                $cc_vob =~ s~^/~~;
3304
                $cc_vob =~ s~/.*~~;
3492
                $cc_vob =~ s~/.*~~;
3305
                my $detarPath =  $data->{ViewRoot} . '/' . $cc_vob;
3493
                my $detarPath =  $data->{ViewRoot} . '/' . $cc_vob;
3306
 
3494
 
3307
                Error ("Logic error: Did not de-tar into expected location", $detarPath)
-
 
3308
                    unless ( -d $detarPath  );
-
 
3309
 
3495
 
3310
                if ( -d $data->{ViewPath}  )
3496
                unless ( -d $detarPath  )
3311
                {
3497
                {
3312
                    # All is good
3498
                    Warning ("Logic error: Did not de-tar into expected location", $detarPath)
3313
                    return 0;
-
 
3314
                }
3499
                }
-
 
3500
                else
-
 
3501
                {
-
 
3502
                    if ( -d $data->{ViewPath}  )
-
 
3503
                    {
-
 
3504
                        # All is good
-
 
3505
                        return 0;
-
 
3506
                    }
3315
 
3507
 
3316
                # Recalc ViewPath to the root of the VOB
3508
                    # Recalc ViewPath to the root of the VOB
3317
                $cc_path =~ s~^/~~;
3509
                    $cc_path =~ s~^/~~;
3318
                $cc_path =~ s~/.*~~;
3510
                    $cc_path =~ s~/.*~~;
3319
                $cc_path = '/' . $cc_path;
3511
                    $cc_path = '/' . $cc_path;
3320
                $data->{ViewPath} =  $data->{ViewRoot} . $cc_path;
3512
                    $data->{ViewPath} =  $data->{ViewRoot} . $cc_path;
3321
 
-
 
3322
                return 0;
3513
                    return 0;
-
 
3514
                }
3323
            }
3515
            }
3324
        }
3516
        }
3325
    }
3517
    }
3326
 
3518
 
3327
    if ( $opt_reuse && -d $data->{ViewPath}  )
3519
    if ( $opt_reuse && -d $data->{ViewPath}  )
Line 3335... Line 3527...
3335
#        print FH $versions{$entry}{name},' ',$versions{$entry}{vname},"\n";
3527
#        print FH $versions{$entry}{name},' ',$versions{$entry}{vname},"\n";
3336
#        close FH;
3528
#        close FH;
3337
        return 0;
3529
        return 0;
3338
    }
3530
    }
3339
 
3531
 
3340
    while ( $rv == 99 ) {
3532
    while ( ($rv == 99)  && ! $opt_noVCS) {
3341
        my @args;
3533
        my @args;
3342
        push (@args, '-view', $opt_name ) if ( defined $opt_name && ! defined $opt_mergePackages );
3534
        push (@args, '-view', $opt_name ) if ( defined $opt_name && ! defined $opt_mergePackages );
3343
        $rv = JatsToolPrint ( 'jats_ccrelease', '-extractfiles', '-root=.' , '-noprefix',
3535
        $rv = JatsToolPrint ( 'jats_ccrelease', '-extractfiles', '-root=.' , '-noprefix',
3344
                    "-label=$cc_label" ,
3536
                    "-label=$cc_label" ,
3345
                    "-path=$cc_path",
3537
                    "-path=$cc_path",
Line 3497... Line 3689...
3497
    #
3689
    #
3498
    return 0;
3690
    return 0;
3499
}
3691
}
3500
 
3692
 
3501
#-------------------------------------------------------------------------------
3693
#-------------------------------------------------------------------------------
-
 
3694
# Function        : extractFilesFromStore
-
 
3695
#
-
 
3696
# Description     : Extract files from Store
-
 
3697
#                   Locaal directory under dpkgExtract
-
 
3698
#
-
 
3699
# Inputs          : $data           - Hash of good stuff from newPackageVersionBody
-
 
3700
#                   $entry          - All the PV information
-
 
3701
#
-
 
3702
# Returns         : exit code
-
 
3703
#                       1 - Files found
-
 
3704
#                       0 - Not found
-
 
3705
#
-
 
3706
sub extractFilesFromStore
-
 
3707
{
-
 
3708
    my ($data, $entry ) = @_;
-
 
3709
    #
-
 
3710
    #   Create a nice name for the import
-
 
3711
    #
-
 
3712
    my $import_label = saneLabel($entry);
-
 
3713
 
-
 
3714
    $data->{ViewRoot} = ( defined $opt_name && ! defined $opt_mergePackages )? $opt_name : $import_label;
-
 
3715
    $data->{ViewPath} =  'dpkgExtract/' . $data->{ViewRoot};
-
 
3716
    $data->{ViewPath} =~  tr~/~/~s;
-
 
3717
    
-
 
3718
    if ( -d $data->{ViewPath}  )
-
 
3719
    {
-
 
3720
        $data->{fromStore} = 1;
-
 
3721
        Message ("Reusing Stored view: $import_label");
-
 
3722
        return 1;
-
 
3723
    }
-
 
3724
 
-
 
3725
    #
-
 
3726
    #   Not found in store
-
 
3727
    #
-
 
3728
    delete $data->{ViewRoot};
-
 
3729
    delete $data->{ViewPath};
-
 
3730
    return 0;
-
 
3731
}
-
 
3732
 
-
 
3733
#-------------------------------------------------------------------------------
-
 
3734
# Function        : testDpkgArchive
-
 
3735
#
-
 
3736
# Description     : Indicate if the package exists in dpkg_archive
-
 
3737
#
-
 
3738
# Inputs          : 
-
 
3739
#
-
 
3740
# Returns         : 
-
 
3741
#
-
 
3742
sub testDpkgArchive
-
 
3743
{
-
 
3744
    my ($entry) = @_;
-
 
3745
    my $vname = $versions{$entry}{vname};
-
 
3746
 
-
 
3747
    if ( -d join('/', $ENV{GBE_DPKG}, $packageNames, $vname )) {
-
 
3748
        Message ("Version found in dpkg_archive");
-
 
3749
    } else {
-
 
3750
        Message ("Version NOT found in dpkg_archive");
-
 
3751
    }
-
 
3752
}
-
 
3753
 
-
 
3754
#-------------------------------------------------------------------------------
-
 
3755
# Function        : markDpkgArchive
-
 
3756
#
-
 
3757
# Description     : Indicate if the package exists in dpkg_archive
-
 
3758
#
-
 
3759
# Inputs          : 
-
 
3760
#
-
 
3761
# Returns         : 
-
 
3762
#
-
 
3763
sub markDpkgArchive
-
 
3764
{
-
 
3765
    my ($entry) = @_;
-
 
3766
    my $vname = $versions{$entry}{vname};
-
 
3767
    my $path = join('/', $ENV{GBE_DPKG}, $packageNames, $vname );
-
 
3768
    delete $versions{$entry}{dpkgArchive};
-
 
3769
    if ( -d $path ) {
-
 
3770
        $versions{$entry}{dpkgArchive} = $path;
-
 
3771
    }
-
 
3772
}
-
 
3773
 
-
 
3774
#-------------------------------------------------------------------------------
3502
# Function        : detectMakeProjectUsage
3775
# Function        : detectMakeProjectUsage
3503
#
3776
#
3504
# Description     : etect and report usage of the MakeProject directive
3777
# Description     : etect and report usage of the MakeProject directive
3505
#
3778
#
3506
# Inputs          : $data               - Ref to a hash of bits
3779
# Inputs          : $data               - Ref to a hash of bits
Line 3903... Line 4176...
3903
#                        $retval = 1;
4176
#                        $retval = 1;
3904
                         $definitionError++;
4177
                         $definitionError++;
3905
                    }
4178
                    }
3906
                    else
4179
                    else
3907
                    {
4180
                    {
-
 
4181
                        Warning ("Build: $buildFile");
-
 
4182
                        #
-
 
4183
                        #   Whats the file for
-
 
4184
                        #
-
 
4185
                        if (open (BF, '<', $buildFile ))
-
 
4186
                        {
-
 
4187
                            while ( <BF> )
-
 
4188
                            {
-
 
4189
                                s~\s+$~~;
-
 
4190
                                if ( m~\s*BuildName~ )
-
 
4191
                                {
-
 
4192
                                    Warning ("BuildName: $_");
-
 
4193
                                    last;
-
 
4194
                                }
-
 
4195
                            }
-
 
4196
                            close BF;
-
 
4197
                        }
-
 
4198
 
-
 
4199
 
3908
                        #
4200
                        #
3909
                        #   Determine the depth of the view root
4201
                        #   Determine the depth of the view root
3910
                        #
4202
                        #
3911
                        Warning ("Build: $buildFile");
-
 
3912
                        my $countPath = ($data->{ViewPath} =~ tr~/~/~);
4203
                        my $countPath = ($data->{ViewPath} =~ tr~/~/~);
3913
                        my $countBuild = ($buildFile =~ tr~/~/~);
4204
                        my $countBuild = ($buildFile =~ tr~/~/~);
3914
                        my $max_up = $countBuild - $countPath -1;
4205
                        my $max_up = $countBuild - $countPath -1;
3915
 
4206
 
3916
                        m~--Up=(\d+)~i;
4207
                        m~--Up=(\d+)~i;
Line 4010... Line 4301...
4010
    foreach my $bf ( @buildfiles )
4301
    foreach my $bf ( @buildfiles )
4011
    {
4302
    {
4012
        my $bdir = $bf->{dir};
4303
        my $bdir = $bf->{dir};
4013
        my $bname = $bf->{name};
4304
        my $bname = $bf->{name};
4014
        my $bversion = $bf->{version};
4305
        my $bversion = $bf->{version};
-
 
4306
        next unless ( defined($bname) );
4015
Information ("BuildFiles: $bname, $bversion : $bdir");
4307
Information ("BuildFiles: $bname, $bversion : $bdir");
4016
 
4308
 
4017
        if ( exists ($data{$bname}{count}) && ($data{$bname}{count} >= 1) )
4309
        if ( exists ($data{$bname}{count}) && ($data{$bname}{count} >= 1) )
4018
        {
4310
        {
4019
            Warning ("MultipleBuildFiles for $bname ($bversion)");
4311
            Warning ("MultipleBuildFiles for $bname ($bversion)");
Line 4335... Line 4627...
4335
                    #
4627
                    #
4336
                    next if ( $pkg_ver eq '23.23.23.ssw' );
4628
                    next if ( $pkg_ver eq '23.23.23.ssw' );
4337
 
4629
 
4338
                    #
4630
                    #
4339
                    #   Add data to the hash
4631
                    #   Add data to the hash
4340
                    #       Remove entries that address themselves
-
 
4341
                    #
4632
                    #
4342
                    push (@{$versions{$last_pv_id}{next}}, $pv_id) unless ($pv_id == $last_pv_id || $last_pv_id == 0) ;
-
 
4343
                    $versions{$pv_id}{name} = $pkg_name;
4633
                    $versions{$pv_id}{name} = $pkg_name;
4344
                    $versions{$pv_id}{pvid} = $pv_id;
4634
                    $versions{$pv_id}{pvid} = $pv_id;
4345
                    $versions{$pv_id}{vname} = $pkg_ver;
4635
                    $versions{$pv_id}{vname} = $pkg_ver;
4346
                    $versions{$pv_id}{vcsTag} = $vcstag;
4636
                    $versions{$pv_id}{vcsTag} = $vcstag;
4347
                    $versions{$pv_id}{created} = $created;
4637
                    $versions{$pv_id}{created} = $created;
Line 4355... Line 4645...
4355
                    examineVcsTag($pv_id);
4645
                    examineVcsTag($pv_id);
4356
 
4646
 
4357
                    #
4647
                    #
4358
                    #   Process version number
4648
                    #   Process version number
4359
                    #
4649
                    #
4360
                    my ($suffix, $version, $isaR, $isaWip, $buildVersion ) = massageVersion($pkg_ver, $pkg_name);
4650
                    my ($suffix, $version, $isaR, $isaWip, $buildVersion, $isaPatch ) = massageVersion($pkg_ver, $pkg_name);
4361
 
4651
 
4362
                    $versions{$pv_id}{version} = $version;
4652
                    $versions{$pv_id}{version} = $version;
4363
                    $versions{$pv_id}{buildVersion} = $buildVersion;
4653
                    $versions{$pv_id}{buildVersion} = $buildVersion;
4364
                    $versions{$pv_id}{isaWip} = 1 if ( $isaWip );
4654
                    $versions{$pv_id}{isaWip} = 1 if ( $isaWip );
-
 
4655
                    $versions{$pv_id}{isaPatch} = 1 if ( $isaPatch );
-
 
4656
 
-
 
4657
                    # Remove entries that address themselves
-
 
4658
                    push (@{$versions{$last_pv_id}{next}}, $pv_id) unless ($pv_id == $last_pv_id || $last_pv_id == 0 || $isaPatch) ;
-
 
4659
                    
4365
 
4660
 
4366
                    #
4661
                    #
4367
                    #   New method for detecting a ripple
4662
                    #   New method for detecting a ripple
4368
                    #       Don't look at the version number
4663
                    #       Don't look at the version number
4369
                    #       Use RM data
4664
                    #       Use RM data
Line 4420... Line 4715...
4420
    my ($major, $minor, $patch, $build, $suffix);
4715
    my ($major, $minor, $patch, $build, $suffix);
4421
    my $result;
4716
    my $result;
4422
    my $buildVersion;
4717
    my $buildVersion;
4423
    my $isaRipple;
4718
    my $isaRipple;
4424
    my $isaWIP;
4719
    my $isaWIP;
-
 
4720
    my $isaPatch;
4425
    $build = 0;
4721
    $build = 0;
4426
 
4722
 
4427
#print "--- $name, $version\n";
4723
#print "--- $name, $version\n";
4428
    $version =~ s~^_~~;
4724
    $version =~ s~^_~~;
4429
    $version =~ s~^${name}_~~;
4725
    $version =~ s~^${name}_~~;
Line 4461... Line 4757...
4461
        $minor = $2;
4757
        $minor = $2;
4462
        $patch = $3;
4758
        $patch = $3;
4463
        $build = $4;
4759
        $build = $4;
4464
        $suffix = defined $6 ? ".$6" : '';
4760
        $suffix = defined $6 ? ".$6" : '';
4465
        $isaRipple = 0;
4761
        $isaRipple = 0;
-
 
4762
        $isaPatch = 1;
4466
    }
4763
    }
4467
    #
4764
    #
4468
    #       nn.nnn.nnnnn.xxx
4765
    #       nn.nnn.nnnnn.xxx
4469
    #       nn.nnn.nnnnn-xxx
4766
    #       nn.nnn.nnnnn-xxx
4470
    #       nnn.nnn.nnnx.xxx
4767
    #       nnn.nnn.nnnx.xxx
Line 4525... Line 4822...
4525
        $major = $1;
4822
        $major = $1;
4526
        $minor = $2;
4823
        $minor = $2;
4527
        $patch = 0;
4824
        $patch = 0;
4528
        $suffix = $3;
4825
        $suffix = $3;
4529
    }
4826
    }
-
 
4827
 
-
 
4828
    #
-
 
4829
    #       nnn.nnn.c.xxx
-
 
4830
    #
-
 
4831
    elsif ( $version =~ m~^(\d+)\.(\d+)\.(\w)(\.\w+)$~ ) {
-
 
4832
        $major = $1;
-
 
4833
        $minor = $2;
-
 
4834
        $patch = ord($3);
-
 
4835
        $suffix = $4;
-
 
4836
    }
-
 
4837
    
4530
    
4838
    
4531
    #
4839
    #
4532
    #       nnn.nnn.nnnz
4840
    #       nnn.nnn.nnnz
4533
    #
4841
    #
4534
    elsif ( $version =~ m~^(\d+)\.(\d+)\.(\d+)([a-z])$~ ) {
4842
    elsif ( $version =~ m~^(\d+)\.(\d+)\.(\d+)([a-z])$~ ) {
Line 4542... Line 4850...
4542
    #
4850
    #
4543
    #       ???REV=???
4851
    #       ???REV=???
4544
    #
4852
    #
4545
    elsif ( $version =~ m~REV=~ ) {
4853
    elsif ( $version =~ m~REV=~ ) {
4546
        $suffix = '.cots';
4854
        $suffix = '.cots';
4547
        $result = $version . '.0000.cots';
4855
        $result = $version . '.000000.cots';
4548
    }
4856
    }
4549
 
4857
 
4550
    #
4858
    #
4551
    #   Wip Packages
4859
    #   Wip Packages
4552
    #   (nnnnnn).xxx
4860
    #   (nnnnnn).xxx
4553
    #   Should be essential, but want to sort very low
4861
    #   Should be essential, but want to sort very low
4554
    #
4862
    #
4555
    elsif ($version =~ m~\((.*)\)(\..*)?~) {
4863
    elsif ($version =~ m~\((.*)\)(\..*)?~) {
4556
        $suffix = $2 || '';
4864
        $suffix = $2 || '';
4557
        $result = "000.000.000.000$suffix";
4865
        $result = "000.000.000.00000$suffix";
4558
        $isaWIP = 1;
4866
        $isaWIP = 1;
4559
    }
4867
    }
4560
 
4868
 
4561
    #
4869
    #
4562
    #   !current
4870
    #   !current
4563
    #
4871
    #
4564
    elsif ($version eq '!current' || $version eq 'current_$USER' || $version eq 'current' || $version eq 'beta' || $version eq 'latest' || $version eq 'beta.cr' || $version eq 'CREATE') {
4872
    elsif ($version eq '!current' || $version eq 'current_$USER' || $version eq 'current' || $version eq 'beta' || $version eq 'latest' || $version eq 'beta.cr' || $version eq 'CREATE') {
4565
        $suffix = '';
4873
        $suffix = '';
4566
        $result = "000.000.000.000$suffix";
4874
        $result = "000.000.000.00000$suffix";
4567
        $isaWIP = 1;
4875
        $isaWIP = 1;
4568
    }
4876
    }
4569
    
4877
    
4570
    #
4878
    #
4571
    #   Also WIP: FINRUN.103649.BEI.WIP
4879
    #   Also WIP: FINRUN.103649.BEI.WIP
4572
    elsif ($version =~ m~(\.[a-zA-Z]+)\.WIP$~) {
4880
    elsif ($version =~ m~(\.[a-zA-Z]+)\.WIP$~) {
4573
        $suffix = lc($1);
4881
        $suffix = lc($1);
4574
        $result = "000.000.000.000$suffix";
4882
        $result = "000.000.000.00000$suffix";
4575
        $isaWIP = 1;
4883
        $isaWIP = 1;
4576
    }
4884
    }
4577
 
4885
 
4578
    #
4886
    #
4579
    #   Also ERGOFSSLS190100_015
4887
    #   Also ERGOFSSLS190100_015
Line 4608... Line 4916...
4608
            $major = 0;
4916
            $major = 0;
4609
            $minor = 0;
4917
            $minor = 0;
4610
            $patch = 0;
4918
            $patch = 0;
4611
        }
4919
        }
4612
        
4920
        
4613
        $result = sprintf("%3.3d.%3.3d.%3.3d.%3.3d%s", $major,$minor,$patch,$build,$suffix || '.0000');
4921
        $result = sprintf("%3.3d.%3.3d.%3.3d.%5.5d%s", $major,$minor,$patch,$build,$suffix || '.0000');
4614
        $buildVersion = [ $major, $minor, $patch, $build ];
4922
        $buildVersion = [ $major, $minor, $patch, $build ];
4615
    }
4923
    }
4616
 
4924
 
4617
    $suffix = lc( $suffix );
4925
    $suffix = lc( $suffix );
4618
    if ( exists $suffixFixup{$suffix} )
4926
    if ( exists $suffixFixup{$suffix} )
4619
    {
4927
    {
4620
        $suffix = $suffixFixup{$suffix} ;
4928
        $suffix = $suffixFixup{$suffix} ;
4621
    }
4929
    }
4622
 
4930
 
4623
    return ($suffix, $result, $isaRipple, $isaWIP, $buildVersion );
4931
    return ($suffix, $result, $isaRipple, $isaWIP, $buildVersion, $isaPatch );
4624
}
4932
}
4625
 
4933
 
4626
#-------------------------------------------------------------------------------
4934
#-------------------------------------------------------------------------------
4627
# Function        : vcsCleanup
4935
# Function        : vcsCleanup
4628
#
4936
#
Line 4822... Line 5130...
4822
        #
5130
        #
4823
        if ( scalar @multiplePaths > 1 )
5131
        if ( scalar @multiplePaths > 1 )
4824
        {
5132
        {
4825
            push @text, '|';
5133
            push @text, '|';
4826
            push @text, 'Multiple Paths';
5134
            push @text, 'Multiple Paths';
-
 
5135
            if ( $opt_AllowMuliplePaths )
-
 
5136
            {
-
 
5137
                push @text, 'Multiple Paths allowed:' . scalar @multiplePaths . ' found';
-
 
5138
            }
-
 
5139
            else
-
 
5140
            {
4827
            push @text, @multiplePaths;
5141
                push @text, @multiplePaths;
-
 
5142
            }
4828
        }
5143
        }
4829
 
5144
 
4830
        #
5145
        #
4831
        #   Bad essentials
5146
        #   Bad essentials
4832
        #
5147
        #
Line 4880... Line 5195...
4880
        push @text, '(Coded information)';
5195
        push @text, '(Coded information)';
4881
        push @text, '|{Code';
5196
        push @text, '|{Code';
4882
        push @text, '|{N: Not Locked';
5197
        push @text, '|{N: Not Locked';
4883
        push @text, 'b: Bad Singleton';
5198
        push @text, 'b: Bad Singleton';
4884
        push @text, 'B: Bad VCS Tag';
5199
        push @text, 'B: Bad VCS Tag';
-
 
5200
        push @text, 'd: Package in dpkg_archive';
4885
        push @text, 'D: DeadWood';
5201
        push @text, 'D: DeadWood';
4886
        push @text, 'E: Essential Release Version';
5202
        push @text, 'E: Essential Release Version';
4887
        push @text, 'F: Package directories labled';
5203
        push @text, 'F: Package directories labled';
4888
        push @text, 'G: Glued into Version Tree';
5204
        push @text, 'G: Glued into Version Tree';
4889
        push @text, 'L: Label not in VOB';
5205
        push @text, 'L: Label not in VOB';
-
 
5206
        push @text, 'p: Is a Patch';
4890
        push @text, 'r: Recent version';
5207
        push @text, 'r: Recent version';
4891
        push @text, 'R: Ripple';
5208
        push @text, 'R: Ripple';
4892
        push @text, 'S: Splitpoint';
5209
        push @text, 'S: Splitpoint';
4893
        push @text, 't: Glued into Project Tree';
5210
        push @text, 't: Glued into Project Tree';
4894
        push @text, 'T: Tip version';
5211
        push @text, 'T: Tip version';
Line 4960... Line 5277...
4960
        $stateText .= 'b' if (exists $versions{$entry}{badSingleton});
5277
        $stateText .= 'b' if (exists $versions{$entry}{badSingleton});
4961
        $stateText .= 'B' if (exists $versions{$entry}{badVcsTag});
5278
        $stateText .= 'B' if (exists $versions{$entry}{badVcsTag});
4962
        $stateText .= 'G' if (exists $versions{$entry}{GluedIn});
5279
        $stateText .= 'G' if (exists $versions{$entry}{GluedIn});
4963
        $stateText .= 't' if (exists $versions{$entry}{MakeTree});
5280
        $stateText .= 't' if (exists $versions{$entry}{MakeTree});
4964
        $stateText .= 'E' if (exists $versions{$entry}{Essential});
5281
        $stateText .= 'E' if (exists $versions{$entry}{Essential});
-
 
5282
        $stateText .= 'd' if (exists $versions{$entry}{dpkgArchive});
4965
        $stateText .= 'D' if (exists $versions{$entry}{DeadWood});
5283
        $stateText .= 'D' if (exists $versions{$entry}{DeadWood});
-
 
5284
        $stateText .= 'p' if ( $versions{$entry}{isaPatch} );
4966
        $stateText .= 'R' if ( $versions{$entry}{isaRipple} );
5285
        $stateText .= 'R' if ( $versions{$entry}{isaRipple} );
4967
        $stateText .= 'r' if (exists $versions{$entry}{keepRecent} && $versions{$entry}{keepRecent} );
5286
        $stateText .= 'r' if (exists $versions{$entry}{keepRecent} && $versions{$entry}{keepRecent} );
4968
        $stateText .= 'S' if (exists $versions{$entry}{EssentialSplitPoint} && $versions{$entry}{EssentialSplitPoint} > 1 );
5287
        $stateText .= 'S' if (exists $versions{$entry}{EssentialSplitPoint} && $versions{$entry}{EssentialSplitPoint} > 1 );
4969
        $stateText .= 'T' if (exists $versions{$entry}{Tip} );
5288
        $stateText .= 'T' if (exists $versions{$entry}{Tip} );
4970
        $stateText .= 'V' if (exists $versions{$entry}{isSvn} );
5289
        $stateText .= 'V' if (exists $versions{$entry}{isSvn} );
Line 5387... Line 5706...
5387
    #
5706
    #
5388
    #   Process data
5707
    #   Process data
5389
    foreach my $entry ( @svnDataItems )
5708
    foreach my $entry ( @svnDataItems )
5390
    {
5709
    {
5391
        my $name;
5710
        my $name;
5392
        my $isaBranch;
-
 
5393
        my $target = $entry->{'target'};
5711
        my $target = $entry->{'target'};
5394
        if ( $target =~ m~/tags/(.*)~ ) {
5712
        if ( $target =~ m~/tags/(.*)~ ) {
5395
            $name = $1;
5713
            $name = $1;
5396
            $svnData{tags}{$name} = 1;
5714
            $svnData{tags}{$name} = 1;
5397
        } elsif ( $target =~ m~/branches/(.*)~ )  {
5715
        } elsif ( $target =~ m~/branches/(.*)~ )  {