transparent_git 0.0.1 → 0.1.0

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/.lre ADDED
@@ -0,0 +1,19 @@
1
+ load "lib/transparent_git.rb"
2
+ load "lib/run_specs.rb"
3
+
4
+ LRE.watch(".*spec/.*.rb") do |f|
5
+ run_specs!(f)
6
+ end
7
+
8
+ LRE.watch(".*lib/.*.rb") do |f|
9
+ load(f)
10
+ run_specs!(f)
11
+ end
12
+
13
+ LRE.watch(".*spec_helper.*") do |f|
14
+ load f
15
+ end
16
+
17
+ require 'repl_index'
18
+
19
+ LRE.watch_dirs += ["C:\\Ruby192\\lib\\ruby\\gems\\1.9.1\\gems\\grit-2.5.0\\lib"]
data/Gemfile CHANGED
@@ -10,7 +10,14 @@ group :development do
10
10
  gem "bundler", "~> 1.0.0"
11
11
  gem "jeweler", "~> 1.5.2"
12
12
  gem "rcov", ">= 0"
13
+ gem "rspec", "~> 2.3.0"
14
+ gem 'grit'
15
+ gem 'lre'
16
+ gem 'repl_index'
13
17
  end
14
18
 
15
19
  gem 'mharris_ext'
16
20
  gem 'fattr'
21
+
22
+
23
+ gem 'andand'
@@ -1,25 +1,54 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ andand (1.3.1)
5
+ diff-lcs (1.1.3)
4
6
  facets (2.9.1)
5
7
  fattr (2.2.1)
6
8
  git (1.2.5)
9
+ grit (2.5.0)
10
+ diff-lcs (~> 1.1)
11
+ mime-types (~> 1.15)
12
+ posix-spawn (~> 0.3.6)
7
13
  jeweler (1.5.2)
8
14
  bundler (~> 1.0.0)
9
15
  git (>= 1.2.5)
10
16
  rake
17
+ lre (0.3.0)
18
+ fattr
19
+ mharris_ext
20
+ rake (>= 0.8.7)
21
+ watchr
11
22
  mharris_ext (1.5.0)
12
23
  facets
13
24
  fattr
25
+ mime-types (1.18)
26
+ posix-spawn (0.3.6)
14
27
  rake (0.9.2.2)
15
28
  rcov (0.9.9)
29
+ repl_index (0.0.1)
30
+ mharris_ext
31
+ rspec (2.3.0)
32
+ rspec-core (~> 2.3.0)
33
+ rspec-expectations (~> 2.3.0)
34
+ rspec-mocks (~> 2.3.0)
35
+ rspec-core (2.3.1)
36
+ rspec-expectations (2.3.0)
37
+ diff-lcs (~> 1.1.2)
38
+ rspec-mocks (2.3.0)
39
+ watchr (0.7)
16
40
 
17
41
  PLATFORMS
18
42
  x86-mingw32
19
43
 
20
44
  DEPENDENCIES
45
+ andand
21
46
  bundler (~> 1.0.0)
22
47
  fattr
48
+ grit
23
49
  jeweler (~> 1.5.2)
50
+ lre
24
51
  mharris_ext
25
52
  rcov
