X-Git-Url: https://sipb.mit.edu/gitweb.cgi/sipb-www.git/blobdiff_plain/8994dd1aca0ed9587cb687d3134efc8549745f86..a29800bac789f72ce303f628a44e4a9c33df638f:/import-trac?ds=sidebyside diff --git a/import-trac b/import-trac index aadee09..b86a535 100755 --- a/import-trac +++ b/import-trac @@ -1,4 +1,4 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w use DBI; use IPC::Open2; @@ -6,6 +6,15 @@ system('mkdir doc') && die; chdir('doc'); qx{git init}; +open AUTHORS, '../trac-authors' or die $!; +my %authors = (); +while (chomp ($line = )) { + my ($username, $name); + ($username, $name) = split / /, $line, 2; + print "$username $name\n"; + $authors{$username} = $name; +} + $password = qx(perl -F= -lane 'print \$F[1] if (\$F[0] eq "password")' \\ /mit/sipb-www/.my.cnf); chomp $password; @@ -25,14 +34,24 @@ foreach $row (@$rows) { waitpid $pid, 0; $pid = open2(OUT, IN, qw(git mktree)); - print IN `git ls-tree $head | grep -v $row->{name}` if $head; + print IN `git ls-tree $head:doc | grep -v $row->{name}` if $head; print IN "100644 blob $blob\t$row->{name}\n"; close(IN); chomp($tree = ); waitpid $pid, 0; - $ENV{GIT_AUTHOR_NAME} = "$row->{author} via Trac"; + $pid = open2(OUT, IN, qw(git mktree)); + print IN "040000 tree $tree\tdoc\n"; + close(IN); + chomp($tree = ); + waitpid $pid, 0; + + $name = $authors{$row->{author}}; + + $ENV{GIT_AUTHOR_NAME} = "$name"; $ENV{GIT_AUTHOR_EMAIL} = "$row->{author}\@mit.edu"; + $ENV{GIT_COMMITTER_NAME} = "Trac"; + $ENV{GIT_COMMITTER_EMAIL} = "sipb-www\@mit.edu"; $ENV{GIT_AUTHOR_DATE} = $row->{time}; $pid = open2(OUT, IN, qw{git commit-tree}, $tree, $head ? ('-p', $head) : ()); print IN $row->{comment};