davetron5000-grit 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/grit/git.rb +3 -2
  2. data/test/test_git.rb +5 -5
  3. metadata +2 -2
data/lib/grit/git.rb CHANGED
@@ -29,10 +29,11 @@ module Grit
29
29
  Grit::Git.git_timeout = old_timeout
30
30
  end
31
31
 
32
- attr_accessor :git_dir, :bytes_read
32
+ attr_accessor :git_dir, :bytes_read, :work_tree
33
33
 
34
34
  def initialize(git_dir)
35
35
  self.git_dir = git_dir
36
+ self.work_tree = git_dir.gsub(/\/\.git$/,'')
36
37
  self.bytes_read = 0
37
38
  end
38
39
 
@@ -62,7 +63,7 @@ module Grit
62
63
  opt_args = transform_options(options)
63
64
  ext_args = args.reject { |a| a.empty? }.map { |a| (a == '--' || a[0].chr == '|') ? a : "'#{e(a)}'" }
64
65
 
65
- call = "#{prefix}#{Git.git_binary} --git-dir='#{self.git_dir}' #{cmd.to_s.gsub(/_/, '-')} #{(opt_args + ext_args).join(' ')}#{e(postfix)}"
66
+ call = "#{prefix}#{Git.git_binary} --work-tree='#{self.work_tree}' --git-dir='#{self.git_dir}' #{cmd.to_s.gsub(/_/, '-')} #{(opt_args + ext_args).join(' ')}#{e(postfix)}"
66
67
  Grit.log(call) if Grit.debug
67
68
  response, err = timeout ? sh(call) : wild_sh(call)
68
69
  Grit.log(response) if Grit.debug
data/test/test_git.rb CHANGED
@@ -63,22 +63,22 @@ class TestGit < Test::Unit::TestCase
63
63
  end
64
64
 
65
65
  def test_it_really_shell_escapes_arguments_to_the_git_shell
66
- @git.expects(:sh).with("#{Git.git_binary} --git-dir='#{@git.git_dir}' foo --bar='bazz\\'er'")
66
+ @git.expects(:sh).with("#{Git.git_binary} --work-tree='#{@git.work_tree}' --git-dir='#{@git.git_dir}' foo --bar='bazz\\'er'")
67
67
  @git.foo(:bar => "bazz'er")
68
- @git.expects(:sh).with("#{Git.git_binary} --git-dir='#{@git.git_dir}' bar -x 'quu\\'x'")
68
+ @git.expects(:sh).with("#{Git.git_binary} --work-tree='#{@git.work_tree}' --git-dir='#{@git.git_dir}' bar -x 'quu\\'x'")
69
69
  @git.bar(:x => "quu'x")
70
70
  end
71
71
 
72
72
  def test_it_shell_escapes_the_standalone_argument
73
- @git.expects(:sh).with("#{Git.git_binary} --git-dir='#{@git.git_dir}' foo 'bar\\'s'")
73
+ @git.expects(:sh).with("#{Git.git_binary} --work-tree='#{@git.work_tree}' --git-dir='#{@git.git_dir}' foo 'bar\\'s'")
74
74
  @git.foo({}, "bar's")
75
75
 
76
- @git.expects(:sh).with("#{Git.git_binary} --git-dir='#{@git.git_dir}' foo 'bar' '\\; echo \\'noooo\\''")
76
+ @git.expects(:sh).with("#{Git.git_binary} --work-tree='#{@git.work_tree}' --git-dir='#{@git.git_dir}' foo 'bar' '\\; echo \\'noooo\\''")
77
77
  @git.foo({}, "bar", "; echo 'noooo'")
78
78
  end
79
79
 
80
80
  def test_piping_should_work_on_1_9
81
- @git.expects(:sh).with("#{Git.git_binary} --git-dir='#{@git.git_dir}' archive 'master' | gzip")
81
+ @git.expects(:sh).with("#{Git.git_binary} --work-tree='#{@git.work_tree}' --git-dir='#{@git.git_dir}' archive 'master' | gzip")
82
82
  @git.archive({}, "master", "| gzip")
83
83
  end
84
84
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: davetron5000-grit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Preston-Werner
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2009-06-01 00:00:00 -07:00
13
+ date: 2009-06-20 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency