File Coverage

lib/Slaughter/Transport/svn.pm
Criterion Covered Total %
statement 19 19 100.0
branch 1 2 50.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 26 27 96.3


line stmt bran cond sub pod time code
1              
2             =head1 NAME
3            
4             Slaughter::Transport::svn - Subversion transport class.
5            
6             =head1 SYNOPSIS
7            
8             This transport copes with cloning a remote Subversion repository to the local filesystem.
9            
10             =cut
11              
12             =head1 DESCRIPTION
13            
14             This module uses the L<Slaughter::Transport::revisionControl> base-class in such
15             a way as to offer a Subversion-based transport.
16            
17             All the implementation, except for the setup of some variables, comes from that
18             base class.
19            
20             =cut
21              
22             =head1 IMPLEMENTATION
23            
24             The following commands are set in the L</_init> method:
25            
26             =over 8
27            
28             =item cmd_clone
29            
30             This is set to "C<svn checkout>".
31            
32             =item cmd_update
33            
34             This is set to "C<svn update>".
35            
36             =item cmd_version
37            
38             This is set to "C<svn --version>".
39            
40             =item name
41            
42             This is set to "C<svn>".
43            
44             =back
45            
46             =cut
47              
48              
49 1     1   911 use strict;
  1         1  
  1         24  
50 1     1   3 use warnings;
  1         1  
  1         38  
51              
52              
53              
54             package Slaughter::Transport::svn;
55              
56             #
57             # The version of our release.
58             #
59             our $VERSION = "3.0.5";
60              
61              
62 1     1   3 use parent 'Slaughter::Transport::revisionControl';
  1         1  
  1         5  
63              
64              
65              
66             =head2 new
67            
68             Create a new instance of this object.
69            
70             =cut
71              
72             sub new
73             {
74 1     1 1 464     my ( $class, %args ) = @_;
75 1         6     return $class->SUPER::new(%args);
76             }
77              
78             =head2 _init
79            
80             Initialiaze this object, by setting up the Subversion-specific commands, etc.
81            
82             =cut
83              
84             sub _init
85             {
86 1     1   1     my ($self) = (@_);
87              
88             #
89             # The name of our derived transport.
90             #
91 1         5     $self->{ 'name' } = "svn";
92              
93             #
94             # The command to invoke the version of our revision control system.
95             #
96             # Used to test that it is installed.
97             #
98 1         1     $self->{ 'cmd_version' } = "svn --version";
99              
100             #
101             # The command to clone our remote repository.
102             #
103 1         2     $self->{ 'cmd_clone' } = "svn checkout";
104 1 50       2     $self->{ 'cmd_clone' } .= " $self->{'transportargs'} "
105                   if ( $self->{ 'transportargs' } );
106 1         2     $self->{ 'cmd_clone' } .= " #SRC# #DST#";
107              
108              
109             #
110             # The command to update our repository - NOT USED
111             #
112 1         1     $self->{ 'cmd_update' } = "svn update";
113              
114             #
115             # All done.
116             #
117 1         1     return $self;
118              
119             }
120              
121              
122             1;
123              
124              
125             =head1 AUTHOR
126            
127             Steve Kemp <steve@steve.org.uk>
128            
129             stamas http://cstamas.hu/
130            
131             =cut
132              
133             =head1 LICENSE
134            
135             Copyright (c) 2010-2015 by Steve Kemp. All rights reserved.
136            
137             This module is free software;
138             you can redistribute it and/or modify it under
139             the same terms as Perl itself.
140             The LICENSE file contains the full text of the license.
141            
142             =cut
143