Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- # Converts a gitlog file to a list of edges in an undirected weighted graph
- # Author: Aron Lurie
- # Date: 2018-08-15
- # Usage: git log --pretty=oneline --name-only | perl git.pl > mylogfile.txt
- my @files = ();
- my %adjacent = ();
- while (<STDIN>) {
- chomp;
- if ($_ =~ /[a-f0-9]{40} /) {
- if (@files) {
- for my $filename (@files) {
- for my $other_filename (@files) {
- next if ($filename > $other_filename);
- $adjacent{$filename}{$other_filename}++;
- }
- }
- }
- @files = ();
- } else {
- push @files, $_;
- }
- }
- for my $filename (keys %adjacent) {
- for my $other_filename (keys %{ $adjacent{$filename} }) {
- my $conn = $adjacent{$filename}{$other_filename};
- print join(",", ($filename, $other_filename, 1000/$conn)), "\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement