braid 0.6.1 → 0.6.2
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/braid.gemspec +5 -5
- data/lib/braid.rb +1 -1
- data/lib/braid/commands/push.rb +48 -0
- metadata +20 -10
data/braid.gemspec
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = %q{braid}
|
3
|
-
s.version = "0.6.
|
3
|
+
s.version = "0.6.2"
|
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{
|
9
|
+
s.date = %q{2010-07-19}
|
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}
|
13
13
|
s.executables = ["braid"]
|
14
|
-
s.files = ["bin/braid", "braid.gemspec", "lib/braid/command.rb", "lib/braid/commands/add.rb", "lib/braid/commands/diff.rb", "lib/braid/commands/remove.rb", "lib/braid/commands/setup.rb", "lib/braid/commands/update.rb", "lib/braid/config.rb", "lib/braid/mirror.rb", "lib/braid/operations.rb", "lib/braid.rb", "lib/core_ext.rb", "LICENSE", "Rakefile", "README.textile", "test/braid_test.rb", "test/config_test.rb", "test/fixtures/shiny/README", "test/fixtures/skit1/layouts/layout.liquid", "test/fixtures/skit1/preview.png", "test/fixtures/skit1.1/layouts/layout.liquid", "test/fixtures/skit1.2/layouts/layout.liquid", "test/integration/adding_test.rb", "test/integration/updating_test.rb", "test/integration_helper.rb", "test/mirror_test.rb", "test/operations_test.rb", "test/test_helper.rb"]
|
14
|
+
s.files = ["bin/braid", "braid.gemspec", "lib/braid/command.rb", "lib/braid/commands/add.rb", "lib/braid/commands/diff.rb", "lib/braid/commands/push.rb", "lib/braid/commands/remove.rb", "lib/braid/commands/setup.rb", "lib/braid/commands/update.rb", "lib/braid/config.rb", "lib/braid/mirror.rb", "lib/braid/operations.rb", "lib/braid.rb", "lib/core_ext.rb", "LICENSE", "Rakefile", "README.textile", "test/braid_test.rb", "test/config_test.rb", "test/fixtures/shiny/README", "test/fixtures/skit1/layouts/layout.liquid", "test/fixtures/skit1/preview.png", "test/fixtures/skit1.1/layouts/layout.liquid", "test/fixtures/skit1.2/layouts/layout.liquid", "test/integration/adding_test.rb", "test/integration/updating_test.rb", "test/integration_helper.rb", "test/mirror_test.rb", "test/operations_test.rb", "test/test_helper.rb"]
|
15
15
|
s.has_rdoc = false
|
16
16
|
s.homepage = %q{http://evil.che.lu/projects/braid}
|
17
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "braid", "--main"]
|
@@ -20,6 +20,6 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.rubygems_version = %q{1.1.0}
|
21
21
|
s.summary = %q{A simple tool for tracking vendor branches in git.}
|
22
22
|
|
23
|
-
s.add_dependency(%q<main>, [">=
|
24
|
-
s.add_dependency(%q<open4>, [">= 0.
|
23
|
+
s.add_dependency(%q<main>, [">= 4.2.0"])
|
24
|
+
s.add_dependency(%q<open4>, [">= 1.0.1"])
|
25
25
|
end
|
data/lib/braid.rb
CHANGED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require 'tmpdir'
|
3
|
+
|
4
|
+
module Braid
|
5
|
+
module Commands
|
6
|
+
class Push < Command
|
7
|
+
def run(path, options = {})
|
8
|
+
mirror = config.get!(path)
|
9
|
+
|
10
|
+
#mirror.fetch
|
11
|
+
|
12
|
+
base_revision = git.rev_parse(mirror.remote)
|
13
|
+
unless mirror.merged?(base_revision)
|
14
|
+
msg "Mirror is not up to date. Stopping."
|
15
|
+
return
|
16
|
+
end
|
17
|
+
|
18
|
+
diff = mirror.diff
|
19
|
+
if diff.empty?
|
20
|
+
msg "No local changes found. Stopping."
|
21
|
+
return
|
22
|
+
end
|
23
|
+
|
24
|
+
clone_dir = Dir.tmpdir + "/braid_push.#{$$}"
|
25
|
+
Dir.mkdir(clone_dir)
|
26
|
+
source_dir = Dir.pwd
|
27
|
+
remote_url = git.remote_url(mirror.remote)
|
28
|
+
if remote_url == mirror.cached_url
|
29
|
+
remote_url = mirror.url
|
30
|
+
elsif File.directory?(remote_url)
|
31
|
+
remote_url = File.expand_path(remote_url)
|
32
|
+
end
|
33
|
+
Dir.chdir(clone_dir) do
|
34
|
+
msg "Cloning mirror with local changes."
|
35
|
+
git.init
|
36
|
+
git.fetch(source_dir)
|
37
|
+
git.fetch(remote_url)
|
38
|
+
git.checkout(base_revision)
|
39
|
+
git.apply(diff)
|
40
|
+
system("git commit -v")
|
41
|
+
msg "Pushing changes to remote."
|
42
|
+
git.push(remote_url, "HEAD:#{mirror.branch}")
|
43
|
+
end
|
44
|
+
FileUtils.rm_r(clone_dir)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: braid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 6
|
8
|
-
-
|
9
|
-
version: 0.6.
|
9
|
+
- 2
|
10
|
+
version: 0.6.2
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Cristi Balan
|
@@ -15,35 +16,39 @@ autorequire:
|
|
15
16
|
bindir: bin
|
16
17
|
cert_chain: []
|
17
18
|
|
18
|
-
date:
|
19
|
+
date: 2010-07-19 00:00:00 +02:00
|
19
20
|
default_executable: braid
|
20
21
|
dependencies:
|
21
22
|
- !ruby/object:Gem::Dependency
|
22
23
|
name: main
|
23
24
|
prerelease: false
|
24
25
|
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
25
27
|
requirements:
|
26
28
|
- - ">="
|
27
29
|
- !ruby/object:Gem::Version
|
30
|
+
hash: 55
|
28
31
|
segments:
|
29
|
-
-
|
32
|
+
- 4
|
33
|
+
- 2
|
30
34
|
- 0
|
31
|
-
|
32
|
-
version: 3.0.0
|
35
|
+
version: 4.2.0
|
33
36
|
type: :runtime
|
34
37
|
version_requirements: *id001
|
35
38
|
- !ruby/object:Gem::Dependency
|
36
39
|
name: open4
|
37
40
|
prerelease: false
|
38
41
|
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
39
43
|
requirements:
|
40
44
|
- - ">="
|
41
45
|
- !ruby/object:Gem::Version
|
46
|
+
hash: 21
|
42
47
|
segments:
|
48
|
+
- 1
|
43
49
|
- 0
|
44
|
-
-
|
45
|
-
|
46
|
-
version: 0.9.6
|
50
|
+
- 1
|
51
|
+
version: 1.0.1
|
47
52
|
type: :runtime
|
48
53
|
version_requirements: *id002
|
49
54
|
description: A simple tool for tracking vendor branches in git.
|
@@ -60,6 +65,7 @@ files:
|
|
60
65
|
- lib/braid/command.rb
|
61
66
|
- lib/braid/commands/add.rb
|
62
67
|
- lib/braid/commands/diff.rb
|
68
|
+
- lib/braid/commands/push.rb
|
63
69
|
- lib/braid/commands/remove.rb
|
64
70
|
- lib/braid/commands/setup.rb
|
65
71
|
- lib/braid/commands/update.rb
|
@@ -98,23 +104,27 @@ rdoc_options:
|
|
98
104
|
require_paths:
|
99
105
|
- lib
|
100
106
|
required_ruby_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
101
108
|
requirements:
|
102
109
|
- - ">="
|
103
110
|
- !ruby/object:Gem::Version
|
111
|
+
hash: 3
|
104
112
|
segments:
|
105
113
|
- 0
|
106
114
|
version: "0"
|
107
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
108
117
|
requirements:
|
109
118
|
- - ">="
|
110
119
|
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
111
121
|
segments:
|
112
122
|
- 0
|
113
123
|
version: "0"
|
114
124
|
requirements: []
|
115
125
|
|
116
126
|
rubyforge_project: braid
|
117
|
-
rubygems_version: 1.3.
|
127
|
+
rubygems_version: 1.3.7
|
118
128
|
signing_key:
|
119
129
|
specification_version: 2
|
120
130
|
summary: A simple tool for tracking vendor branches in git.
|