--- trunk/lib/Frey/SVK.pm 2008/11/28 19:23:38 603 +++ trunk/lib/Frey/SVK.pm 2008/11/29 00:20:23 614 @@ -10,6 +10,12 @@ isa => 'ArrayRef|Str', ); +has revert_path => ( + documentation => 'path to commit', + is => 'rw', + isa => 'ArrayRef|Str', +); + has message => ( documentation => 'commit message', is => 'rw', @@ -84,10 +90,11 @@ $self->add_css( qq| pre span.add { background: #dfd } pre span.del { background: #fdd } + pre form.revert { display: inline } | ); $diff =~ s{^(\+.+?)$}{$1}gm; $diff =~ s{^(\-.+?)$}{$1}gm; - $diff =~ s{^(===\s+)(\S+)$}{$1$2}gm; + $diff =~ s{^(===\s+)(\S+)$}{$1
$2}gm; $diff = qq|
$diff
|; warn "diff_as_markup ",length($diff)," bytes"; @@ -97,15 +104,25 @@ sub as_markup { my ($self) = @_; + my $html = ''; + + if ( $self->revert_path ) { + my $cmd = 'svk revert ' . join(' ', $self->revert_path ); + my $revert = `$cmd`; + warn "$cmd $revert"; + $html .= qq|$revert|; + } + + $self->title('svk'); # XXX without this we get wrong icon and title + if ( ! $self->can('html_escape') ) { Frey::Web->meta->apply( $self ); $self->TODO( "Frey::Web role missing" ); } - my $html - = ( $self->status_as_markup || $self->error('no status_or_markup output') ) - . ( $self->diff_as_markup || $self->error('no diff_as_markup output') ) - ; + $html .= $self->status_as_markup || $self->error('no status_or_markup output'); + $html .= $self->diff_as_markup || $self->error('no diff_as_markup output'); + warn "as_markup ",length($html)," bytes"; return $html;