/[Frey]/trunk/lib/Frey/SVK.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/SVK.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1138 by dpavlin, Tue Jun 30 15:10:55 2009 UTC revision 1139 by dpavlin, Tue Jun 30 21:39:09 2009 UTC
# Line 25  has commit_message => ( Line 25  has commit_message => (
25          isa => 'Str',          isa => 'Str',
26  );  );
27    
28    our $svk = 'svk';
29    $svk = 'svn' if -e '.svn';
30    warn "using $svk";
31    
32  sub svk {  sub svk {
33          my ( $self, $exec, $coderef ) = @_;          my ( $self, $exec, $coderef ) = @_;
34          open(my $svk, '-|', 'svk ' . $exec) or die "svk $exec: $@";          open(my $pipe, '-|', "$svk $exec") or die "$svk $exec: $@";
35          while(<$svk>) {          while(<$pipe>) {
36                  chomp;                  chomp;
37                  $coderef->( $_ );                  $coderef->( $_ );
38          }          }
39          close($svk) or die "can't close svk $exec: $@";          close($pipe) or die "can't close $svk $exec: $@";
40  }  }
41    
42  our $svk_status_path = '^(\w+[\+\s]+)(.+)';  our $svk_status_path = '^(\w+[\+\s]+)(.+)';
# Line 54  sub info { Line 58  sub info {
58                  my ( $label, $value ) = split(/:\s+/, $_, 2);                  my ( $label, $value ) = split(/:\s+/, $_, 2);
59                  $info->{$label} = $value if $label;                  $info->{$label} = $value if $label;
60          });          });
61          warn "# svk info ",$self->dump( $info );          warn "# $svk info ",$self->dump( $info );
62          return $info;          return $info;
63  }  }
64    
# Line 67  sub as_data { Line 71  sub as_data {
71    
72  sub commit_as_markup {  sub commit_as_markup {
73          my ($self) = @_;          my ($self) = @_;
74          my $status = `svk status -q`;          my $status = `$svk status -q`;
75          $status =~ s{$svk_status_path}{$1 . $self->checkbox('path',$2) . qq|<a href="#$2">$2</a>|}egm;          $status =~ s{$svk_status_path}{$1 . $self->checkbox('path',$2) . qq|<a href="#$2">$2</a>|}egm;
76          if ( $status ) {          if ( $status ) {
77                  $self->add_css(qq|                  $self->add_css(qq|
# Line 107  sub commit_as_markup { Line 111  sub commit_as_markup {
111  sub diff_as_markup {  sub diff_as_markup {
112          my ($self) = @_;          my ($self) = @_;
113    
114          my $diff   = `svk diff`;          my $diff   = `$svk diff`;
115          $self->add_status( diff => $diff );          $self->add_status( diff => $diff );
116    
117          $diff = $self->html_diff( $diff );          $diff = $self->html_diff( $diff );
# Line 133  sub action_as_markup { Line 137  sub action_as_markup {
137                  $new =~ s{/([^/]+)$}{/.postponed.$1};                  $new =~ s{/([^/]+)$}{/.postponed.$1};
138                    
139                  die "Allready have ", $self->path_size($new) if -e $new;                  die "Allready have ", $self->path_size($new) if -e $new;
140                  $cmd = "mv $old $new && svk revert $old";                  $cmd = "mv $old $new && $svk revert $old";
141          } elsif ( $self->action ) {          } elsif ( $self->action ) {
142                  $cmd = 'svk ' . $self->action;                  $cmd = "$svk " . $self->action;
143                  if ( $self->action eq 'commit' ) {                  if ( $self->action eq 'commit' ) {
144                          my $msg = $self->commit_message || return $self->error( "need commit message\n" );                          my $msg = $self->commit_message || return $self->error( "need commit message\n" );
145                          $msg =~ s{"}{\\"}gs;                          $msg =~ s{"}{\\"}gs;
# Line 171  sub as_markup { Line 175  sub as_markup {
175    
176          my $html = $self->action_as_markup;          my $html = $self->action_as_markup;
177    
178          $self->title( 'svk' . ( $self->action ? ' - ' . $self->action : '' ) ); # XXX without this we get wrong icon and title          $self->title( $svk . ( $self->action ? ' - ' . $self->action : '' ) ); # XXX without this we get wrong icon and title
179    
180          $html .= $self->commit_as_markup . $self->diff_as_markup ||          $html .= $self->commit_as_markup . $self->diff_as_markup ||
181                  qq|No changes in tracked files|;                  qq|No changes in tracked files|;

Legend:
Removed from v.1138  
changed lines
  Added in v.1139

  ViewVC Help
Powered by ViewVC 1.1.26