Class: Rake::ShipitTask::VC::SVN

Inherits:
Object
  • Object
show all
Defined in:
lib/shipit/vc.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.accept?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'lib/shipit/vc.rb', line 61

def self.accept?
  File.exist? ".svn"
end

Instance Method Details

#are_local_diffs(ver) ⇒ Object



108
109
110
# File 'lib/shipit/vc.rb', line 108

def are_local_diffs(ver)
  `svn diff`.match(/\S/)
end

#commit(msg) ⇒ Object



65
66
67
68
69
70
71
# File 'lib/shipit/vc.rb', line 65

def commit(msg)
  temp = Tempfile.open("svn-commit")
  temp << msg
  temp.close

  system "svn", "ci", "--file", temp.path
end

#exists_tagged_version(ver) ⇒ Object



92
93
94
# File 'lib/shipit/vc.rb', line 92

def exists_tagged_version(ver)
  !!`svn info '#{tag_url(ver)}'`[/Node Kind: directory/]
end

#local_diff(file) ⇒ Object



104
105
106
# File 'lib/shipit/vc.rb', line 104

def local_diff(file)
  `svn diff #{file}`
end

#precommitObject



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# File 'lib/shipit/vc.rb', line 73

def precommit
  unknown = []
  changes = false
  `svn st`.split(/\n/).each do |l|
    changes = true
    next unless l =~ /^\?/
    unknown << l
  end

  unless unknown.empty?
    raise unknown.join("\n")
  end

  unless changes
    warn "No locally changed files. skipping commit"
    return
  end
end

#tag_version(ver, msg) ⇒ Object



96
97
98
99
100
101
102
# File 'lib/shipit/vc.rb', line 96

def tag_version(ver, msg)
  temp = Tempfile.open("svn-commit")
  temp << msg
  temp.close

  system 'svn', 'copy', '--file', temp.path, trunk_url.to_s, tag_url(ver).to_s
end