piston 1.3.2 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/Rakefile +9 -9
- data/lib/piston.rb +6 -4
- data/lib/piston/command.rb +6 -10
- data/lib/piston/command_error.rb +2 -0
- data/lib/piston/commands/convert.rb +8 -6
- data/lib/piston/commands/import.rb +3 -0
- data/lib/piston/commands/lock.rb +3 -0
- data/lib/piston/commands/status.rb +2 -0
- data/lib/piston/commands/switch.rb +4 -3
- data/lib/piston/commands/unlock.rb +3 -0
- data/lib/piston/commands/update.rb +2 -0
- data/lib/piston/version.rb +3 -1
- metadata +8 -8
data/CHANGELOG
CHANGED
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
|
-
require 'rake/testtask'
|
3
2
|
require 'rake/gempackagetask'
|
4
3
|
require 'rake/contrib/rubyforgepublisher'
|
4
|
+
require 'spec/rake/spectask'
|
5
5
|
require File.join(File.dirname(__FILE__), 'lib', 'piston', 'version')
|
6
6
|
|
7
7
|
PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
|
@@ -14,15 +14,10 @@ RELEASE_NAME = "REL #{PKG_VERSION}"
|
|
14
14
|
RUBY_FORGE_PROJECT = "piston"
|
15
15
|
RUBY_FORGE_USER = "fbos"
|
16
16
|
|
17
|
-
task :default => :
|
18
|
-
Rake::TestTask.new { |t|
|
19
|
-
t.pattern = 'test/**/*_test.rb'
|
20
|
-
t.verbose = true
|
21
|
-
t.warning = false
|
22
|
-
}
|
17
|
+
task :default => :specs
|
23
18
|
|
24
19
|
# Create compressed packages
|
25
|
-
dist_dirs = [ "lib", "
|
20
|
+
dist_dirs = [ "lib", "spec"]
|
26
21
|
|
27
22
|
spec = Gem::Specification.new do |s|
|
28
23
|
s.name = PKG_NAME
|
@@ -34,7 +29,7 @@ spec = Gem::Specification.new do |s|
|
|
34
29
|
s.executables = ["piston"]
|
35
30
|
s.default_executable = "piston"
|
36
31
|
|
37
|
-
s.files = [ "CHANGELOG", "README", "LICENSE", "Rakefile" ] + FileList["{contrib,bin,
|
32
|
+
s.files = [ "CHANGELOG", "README", "LICENSE", "Rakefile" ] + FileList["{contrib,bin,spec,lib}/**/*"].to_a
|
38
33
|
|
39
34
|
s.require_path = 'lib'
|
40
35
|
s.has_rdoc = false
|
@@ -61,3 +56,8 @@ task :release => [ :package ] do
|
|
61
56
|
system(release_command)
|
62
57
|
end
|
63
58
|
end
|
59
|
+
|
60
|
+
desc "Run all examples with RCov"
|
61
|
+
Spec::Rake::SpecTask.new('specs') do |t|
|
62
|
+
t.spec_files = FileList['specs/**/*.rb']
|
63
|
+
end
|
data/lib/piston.rb
CHANGED
@@ -18,8 +18,8 @@
|
|
18
18
|
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
# THE SOFTWARE.
|
20
20
|
|
21
|
-
# $HeadURL: svn+ssh://fbos@rubyforge.org/var/svn/piston/tags/1.3.
|
22
|
-
# $Id: piston.rb
|
21
|
+
# $HeadURL: svn+ssh://fbos@rubyforge.org/var/svn/piston/tags/1.3.3/lib/piston.rb $
|
22
|
+
# $Id: piston.rb 93 2007-03-13 19:41:08Z fbos $
|
23
23
|
|
24
24
|
require 'yaml'
|
25
25
|
require 'uri'
|
@@ -31,8 +31,10 @@ Dir[File.join(PISTON_ROOT, 'core_ext', '*.rb')].each do |file|
|
|
31
31
|
end
|
32
32
|
|
33
33
|
require "piston/version"
|
34
|
-
require
|
35
|
-
require
|
34
|
+
require "piston/command"
|
35
|
+
require "piston/command_error"
|
36
|
+
|
37
|
+
require "transat/parser"
|
36
38
|
Dir[File.join(PISTON_ROOT, "piston", "commands", "*.rb")].each do |file|
|
37
39
|
require file.gsub(PISTON_ROOT, "")[1..-4]
|
38
40
|
end
|
data/lib/piston/command.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "piston"
|
2
|
+
|
1
3
|
module Piston
|
2
4
|
# The base class which all commands subclass to obtain services from.
|
3
5
|
class Command
|
@@ -8,23 +10,17 @@ module Piston
|
|
8
10
|
|
9
11
|
def initialize(non_options, options)
|
10
12
|
@args = non_options
|
11
|
-
options.each do |option, value|
|
12
|
-
self.send("#{option}=", value)
|
13
|
-
end
|
14
|
-
end
|
15
13
|
|
16
|
-
# Execute this command. The arguments are pre-processed to expand any
|
17
|
-
# wildcards using Dir#[]. This is because the Windows shell does not
|
18
|
-
# know it should expand wildcards before calling an executable.
|
19
|
-
def execute(args)
|
20
14
|
# Because the Windows shell does not process wildcards, we must do it
|
21
15
|
# here ourselves
|
22
|
-
args.
|
16
|
+
@args.collect! do |arg|
|
23
17
|
next arg unless arg =~ /[*?]/
|
24
18
|
Dir[arg]
|
25
19
|
end
|
26
20
|
|
27
|
-
|
21
|
+
options.each do |option, value|
|
22
|
+
self.send("#{option}=", value)
|
23
|
+
end
|
28
24
|
end
|
29
25
|
|
30
26
|
# Run a Subversion command using the shell. If the Subversion command
|
data/lib/piston/command_error.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
require
|
1
|
+
require "piston"
|
2
|
+
require "piston/command"
|
3
|
+
require "piston/commands/import"
|
2
4
|
|
3
5
|
module Piston
|
4
6
|
module Commands
|
@@ -21,15 +23,15 @@ module Piston
|
|
21
23
|
externals.each_line do |external|
|
22
24
|
external.chomp!
|
23
25
|
next if external.empty?
|
24
|
-
next skip_no_match(external) unless external =~ /^([^ ]+)\s+(?:-r(\d+)\s+)?(.*)$/
|
26
|
+
next skip_no_match(external) unless external =~ /^([^ ]+)\s+(?:-r\s*(\d+)\s+)?(.*)$/
|
25
27
|
|
26
28
|
local, revision, repos = $1, $2, $3
|
27
29
|
lock = true if revision
|
28
30
|
local_dir = File.join(dir, local)
|
29
31
|
if File.exists?(local_dir)
|
30
|
-
raise Piston::CommandError, "
|
32
|
+
raise Piston::CommandError, "#{local_dir.inspect} is not a directory" unless File.directory?(local_dir)
|
31
33
|
status = svn(:status, local_dir)
|
32
|
-
raise Piston::CommandError, "
|
34
|
+
raise Piston::CommandError, "#{local_dir.inspect} has local modifications:\n#{status}\nYour must revert or commit before trying again." unless status.empty?
|
33
35
|
info = YAML::load(svn(:info, local_dir))
|
34
36
|
revision = info['Last Changed Rev'] unless revision
|
35
37
|
FileUtils.rm_rf(local_dir)
|
@@ -40,11 +42,11 @@ module Piston
|
|
40
42
|
|
41
43
|
operations.each do |local_dir, revision, repos, lock|
|
42
44
|
logging_stream.puts "Importing '#{repos}' to #{local_dir} (-r #{revision || 'HEAD'}#{' locked' if lock})"
|
43
|
-
import = Piston::Commands::Import.new
|
45
|
+
import = Piston::Commands::Import.new([repos, local_dir], {})
|
44
46
|
import.revision = revision
|
45
47
|
import.verbose, import.quiet, import.logging_stream = self.verbose, self.quiet, self.logging_stream
|
46
48
|
import.lock = lock
|
47
|
-
import.run
|
49
|
+
import.run
|
48
50
|
logging_stream.puts
|
49
51
|
end
|
50
52
|
end
|
data/lib/piston/commands/lock.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "piston"
|
2
|
+
require "piston/command"
|
3
|
+
|
1
4
|
module Piston
|
2
5
|
module Commands
|
3
6
|
class Switch < Piston::Command
|
@@ -33,15 +36,13 @@ module Piston
|
|
33
36
|
local_revision = local_revision.succ
|
34
37
|
|
35
38
|
new_info = YAML::load(svn(:info, new_repos))
|
36
|
-
raise Piston::CommandError unless uuid == new_info['Repository UUID']
|
39
|
+
raise Piston::CommandError, "Switching repositories is not supported at this time\nYou initially imported from #{uuid}, but are now importing from #{new_info['Repository UUID']}" unless uuid == new_info['Repository UUID']
|
37
40
|
|
38
41
|
logging_stream.puts " Fetching remote repository's latest revision and UUID"
|
39
42
|
info = YAML::load(svn(:info, "#{repos}@#{remote_revision}"))
|
40
43
|
return skip(dir, "Repository UUID changed\n Expected #{uuid}\n Found #{info['Repository UUID']}\n Repository: #{repos}") unless uuid == info['Repository UUID']
|
41
44
|
|
42
45
|
new_remote_rev = new_info['Last Changed Rev'].to_i
|
43
|
-
return skip(dir, "unchanged from revision #{remote_revision}", false) if remote_revision == new_remote_rev
|
44
|
-
|
45
46
|
revisions = (remote_revision .. (revision || new_remote_rev))
|
46
47
|
|
47
48
|
logging_stream.puts " Restoring remote repository to known state at r#{revisions.first}"
|
data/lib/piston/version.rb
CHANGED
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.2
|
|
3
3
|
specification_version: 1
|
4
4
|
name: piston
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.3.
|
7
|
-
date: 2007-03-
|
6
|
+
version: 1.3.3
|
7
|
+
date: 2007-03-22 00:00:00 -04:00
|
8
8
|
summary: Piston is a utility that enables merge tracking of remote repositories.
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -36,15 +36,10 @@ files:
|
|
36
36
|
- contrib/piston
|
37
37
|
- bin/piston
|
38
38
|
- lib/core_ext
|
39
|
-
- lib/piston
|
40
|
-
- lib/transat
|
41
|
-
- lib/piston.rb
|
42
39
|
- lib/core_ext/string.rb
|
43
40
|
- lib/core_ext/range.rb
|
41
|
+
- lib/piston
|
44
42
|
- lib/piston/commands
|
45
|
-
- lib/piston/command.rb
|
46
|
-
- lib/piston/command_error.rb
|
47
|
-
- lib/piston/version.rb
|
48
43
|
- lib/piston/commands/convert.rb
|
49
44
|
- lib/piston/commands/switch.rb
|
50
45
|
- lib/piston/commands/update.rb
|
@@ -52,7 +47,12 @@ files:
|
|
52
47
|
- lib/piston/commands/lock.rb
|
53
48
|
- lib/piston/commands/import.rb
|
54
49
|
- lib/piston/commands/unlock.rb
|
50
|
+
- lib/piston/command.rb
|
51
|
+
- lib/piston/version.rb
|
52
|
+
- lib/piston/command_error.rb
|
53
|
+
- lib/transat
|
55
54
|
- lib/transat/parser.rb
|
55
|
+
- lib/piston.rb
|
56
56
|
test_files: []
|
57
57
|
|
58
58
|
rdoc_options: []
|