#!/usr/bin/perl -w
#
# PVCS to Perforce converter, phase II: improve metadata
#
# Copyright 1997 Perforce Software. All rights reserved.
# Written by James Strickland, July 1997
#
# This script sorts the metadata output (first step in phase II).
# Note that the sort only requires timestamps and indices to be in memory,
# rather than having to shuffle all the information associated with each
# change (e.g. change description).
require 5.0;
use strict;
use integer;
use lib '.';
use convert;
use Change;
open(CHANGES, "<$convert::metadata_dir/changes.ns") or die "can't open for read: $!";
open(NEWCHANGES, ">$convert::metadata_dir/changes") or die "can't open for write: $!";
my ($index,$c,@timestamp_and_index);
# read 'em in
for($index=0;$c=get Change(\*CHANGES);$index=tell(CHANGES)) {
push(@timestamp_and_index, [ $c->timestamp, $index ]);
}
# sort them by timestamp
@timestamp_and_index = sort { $$a[0] <=> $$b[0] } @timestamp_and_index;
# write 'em out
my $ti;
foreach $ti (@timestamp_and_index) {
seek(CHANGES,$$ti[1],0);
$c=get Change(\*CHANGES);
$c->put(\*NEWCHANGES);
}
close(CHANGES); close(NEWCHANGES);
unlink("$convert::metadata_dir/changes.ns"); # delete the "not sorted" version