53
+ repl_index
54
+ rspec (~> 2.3.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.1.0
@@ -0,0 +1,47 @@
1
+ $run_all_specs_each_time = false
2
+
3
+ def run_specs!(f=nil)
4
+ return unless f =~ /_spec\.rb/
5
+ orig_f = f
6
+ run_files = lambda do |fs|
7
+ RSpec.instance_eval { @configuration = RSpec::Core::Configuration.new }
8
+ RSpec::world.instance_eval { @example_groups = [] }
9
+ fs.each { |f| load f }
10
+ RSpec::Core::Runner.run([], $stderr, $stdout)
11
+ end
12
+
13
+ if f && !(f =~ /spec/i)
14
+ b = File.basename(f).split(".").first
15
+ f = "spec/#{b}_spec.rb"
16
+ if FileTest.exists?(f)
17
+ # nothing
18
+ elsif orig_f =~ /field_defs/
19
+ f = "spec/field_defs_spec.rb"
20
+ else
21
+ f = nil
22
+ end
23
+ end
24
+
25
+ all = Dir["spec/*_spec.rb"]
26
+
27
+ if $run_all_specs_each_time
28
+ #run_files[all]
29
+ elsif f
30
+ run_files[[f]]
31
+ end
32
+
33
+ end
34
+
35
+ def run_all_specs!(ops={})
36
+ return unless ops[:force]
37
+ run_files = lambda do |fs|
38
+ RSpec.instance_eval { @configuration = RSpec::Core::Configuration.new }
39
+ RSpec::world.instance_eval { @example_groups = [] }
40
+ fs.each { |f| load f }
41
+ RSpec::Core::Runner.run([], $stderr, $stdout)
42
+ end
43
+
44
+ all = Dir["spec/**/*_spec.rb"]
45
+
46
+ run_files[all]
47
+ end
@@ -2,99 +2,17 @@ require 'mharris_ext'
2
2
  require 'fileutils'
3
3
  require 'yaml'
4
4
 
5
- dir = "c:/code/tg_test_repo"
6
- def git; "c:/progra~1/git/bin/git"; end
7
-
8
- def with_chdir(dir)
9
- old = Dir.getwd
10
- Dir.chdir(dir)
11
- yield
12
- ensure
13
- Dir.chdir(old)
14
- end
15
-
16
- class Object
17
- def blank?
18
- to_s.strip == ''
19
- end
20
- def present?
21
- !blank?
5
+ module TransparentGit
6
+ def self.load_repo!
7
+ %w(repo).each do |f|
8
+ load File.expand_path(File.dirname(__FILE__)) + "/transparent_git/#{f}.rb"
9
+ end
22
10
  end
23
11
  end
24
12
 
25
- class RemoteTracker
26
- include FromHash
27
- attr_accessor :repo_holding_dir, :name, :working_dir
28
- fattr(:repo_dir) { "#{repo_holding_dir}/#{name}" }
29
- fattr(:name) do
30
- working_dir.gsub(/(:|\\|\/)/,"_")
31
- end
32
- def setup_env!
33
- ENV['GIT_DIR'] = "#{repo_dir}"
34
- ENV['GIT_WORK_TREE'] = working_dir
35
- end
36
- def commit_current_state!
37
- puts "doing #{working_dir}"
38
- setup_env!
39
- FileUtils.mkdir_p(repo_holding_dir)
40
-
41
- lock = "#{repo_dir}/refs/heads/master.lock"
42
- FileUtils.rm(lock) if FileTest.exist?(lock)
43
-
44
- ec "#{git} init"
45
- ec "#{git} add -u"
46
- ec "#{git} add ."
47
- ec "#{git} commit -m \"Current State #{Time.now}\""
48
- end
13
+ %w(ext remote_tracker remote_trackers).each do |f|
14
+ load File.expand_path(File.dirname(__FILE__)) + "/transparent_git/#{f}.rb"
49
15
  end
50
16
 
51
- class RemoteTrackers
52
- include FromHash
53
- fattr(:list) { [] }
54
- fattr(:interval) { 10 }
55
- fattr(:repo_holding_dir) { File.expand_path("~/repo_holding") }
56
- def add(ops)
57
- ops = {:repo_holding_dir => repo_holding_dir}.merge(ops)
58
- res = RemoteTracker.new(ops)
59
- list << res
60
- end
61
- def run_once!
62
- list.each do |t|
63
- t.commit_current_state!
64
- end
65
- end
66
- def run_loop!
67
- loop do
68
- run_once!
69
- sleep(interval.to_i)
70
- end
71
- end
72
17
 
73
- class << self
74
- def create_from_yaml(f)
75
- str = File.read(f)
76
- puts str
77
- raise "file is empty" if str.blank?
78
18
 
79
- h = YAML::load(str)
80
- puts h.inspect
81
-
82
- res = new
83
-
84
- if h.kind_of?(Hash)
85
- repos = h.delete('repos')
86
- raise "no repos given" unless repos
87
- res.from_hash(h)
88
- repos.each do |repo|
89
- res.add(repo)
90
- end
91
- else
92
- repos = str.split("\n").map { |x| x.strip }.select { |x| x.present? }
93
- repos.each do |r|
94
- res.add :working_dir => r
95
- end
96
- end
97
- res
98
- end
99
- end
100
- end
@@ -0,0 +1,43 @@
1
+ def git(*args)
2
+ exe = "c:/progra~1/git/bin/git"
3
+ if args.empty?
4
+ exe
5
+ else
6
+ str = args.join(" ")
7
+ cmd = "#{exe} #{str}"
8
+ res = ec cmd
9
+ raise "cmd: #{cmd}\nres: #{res}" if res =~ /(error|fatal)/i || $?.exitstatus != 0
10
+ res
11
+ end
12
+ end
13
+
14
+ def with_chdir(dir)
15
+ puts "chdir to #{dir}"
16
+ old = Dir.getwd
17
+ Dir.chdir(dir)
18
+ yield
19
+ ensure
20
+ Dir.chdir(old)
21
+ end
22
+
23
+ class Object
24
+ def blank?
25
+ to_s.strip == ''
26
+ end
27
+ def present?
28
+ !blank?
29
+ end
30
+ end
31
+
32
+ class String
33
+ def to_file_url
34
+ res = gsub("\\","/").gsub("c:","/c")
35
+ "file://#{res}"
36
+ end
37
+ end
38
+
39
+ class Object
40
+ def klass
41
+ self.class
42
+ end
43
+ end
@@ -0,0 +1,80 @@
1
+ module TransparentGit
2
+ class RemoteTracker
3
+ include FromHash
4
+ attr_accessor :repo_holding_dir, :name, :working_dir
5
+ fattr(:repo_dir) { "#{repo_holding_dir}/#{name}" }
6
+ fattr(:name) do
7
+ working_dir.gsub(/(:|\\|\/)/,"_")
8
+ end
9
+
10
+ def working_dir_repo?
11
+ FileTest.exist? "#{working_dir}/.git"
12
+ end
13
+ def repo_exists?
14
+ FileTest.exist? "#{repo_dir}/config"
15
+ end
16
+
17
+ def setup_env!
18
+ puts "setting env"
19
+ ENV['GIT_DIR'] = repo_dir
20
+ ENV['GIT_WORK_TREE'] = working_dir
21
+
22
+ if block_given?
23
+ yield
24
+ ENV.delete('GIT_DIR')
25
+ ENV.delete('GIT_WORK_TREE')
26
+ end
27
+ end
28
+ def create_repo!
29
+ FileUtils.mkdir_p(repo_holding_dir)
30
+ if working_dir_repo? && false
31
+ git :clone, working_dir.to_file_url,repo_dir,"--mirror"
32
+ git :branch, :transparent_git
33
+
34
+ git :remote, :add, :tg_origin, working_dir.to_file_url
35
+ git :fetch, :tg_origin
36
+
37
+ #git :checkout, :master
38
+ #git "checkout transparent_git"
39
+
40
+ File.create("#{repo_dir}/HEAD","ref: refs/heads/transparent_git")
41
+ else
42
+ git :init
43
+ end
44
+ end
45
+ def setup_repo!
46
+ create_repo! unless repo_exists?
47
+
48
+ lock = "#{repo_dir}/refs/heads/master.lock"
49
+ FileUtils.rm(lock) if FileTest.exist?(lock)
50
+ end
51
+ def delete_repo!
52
+ FileUtils.rm_r(repo_dir) if FileTest.exists?(repo_dir)
53
+ end
54
+
55
+ def commit_current_state!
56
+ puts "doing #{working_dir}"
57
+
58
+ existed = repo_exists?
59
+
60
+ setup_env! do
61
+ setup_repo!
62
+
63
+ git "add -u"
64
+ git "add ."
65
+ eat_exceptions { git "commit -m \"Current State #{Time.now}\"" }
66
+
67
+ #git "branch -m master transparent_git" unless !existed
68
+
69
+ #puts "wait"
70
+ #STDIN.gets
71
+
72
+ #git "pull tg_origin master:master"
73
+ #git "fetch tg_origin"
74
+ #git "merge master tg_origin/master"
75
+
76
+ #puts 'done'
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,52 @@
1
+ module TransparentGit
2
+ class RemoteTrackers
3
+ include FromHash
4
+ fattr(:list) { [] }
5
+ fattr(:interval) { 10 }
6
+ fattr(:repo_holding_dir) { File.expand_path("~/repo_holding") }
7
+ def add(ops)
8
+ ops = {:repo_holding_dir => repo_holding_dir}.merge(ops)
9
+ res = RemoteTracker.new(ops)
10
+ list << res
11
+ end
12
+ def run_once!
13
+ list.each do |t|
14
+ t.commit_current_state!
15
+ end
16
+ end
17
+ def run_loop!
18
+ loop do
19
+ run_once!
20
+ sleep(interval.to_i)
21
+ end
22
+ end
23
+
24
+ class << self
25
+ def create_from_yaml(f)
26
+ str = File.read(f)
27
+ puts str
28
+ raise "file is empty" if str.blank?
29
+
30
+ h = YAML::load(str)
31
+ puts h.inspect
32
+
33
+ res = new
34
+
35
+ if h.kind_of?(Hash)
36
+ repos = h.delete('repos')
37
+ raise "no repos given" unless repos
38
+ res.from_hash(h)
39
+ repos.each do |repo|
40
+ res.add(repo)
41
+ end
42
+ else
43
+ repos = str.split("\n").map { |x| x.strip }.select { |x| x.present? }
44
+ repos.each do |r|
45
+ res.add :working_dir => r
46
+ end
47
+ end
48
+ res
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,82 @@
1
+ require 'grit'
2
+ require 'andand'
3
+
4
+
5
+ Grit::Git.git_binary = "C:\\progra~1\\Git\\bin\\git.exe"
6
+ Grit::Git.git_timeout = 999
7
+
8
+ class String
9
+ def stripped_chars
10
+ self.encode("UTF-8", :invalid => :replace, :undef => :replace)
11
+ end
12
+ end
13
+
14
+ class POChange
15
+ include FromHash
16
+ attr_accessor :curr, :prev, :name, :time, :commit_hash
17
+ def to_s
18
+ "#{name}: #{prev.andand.strip}|#{curr.andand.strip}"
19
+ end
20
+ def to_json
21
+ {:curr => curr.andand.strip, :prev => prev.andand.strip, :file => name, :time => time, :commit_hash => commit_hash}
22
+ end
23
+ def self.from_diff(commit,diff)
24
+ new(:curr => diff.b_blob.andand.data.andand.stripped_chars, :prev => diff.a_blob.andand.data.andand.stripped_chars,
25
+ :name => diff.a_path, :time => commit.committed_date, :commit_hash => commit.id)
26
+ end
27
+ end
28
+
29
+ module Grit
30
+ class Repo
31
+ def changes_for_commit(commit)
32
+ commit.diffs.map do |diff|
33
+ POChange.from_diff(commit,diff)
34
+ end
35
+ end
36
+ fattr(:bad_commit_hashes) do
37
+ #res = all_commits[-6..-1].map { |x| x.id }
38
+ res = []
39
+ res += ['cd633e4e04bab243d95a0be296642c1172b1a770','2246825a104b01a9ac055f4a769365dd0fdeebb6','64d41f78c239c7e315173b667b05281b27386b84']
40
+ res += ['bdd1d27fb2df2e7cf4bcefc66a4d543fd6a70fa4','d28341453ceed15769e7862b0db4448e4005ca16','e9186de39aabc34fc555412b01496f4abb3abc2b']
41
+ res += ['039c6d553901873f7cbe5fbd4c81e3bb4badbdae','9122c515e2ca96b0132dac434ffa70c4a53d48ec']
42
+ res
43
+ end
44
+ def good_commits
45
+ all_commits.reject { |x| bad_commit_hashes.include?(x.id) }
46
+ end
47
+ def latest_files
48
+ t = commits('master',1).first.tree
49
+ res = []
50
+ each_tree_file(t) { |name,blob| res << RepoFile.new(:file => name, :body => blob.data.stripped_chars) }
51
+ res
52
+ end
53
+ def changes(ops)
54
+ branch = ops[:branch] || 'master'
55
+ num_commits = ops[:end] - ops[:start] + 1
56
+ cs = commits(branch,num_commits,ops[:start])
57
+ cs = cs.reject { |x| bad_commit_hashes.include?(x.id) }
58
+ cs.map { |x| changes_for_commit(x) }.flatten
59
+ end
60
+ end
61
+ end
62
+
63
+ def each_tree_file(tree,prefix=nil,&b)
64
+ tree.contents.each do |obj|
65
+ if obj.respond_to?(:contents)
66
+ new_prefix = [prefix,obj.name].select { |x| x }.join("/")
67
+ each_tree_file(obj,new_prefix,&b)
68
+ else
69
+ name = [prefix,obj.name].select { |x| x }.join("/")
70
+ yield(name,obj)
71
+ end
72
+ end
73
+ end
74
+
75
+
76
+ class RepoFile
77
+ include FromHash
78
+ attr_accessor :file, :body
79
+ def to_json
80
+ {:file => file, :body => body}
81
+ end
82
+ end
@@ -0,0 +1,39 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe TransparentGit do
4
+ describe 'RemoteTracker' do
5
+ describe 'docs' do
6
+ before do
7
+ test_repos.setup_initial!
8
+ tracker.commit_current_state!
9
+ end
10
+ let(:test_repos) { TestRepos.get(:docs) }
11
+ let(:tracker) { test_repos.tracker }
12
+
13
+ it 'tracking repo has 1 commit' do
14
+ test_repos.tracking_repo.commits.size.should == 1
15
+ end
16
+
17
+ describe 'after a change' do
18
+ before do
19
+ test_repos.append("base.txt","abcxyz")
20
+ tracker.commit_current_state!
21
+ end
22
+
23
+ fattr(:change) { test_repos.tracking_repo.changes(:start => 0, :end => 99)[-1] }
24
+
25
+ it 'tracking repo has 2 commits' do
26
+ test_repos.tracking_repo.commits.size.should == 2
27
+ end
28
+ it '2nd commit is base.txt' do
29
+ change.name.should == 'base.txt'
30
+ exp = change.prev + "\nabcxyz\n"
31
+ change.curr.should == exp
32
+ end
33
+ it '2nd commit is correct text' do
34
+ change.curr.should == (change.prev + "\nabcxyz\n")
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,55 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ #require 'ansicon'
5
+
6
+
7
+ # Requires supporting files with custom matchers and macros, etc,
8
+ # in ./support/ and its subdirectories.
9
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f }
10
+
11
+ class TestRepos
12
+ include FromHash
13
+ attr_accessor :name
14
+ fattr(:working_dir) { klass.get_dir(name) }
15
+
16
+ def setup_initial!
17
+ tracker.delete_repo!
18
+ with_chdir(tracker.working_dir) do
19
+ git(:reset, :base)
20
+ end
21
+ end
22
+
23
+ fattr(:tracker) do
24
+ TransparentGit::RemoteTracker.new(:repo_holding_dir => "c:/code/repo_holding", :working_dir => working_dir, :name => name)
25
+ end
26
+
27
+ fattr(:tracking_repo) do
28
+ puts "getting for repo dir #{tracker.repo_dir}"
29
+ res = Grit::Repo.new(tracker.repo_dir, :is_bare => true)
30
+ puts "got repo"
31
+ res
32
+ end
33
+
34
+ def append(f,line="stuff")
35
+ f = "#{working_dir}/#{f}"
36
+ File.append(f,"\n#{line}\n")
37
+ end
38
+
39
+ class << self
40
+ def root_dir
41
+ "c:/code/transparent_git/spec/test_repos"
42
+ end
43
+ def get_dir(name)
44
+ "#{root_dir}/#{name}"
45
+ end
46
+ def get(name)
47
+ new(:name => name)
48
+ end
49
+ def method_missing(sym,*args,&b)
50
+ new.send(sym,*args,&b)
51
+ end
52
+ end
53
+ end
54
+
55
+ TransparentGit.load_repo!
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{transparent_git}
8
- s.version = "0.0.1"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mike Harris"]
12
- s.date = %q{2012-05-23}
12
+ s.date = %q{2012-09-04}
13
13
  s.default_executable = %q{remote_track}
