Dist-Zilla-Plugin-Version-FromSubversion

 view release on metacpan or  search on metacpan

lib/Dist/Zilla/Plugin/Version/FromSubversion.pm  view on Meta::CPAN

	require SVN::Client;
	my $svn = SVN::Client->new or die "can't initialize SVN::Client";

	$svn->info("", undef, undef, sub { $rev = $_[1]->rev }, 0);

	my $dist_ini = $root->file('dist.ini')->absolute->stringify;
	if (-f $dist_ini && $self->fallback_revision) {
	    my $kwd = $svn->propget('svn:keywords', $dist_ini, undef, 0);
	    unless (exists $kwd->{$dist_ini}
		&& grep /^(?:Rev(?:ision)?|LastChangedRevision)$/, split ' ', $kwd->{$dist_ini}) {
		$self->log("enable svn:keywords expansion on dist.ini to activate fallback_revision:\n  svn propset svn:keywords \"Revision\" dist.ini");
	    }
	}
	if (@{ $self->fallback_file }) {
	    foreach my $file (@{ $self->fallback_revision }) {
		my $path = $root->file($file)->absolute->stringify;
		my $kwd = $svn->propget('svn:keywords', $path, undef, 0);
		unless (exists $kwd->{$path}) {
		    # TODO fix path to use platform path separators
		    $self->log_fatal(
			 "enable svn:keywords expansion on $file to activate fallback_file:\n"
			."  svn propset svn:keywords \"Revision\" $file");
		} else {
		    my @kwd_rev = grep /^(?:Rev(?:ision)?|LastChangedRevision)$/, split ' ', $kwd->{$path};
		    unless (@kwd_rev) {
			$self->log_fatal(
			     "enable svn:keywords expansion on $file to activate fallback_file:\n"
			    ."  svn propset svn:keywords \"$kwd->{$path} Revision\" $file");
		    } else {
			my ($kwd) = $self->_extract_rev_keyword($path, @kwd_rev);
			unless (defined $kwd) {
			    $self->log_fatal(
				"keyword $kwd_rev[0] is missing in $path"
			    );
			}
		    }
		}
	    }



( run in 2.525 seconds using v1.01-cache-2.11-cpan-71847e10f99 )