transparent_git 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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