evilchelu-braid 0.4.11 → 0.4.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/braid +18 -5
- data/braid.gemspec +2 -2
- data/lib/braid/operations.rb +23 -6
- data/lib/braid.rb +3 -3
- metadata +2 -2
data/bin/braid
CHANGED
@@ -51,9 +51,10 @@ Main {
|
|
51
51
|
. braid add svn://remote/path --branch notmaster
|
52
52
|
TXT
|
53
53
|
|
54
|
-
mixin :argument_url, :option_type, :optional_path, :option_branch, :option_rails_plugin, :option_revision, :option_full
|
54
|
+
mixin :argument_url, :option_type, :optional_path, :option_branch, :option_rails_plugin, :option_revision, :option_full, :option_verbose
|
55
55
|
|
56
56
|
run {
|
57
|
+
Braid::Operations::VERBOSE = verbose
|
57
58
|
Braid::Command.run(:add, url, { "type" => type, "path" => path, "branch" => branch, "rails_plugin" => rails_plugin, "revision" => revision, "full" => full })
|
58
59
|
}
|
59
60
|
}
|
@@ -74,9 +75,10 @@ Main {
|
|
74
75
|
. braid update local/dir
|
75
76
|
TXT
|
76
77
|
|
77
|
-
mixin :optional_path, :option_revision, :option_head, :option_safe
|
78
|
+
mixin :optional_path, :option_revision, :option_head, :option_safe, :option_verbose
|
78
79
|
|
79
80
|
run {
|
81
|
+
Braid::Operations::VERBOSE = verbose
|
80
82
|
Braid::Command.run(:update, path, { "revision" => revision, "head" => head , "safe" => safe })
|
81
83
|
}
|
82
84
|
}
|
@@ -94,9 +96,10 @@ Main {
|
|
94
96
|
. braid remove local/dir
|
95
97
|
TXT
|
96
98
|
|
97
|
-
mixin :argument_path
|
99
|
+
mixin :argument_path, :option_verbose
|
98
100
|
|
99
101
|
run {
|
102
|
+
Braid::Operations::VERBOSE = verbose
|
100
103
|
Braid::Command.run(:remove, path)
|
101
104
|
}
|
102
105
|
}
|
@@ -110,9 +113,10 @@ Main {
|
|
110
113
|
. braid setup local/dir
|
111
114
|
TXT
|
112
115
|
|
113
|
-
mixin :optional_path
|
116
|
+
mixin :optional_path, :option_verbose
|
114
117
|
|
115
118
|
run {
|
119
|
+
Braid::Operations::VERBOSE = verbose
|
116
120
|
Braid::Command.run(:setup, path)
|
117
121
|
}
|
118
122
|
}
|
@@ -126,9 +130,10 @@ Main {
|
|
126
130
|
. braid diff local/dir
|
127
131
|
TXT
|
128
132
|
|
129
|
-
mixin :argument_path
|
133
|
+
mixin :argument_path, :option_verbose
|
130
134
|
|
131
135
|
run {
|
136
|
+
Braid::Operations::VERBOSE = verbose
|
132
137
|
Braid::Command.run(:diff, path)
|
133
138
|
}
|
134
139
|
}
|
@@ -218,6 +223,14 @@ Main {
|
|
218
223
|
attr
|
219
224
|
}
|
220
225
|
}
|
226
|
+
|
227
|
+
mixin(:option_verbose) {
|
228
|
+
option(:verbose, :v) {
|
229
|
+
optional
|
230
|
+
desc 'log shell commands'
|
231
|
+
attr
|
232
|
+
}
|
233
|
+
}
|
221
234
|
|
222
235
|
run { help! }
|
223
236
|
}
|
data/braid.gemspec
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{braid}
|
3
|
-
s.version = "0.4.
|
3
|
+
s.version = "0.4.12"
|
4
4
|
|
5
5
|
s.specification_version = 2 if s.respond_to? :specification_version=
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Cristi Balan", "Norbert Crombach"]
|
9
|
-
s.date = %q{2008-
|
9
|
+
s.date = %q{2008-10-04}
|
10
10
|
s.default_executable = %q{braid}
|
11
11
|
s.description = %q{A simple tool for tracking vendor branches in git.}
|
12
12
|
s.email = %q{evil@che.lu}
|
data/lib/braid/operations.rb
CHANGED
@@ -14,13 +14,14 @@ module Braid
|
|
14
14
|
end
|
15
15
|
end
|
16
16
|
class VersionTooLow < BraidError
|
17
|
-
def initialize(command, version)
|
17
|
+
def initialize(command, version, required)
|
18
18
|
@command = command
|
19
19
|
@version = version.to_s.split("\n").first
|
20
|
+
@required = required
|
20
21
|
end
|
21
22
|
|
22
23
|
def message
|
23
|
-
"#{@command} version too low: #{@version}"
|
24
|
+
"#{@command} version too low: #{@version}. #{@required} needed."
|
24
25
|
end
|
25
26
|
end
|
26
27
|
class UnknownRevision < BraidError
|
@@ -33,12 +34,22 @@ module Braid
|
|
33
34
|
"local changes are present"
|
34
35
|
end
|
35
36
|
end
|
37
|
+
class LocalCacheDirBroken < BraidError
|
38
|
+
def initialize(dir)
|
39
|
+
@dir = dir
|
40
|
+
end
|
41
|
+
|
42
|
+
def message
|
43
|
+
"Local cache '#{@dir}' needs to be recreated. Remove the directory and run the command again."
|
44
|
+
end
|
45
|
+
end
|
36
46
|
|
37
47
|
# The command proxy is meant to encapsulate commands such as git, git-svn and svn, that work with subcommands.
|
38
48
|
class Proxy
|
39
49
|
include Singleton
|
40
50
|
|
41
51
|
def self.command; name.split('::').last.downcase; end # hax!
|
52
|
+
def self.verbose; Braid::Operations::VERBOSE ; end
|
42
53
|
|
43
54
|
def version
|
44
55
|
status, out, err = exec!("#{self.class.command} --version")
|
@@ -68,7 +79,7 @@ module Braid
|
|
68
79
|
end
|
69
80
|
|
70
81
|
def require_version!(required)
|
71
|
-
require_version(required) || raise(VersionTooLow.new(self.class.command, version))
|
82
|
+
require_version(required) || raise(VersionTooLow.new(self.class.command, version, required))
|
72
83
|
end
|
73
84
|
|
74
85
|
private
|
@@ -92,6 +103,7 @@ module Braid
|
|
92
103
|
ENV['LANG'] = 'C'
|
93
104
|
|
94
105
|
out, err = nil
|
106
|
+
puts "executing cmd(#{cmd})" if Proxy.verbose
|
95
107
|
status = Open4.popen4(cmd) do |pid, stdin, stdout, stderr|
|
96
108
|
out = stdout.read
|
97
109
|
err = stderr.read
|
@@ -129,7 +141,7 @@ module Braid
|
|
129
141
|
|
130
142
|
def fetch(remote)
|
131
143
|
# open4 messes with the pipes of index-pack
|
132
|
-
system("git fetch -n #{remote}
|
144
|
+
system("git fetch -n #{remote} 2>&1 >/dev/null")
|
133
145
|
raise ShellExecutionError, "could not fetch" unless $? == 0
|
134
146
|
true
|
135
147
|
end
|
@@ -254,7 +266,7 @@ module Braid
|
|
254
266
|
|
255
267
|
def fetch(remote)
|
256
268
|
# open4 messes with the pipes of index-pack
|
257
|
-
system("git svn fetch #{remote}
|
269
|
+
system("git svn fetch #{remote} 2>&1 >/dev/null")
|
258
270
|
raise ShellExecutionError, "could not fetch" unless $? == 0
|
259
271
|
true
|
260
272
|
end
|
@@ -286,6 +298,11 @@ module Braid
|
|
286
298
|
class GitCache < Proxy
|
287
299
|
def init_or_fetch(url, dir)
|
288
300
|
if File.exists? dir
|
301
|
+
# bail if the local cache was created with --no-checkout
|
302
|
+
if File.exists? "#{dir}/.git"
|
303
|
+
raise LocalCacheDirBroken.new(dir)
|
304
|
+
end
|
305
|
+
|
289
306
|
msg "Updating local cache of '#{url}' into '#{dir}'."
|
290
307
|
FileUtils.cd(dir) do |d|
|
291
308
|
status, out, err = exec!("git fetch")
|
@@ -294,7 +311,7 @@ module Braid
|
|
294
311
|
FileUtils.mkdir_p(Braid::LOCAL_CACHE_DIR)
|
295
312
|
|
296
313
|
msg "Caching '#{url}' into '#{dir}'."
|
297
|
-
status, out, err = exec!("git clone --
|
314
|
+
status, out, err = exec!("git clone --mirror #{url} #{dir}")
|
298
315
|
end
|
299
316
|
end
|
300
317
|
end
|
data/lib/braid.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
$:.unshift File.dirname(__FILE__)
|
2
2
|
|
3
3
|
module Braid
|
4
|
-
VERSION = "0.4.
|
4
|
+
VERSION = "0.4.12"
|
5
5
|
|
6
6
|
CONFIG_FILE = ".braids"
|
7
|
-
USE_LOCAL_CACHE = ENV["BRAID_USE_LOCAL_CACHE"]
|
7
|
+
USE_LOCAL_CACHE = ENV["BRAID_USE_LOCAL_CACHE"] != "no"
|
8
8
|
LOCAL_CACHE_DIR = ENV["BRAID_LOCAL_CACHE_DIR"] || "#{ENV["HOME"]}/.braid/cache/"
|
9
|
-
REQUIRED_GIT_VERSION = "1.
|
9
|
+
REQUIRED_GIT_VERSION = "1.6"
|
10
10
|
|
11
11
|
class BraidError < StandardError
|
12
12
|
def message
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: evilchelu-braid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cristi Balan
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2008-
|
13
|
+
date: 2008-10-04 00:00:00 -07:00
|
14
14
|
default_executable: braid
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|