14
14
  s.description = %q{transparent_git}
15
15
  s.email = %q{mharris@indians.com}
@@ -20,6 +20,7 @@ Gem::Specification.new do |s|
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
+ ".lre",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
25
26
  "LICENSE.txt",
@@ -27,12 +28,21 @@ Gem::Specification.new do |s|
27
28
  "Rakefile",
28
29
  "VERSION",
29
30
  "bin/remote_track",
31
+ "lib/run_specs.rb",
30
32
  "lib/transparent_git.rb",
33
+ "lib/transparent_git/ext.rb",
34
+ "lib/transparent_git/remote_tracker.rb",
35
+ "lib/transparent_git/remote_trackers.rb",
36
+ "lib/transparent_git/repo.rb",
37
+ "spec/remote_tracker_spec.rb",
38
+ "spec/spec_helper.rb",
31
39
  "test/helper.rb",
32
40
  "test/sample.txt",
33
41
  "test/sample.yaml",
34
42
  "test/test_transparent_git.rb",
35
43
  "transparent_git.gemspec",
44
+ "vol/repo_load_test.rb",
45
+ "vol/spec_setup.rb",
36
46
  "vol/stuff.rb"
37
47
  ]
38
48
  s.homepage = %q{http://github.com/mharris717/transparent_git}
@@ -41,6 +51,8 @@ Gem::Specification.new do |s|
41
51
  s.rubygems_version = %q{1.5.2}
42
52
  s.summary = %q{transparent_git}
43
53
  s.test_files = [
54
+ "spec/remote_tracker_spec.rb",
55
+ "spec/spec_helper.rb",
44
56
  "test/helper.rb",
45
57
  "test/test_transparent_git.rb"
46
58
  ]
@@ -51,22 +63,37 @@ Gem::Specification.new do |s|
51
63
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
52
64
  s.add_runtime_dependency(%q<mharris_ext>, [">= 0"])
53
65
  s.add_runtime_dependency(%q<fattr>, [">= 0"])
66
+ s.add_runtime_dependency(%q<andand>, [">= 0"])
54
67
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
55
68
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
56
69
  s.add_development_dependency(%q<rcov>, [">= 0"])
70
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
71
+ s.add_development_dependency(%q<grit>, [">= 0"])
72
+ s.add_development_dependency(%q<lre>, [">= 0"])
73
+ s.add_development_dependency(%q<repl_index>, [">= 0"])
57
74
  else
58
75
  s.add_dependency(%q<mharris_ext>, [">= 0"])
59
76
  s.add_dependency(%q<fattr>, [">= 0"])
77
+ s.add_dependency(%q<andand>, [">= 0"])
60
78
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
61
79
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
62
80
  s.add_dependency(%q<rcov>, [">= 0"])
81
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
82
+ s.add_dependency(%q<grit>, [">= 0"])
83
+ s.add_dependency(%q<lre>, [">= 0"])
84
+ s.add_dependency(%q<repl_index>, [">= 0"])
63
85
  end
64
86
  else
65
87
  s.add_dependency(%q<mharris_ext>, [">= 0"])
66
88
  s.add_dependency(%q<fattr>, [">= 0"])
89
+ s.add_dependency(%q<andand>, [">= 0"])
67
90
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
68
91
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
69
92
  s.add_dependency(%q<rcov>, [">= 0"])
93
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
94
+ s.add_dependency(%q<grit>, [">= 0"])
95
+ s.add_dependency(%q<lre>, [">= 0"])
96
+ s.add_dependency(%q<repl_index>, [">= 0"])
70
97
  end
71
98
  end
72
99
 
@@ -0,0 +1 @@
1
+ require 'andand'
@@ -0,0 +1,17 @@
1
+ class TestRepos
2
+ def root_dir
3
+ "c:/code/transparent_git/spec/test_repos"
4
+ end
5
+ def get_dir(name)
6
+ "#{root_dir}/#{name}"
7
+ end
8
+
9
+ class << self
10
+ def method_missing(sym,*args,&b)
11
+ new.send(sym,*args,&b)
12
+ end
13
+ end
14
+ end
15
+
16
+ tracker = TransparentGit::RemoteTracker.new(:repo_holding_dir => "c:/code/repo_holding", :working_dir => TestRepos.get_dir(:docs), :name => "docs")
17
+ tracker.commit_current_state!
@@ -1,3 +1,4 @@
1
+ load File.dirname(__FILE__) + "/../lib/transparent_git.rb"
1
2
 
2
3
  def test_junk
3
4
  ENV['GIT_DIR'] = "#{dir}/.gitx"
@@ -14,9 +15,25 @@ def test_junk
14
15
  end
15
16
  end
16
17
 
17
- rt = RemoteTracker.new(:repo_holding_dir => "c:/code/repo_holding", :working_dir => "c:/code/transparent_git")
18
- rt = RemoteTrackers.create_from_yaml("test/sample.yaml")
19
- rt.run_once!
18
+ begin
19
+
20
+ #FileUtils.rm_r "c:/code/repo_holding/tg_test" if FileTest.exist? "c:/code/repo_holding/tg_test"
21
+
22
+ #rt = RemoteTracker.new(:repo_holding_dir => "c:/code/repo_holding", :working_dir => "c:/code/transparent_git", :name => "tg_test")
23
+ #rt.commit_current_state!
24
+
25
+ rt = RemoteTracker.new(:repo_holding_dir => "c:/code/repo_holding", :working_dir => "c:/code/transparent_git", :name => "tg_test")
26
+ rt.commit_current_state!
27
+
28
+ rescue => exp
29
+ puts "ERROR"
30
+ puts exp.message #+ "\n" + exp.backtrace.join("\n")
31
+ puts "ERROR"
32
+ end
33
+
34
+ #git "checkout -b transparent_git2"
35
+ #rt = RemoteTrackers.create_from_yaml("test/sample.yaml")
36
+ #rt.commit_current_state!
20
37
  #loop do
21
38
  # rt.commit_current_state!
22
39
  # sleep(4)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transparent_git
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-23 00:00:00.000000000 -04:00
12
+ date: 2012-09-04 00:00:00.000000000 -04:00
13
13
  default_executable: remote_track
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mharris_ext
17
- requirement: &16018296 !ruby/object:Gem::Requirement
17
+ requirement: &16626684 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *16018296
25
+ version_requirements: *16626684
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: fattr
28
- requirement: &16017912 !ruby/object:Gem::Requirement
28
+ requirement: &16626384 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,10 +33,21 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *16017912
36
+ version_requirements: *16626384
37
+ - !ruby/object:Gem::Dependency
38
+ name: andand
39
+ requirement: &16626084 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: '0'
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *16626084
37
48
  - !ruby/object:Gem::Dependency
38
49
  name: bundler
39
- requirement: &16017552 !ruby/object:Gem::Requirement
50
+ requirement: &16625760 !ruby/object:Gem::Requirement
40
51
  none: false
41
52
  requirements:
42
53
  - - ~>
@@ -44,10 +55,10 @@ dependencies:
44
55
  version: 1.0.0
45
56
  type: :development
46
57
  prerelease: false
47
- version_requirements: *16017552
58
+ version_requirements: *16625760
48
59
  - !ruby/object:Gem::Dependency
49
60
  name: jeweler
50
- requirement: &16009848 !ruby/object:Gem::Requirement
61
+ requirement: &16625460 !ruby/object:Gem::Requirement
51
62
  none: false
52
63
  requirements:
53
64
  - - ~>
@@ -55,10 +66,54 @@ dependencies:
55
66
  version: 1.5.2
56
67
  type: :development
57
68
  prerelease: false
58
- version_requirements: *16009848
69
+ version_requirements: *16625460
59
70
  - !ruby/object:Gem::Dependency
60
71
  name: rcov
61
- requirement: &16009524 !ruby/object:Gem::Requirement
72
+ requirement: &16625136 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *16625136
81
+ - !ruby/object:Gem::Dependency
82
+ name: rspec
83
+ requirement: &16624800 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: 2.3.0
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *16624800
92
+ - !ruby/object:Gem::Dependency
93
+ name: grit
94
+ requirement: &16624428 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ! '>='
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ type: :development
101
+ prerelease: false
102
+ version_requirements: *16624428
103
+ - !ruby/object:Gem::Dependency
104
+ name: lre
105
+ requirement: &16623852 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ type: :development
112
+ prerelease: false
113
+ version_requirements: *16623852
114
+ - !ruby/object:Gem::Dependency
115
+ name: repl_index
116
+ requirement: &16623480 !ruby/object:Gem::Requirement
62
117
  none: false
63
118
  requirements:
64
119
  - - ! '>='
@@ -66,7 +121,7 @@ dependencies:
66
121
  version: '0'
67
122
  type: :development
68
123
  prerelease: false
69
- version_requirements: *16009524
124
+ version_requirements: *16623480
70
125
  description: transparent_git
71
126
  email: mharris@indians.com
72
127
  executables:
@@ -77,6 +132,7 @@ extra_rdoc_files:
77
132
  - README.rdoc
78
133
  files:
79
134
  - .document
135
+ - .lre
80
136
  - Gemfile
81
137
  - Gemfile.lock
82
138
  - LICENSE.txt
@@ -84,12 +140,21 @@ files:
84
140
  - Rakefile
85
141
  - VERSION
86
142
  - bin/remote_track
143
+ - lib/run_specs.rb
87
144
  - lib/transparent_git.rb
145
+ - lib/transparent_git/ext.rb
146
+ - lib/transparent_git/remote_tracker.rb
147
+ - lib/transparent_git/remote_trackers.rb
148
+ - lib/transparent_git/repo.rb
149
+ - spec/remote_tracker_spec.rb
150
+ - spec/spec_helper.rb
88
151
  - test/helper.rb
89
152
  - test/sample.txt
90
153
  - test/sample.yaml
91
154
  - test/test_transparent_git.rb
92
155
  - transparent_git.gemspec
156
+ - vol/repo_load_test.rb
157
+ - vol/spec_setup.rb
93
158
  - vol/stuff.rb
94
159
  has_rdoc: true
95
160
  homepage: http://github.com/mharris717/transparent_git
@@ -107,7 +172,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
172
  version: '0'
108
173
  segments:
109
174
  - 0
110
- hash: -989894223
175
+ hash: -584960529
111
176
  required_rubygems_version: !ruby/object:Gem::Requirement
112
177
  none: false
113
178
  requirements:
@@ -121,5 +186,7 @@ signing_key:
121
186
  specification_version: 3
122
187
  summary: transparent_git
123
188
  test_files:
189
+ - spec/remote_tracker_spec.rb
190
+ - spec/spec_helper.rb
124
191
  - test/helper.rb
125
192
  - test/test_transparent_git.rb