Skip to content

Instantly share code, notes, and snippets.

@n7st
Created November 4, 2016 12:02
Show Gist options
  • Save n7st/5d74bca9794c8af496f7ee0039ccea77 to your computer and use it in GitHub Desktop.
Save n7st/5d74bca9794c8af496f7ee0039ccea77 to your computer and use it in GitHub Desktop.
#!/usr/bin/env perl
use strict;
use warnings;
use Getopt::Long;
my $url;
Getopt::Long::GetOptions('u|url=s' => \$url);
sub main {
my $tags = get_latest_tags();
my $revisions = get_tag_revisions($tags);
my $log = `svn log -r $revisions $url/trunk`;
print $log;
return 0;
}
sub get_latest_tags {
my $ls = `svn ls $url/tags | tail -2`;
my @tags = split /\n/, $ls;
return \@tags;
}
sub get_tag_revisions {
my $tags = shift;
my @revs;
foreach (@{$tags}) {
my $rev_info = `svn log --stop-on-copy $url/tags/$_`;
my ($rev) = $rev_info =~ /r(\d+) /;
push @revs, $rev;
}
return join ':', @revs;
}
exit main();
__END__
=head1 NAME
scripts/tags_info.pl
=head1 DESCRIPTION
Get a revision log between the most recent tags.
=head1 SYNOPSIS
perl scripts/tags_info.pl -u https://www.somewhere.com/svn/repository_here
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment