rpatch 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,15 +10,15 @@ test_description='patch file test'
10
10
  ############################################################
11
11
 
12
12
  cat > diff <<EOF
13
- diff -u a/foo b/foo
14
- --- a/foo 2013-11-04 16:01:56.000000000 +0800
13
+ diff -u /dev/null b/foo
14
+ --- /dev/null 2013-11-04 16:01:56.000000000 +0800
15
15
  +++ b/foo 2013-11-04 16:01:59.000000000 +0800
16
16
  @@ add two lines
17
17
  +baz
18
18
  +foo
19
- diff -u a/bar b/bar
20
- --- a/bar 2013-11-04 16:01:56.000000000 +0800
21
- +++ b/bar 2013-11-04 16:01:59.000000000 +0800
19
+ diff -u /dev/null b/subdir/baz/bar
20
+ --- /dev/null 2013-11-04 16:01:56.000000000 +0800
21
+ +++ b/subdir/baz/bar 2013-11-04 16:01:59.000000000 +0800
22
22
  @@ add two lines
23
23
  +baz
24
24
  +bar
@@ -28,14 +28,14 @@ cat > expect <<EOF
28
28
  EOF
29
29
 
30
30
  cat > expect_errlog <<EOF
31
- Error: Multiple patch entries (2) have been found in patch <IO>
32
- Error: Multiple patch entries (2) have been found in patch <IO>
31
+ ERROR: Multiple patch entries (2) have been found in patch <IO>
32
+ ERROR: Multiple patch entries (2) have been found in patch <IO>
33
33
  EOF
34
34
 
35
35
  test_expect_success 'cannot patch single file with multi patch entries' '
36
36
  touch ! -f actual &&
37
37
  touch actual &&
38
- test_must_fail rpatch actual < diff 2>actual_errlog &&
38
+ test_must_fail rpatch -vv actual < diff 2>actual_errlog &&
39
39
  test_cmp expect actual &&
40
40
  test_cmp expect_errlog actual_errlog
41
41
  '
@@ -44,7 +44,7 @@ test_expect_success 'cannot patch single file with multi patch entries' '
44
44
 
45
45
  cat > expect_errlog <<EOF
46
46
  Patched "output/foo".
47
- Patched "output/bar".
47
+ Patched "output/subdir/baz/bar".
48
48
  EOF
49
49
 
50
50
  cat > expect_foo <<EOF
@@ -57,13 +57,42 @@ baz
57
57
  bar
58
58
  EOF
59
59
 
60
- test_expect_success 'Patch on directory: create new file automatically' '
60
+ test_expect_success 'Patch to create newfiles' '
61
61
  mkdir output &&
62
- rpatch output < diff 2>actual_errlog &&
62
+ test ! -d output/subdir/baz &&
63
+ rpatch -vv output < diff 2>actual_errlog &&
63
64
  test -f output/foo &&
64
- test -f output/bar &&
65
+ test -f output/subdir/baz/bar &&
65
66
  test_cmp expect_foo output/foo &&
66
- test_cmp expect_bar output/bar &&
67
+ test_cmp expect_bar output/subdir/baz/bar &&
68
+ test_cmp expect_errlog actual_errlog
69
+ '
70
+
71
+ ############################################################
72
+
73
+ cat > expect_errlog <<EOF
74
+ INFO: output/foo: Hunk 1 (add two lines) is already patched.
75
+ output/foo: nothing changed
76
+ INFO: output/subdir/baz/bar: Hunk 1 (add two lines) is already patched.
77
+ output/subdir/baz/bar: nothing changed
78
+ EOF
79
+
80
+ cat > expect_foo <<EOF
81
+ baz
82
+ foo
83
+ EOF
84
+
85
+ cat > expect_bar <<EOF
86
+ baz
87
+ bar
88
+ EOF
89
+
90
+ test_expect_success 'Patch to create newfiles (2): already patched warning' '
91
+ test_cmp expect_foo output/foo &&
92
+ test_cmp expect_bar output/subdir/baz/bar &&
93
+ rpatch -vv output < diff 2>actual_errlog &&
94
+ test_cmp expect_foo output/foo &&
95
+ test_cmp expect_bar output/subdir/baz/bar &&
67
96
  test_cmp expect_errlog actual_errlog
68
97
  '
69
98
 
@@ -79,9 +108,9 @@ diff -u a/foo b/foo
79
108
  @@ tail
80
109
  foo
81
110
  +tail of foo ...
82
- diff -u a/bar b/bar
83
- --- a/bar 2013-11-04 16:01:56.000000000 +0800
84
- +++ b/bar 2013-11-04 16:01:59.000000000 +0800
111
+ diff -u a/subdir/baz/bar b/subdir/baz/bar
112
+ --- a/subdir/baz/bar 2013-11-04 16:01:56.000000000 +0800
113
+ +++ b/subdir/baz/bar 2013-11-04 16:01:59.000000000 +0800
85
114
  @@ heading
86
115
  +heading of bar...
87
116
  -baz
@@ -92,7 +121,7 @@ EOF
92
121
 
93
122
  cat > expect_errlog <<EOF
94
123
  Patched "output/foo".
95
- Patched "output/bar".
124
+ Patched "output/subdir/baz/bar".
96
125
  EOF
97
126
 
98
127
  cat > expect_foo <<EOF
@@ -107,12 +136,12 @@ bar
107
136
  tail of bar ...
108
137
  EOF
109
138
 
110
- test_expect_success 'Patch on directory (2): patch exist files' '
111
- rpatch output < diff 2>actual_errlog &&
139
+ test_expect_success 'Patch exist files' '
140
+ rpatch -vv output < diff 2>actual_errlog &&
112
141
  test -f output/foo &&
113
- test -f output/bar &&
142
+ test -f output/subdir/baz/bar &&
114
143
  test_cmp expect_foo output/foo &&
115
- test_cmp expect_bar output/bar &&
144
+ test_cmp expect_bar output/subdir/baz/bar &&
116
145
  test_cmp expect_errlog actual_errlog
117
146
  '
118
147
 
@@ -126,9 +155,9 @@ diff -u a/foo b/foo
126
155
  heading of foo...
127
156
  foobar
128
157
  -tail of foo ...
129
- diff -u a/bar b/bar
130
- --- a/bar 2013-11-04 16:01:56.000000000 +0800
131
- +++ b/bar 2013-11-04 16:01:59.000000000 +0800
158
+ diff -u a/subdir/baz/bar b/subdir/baz/bar
159
+ --- a/subdir/baz/bar 2013-11-04 16:01:56.000000000 +0800
160
+ +++ b/subdir/baz/bar 2013-11-04 16:01:59.000000000 +0800
132
161
  @@ remove tail
133
162
  heading of bar...
134
163
  bar
@@ -138,7 +167,7 @@ EOF
138
167
  cat > expect_errlog <<EOF
139
168
  ERROR: output/foo: Hunk 1 (can not match) FAILED to apply. Match failed.
140
169
  output/foo: nothing changed
141
- Patched "output/bar".
170
+ Patched "output/subdir/baz/bar".
142
171
  EOF
143
172
 
144
173
  cat > expect_foo <<EOF
@@ -152,12 +181,12 @@ heading of bar...
152
181
  bar
153
182
  EOF
154
183
 
155
- test_expect_success 'Patch on directory (3): one fail, another success' '
156
- test_must_fail rpatch output < diff 2>actual_errlog &&
184
+ test_expect_success 'Patch one file fail, another success' '
185
+ test_must_fail rpatch -vv output < diff 2>actual_errlog &&
157
186
  test -f output/foo &&
158
- test -f output/bar &&
187
+ test -f output/subdir/baz/bar &&
159
188
  test_cmp expect_foo output/foo &&
160
- test_cmp expect_bar output/bar &&
189
+ test_cmp expect_bar output/subdir/baz/bar &&
161
190
  test_cmp expect_errlog actual_errlog
162
191
  '
163
192
 
@@ -167,21 +196,21 @@ cat > diff <<EOF
167
196
  diff -u a/foo b/foo
168
197
  --- a/foo 2013-11-04 16:01:56.000000000 +0800
169
198
  +++ b/foo 2013-11-04 16:01:59.000000000 +0800
170
- @@ can not match
171
- RE:-heading
172
- RE:-foo
173
- RE:-tail.*
174
- diff -u a/bar b/bar
175
- --- a/bar 2013-11-04 16:01:56.000000000 +0800
176
- +++ b/bar 2013-11-04 16:01:59.000000000 +0800
199
+ @@ remove all
200
+ /-heading
201
+ /-foo
202
+ /-tail.*
203
+ diff -u a/subdir/baz/bar b/subdir/baz/bar
204
+ --- a/subdir/baz/bar 2013-11-04 16:01:56.000000000 +0800
205
+ +++ b/subdir/baz/bar 2013-11-04 16:01:59.000000000 +0800
177
206
  @@ add tail
178
- RE: ^[bB][aA][rR]$
207
+ / ^[bB][aA][rR]$
179
208
  +tail of bar...
180
209
  EOF
181
210
 
182
211
  cat > expect_errlog <<EOF
183
212
  Remove "output/foo".
184
- Patched "output/bar".
213
+ Patched "output/subdir/baz/bar".
185
214
  EOF
186
215
 
187
216
  cat > expect_bar <<EOF
@@ -190,11 +219,29 @@ bar
190
219
  tail of bar...
191
220
  EOF
192
221
 
193
- test_expect_success 'Patch on directory (4): remove file' '
194
- rpatch -p1 output < diff 2>actual_errlog &&
222
+ test_expect_success 'Patch to remove file' '
223
+ rpatch -vv -p1 output < diff 2>actual_errlog &&
224
+ test ! -f output/foo &&
225
+ test -f output/subdir/baz/bar &&
226
+ test_cmp expect_bar output/subdir/baz/bar &&
227
+ test_cmp expect_errlog actual_errlog
228
+ '
229
+
230
+ ############################################################
231
+
232
+ cat > expect_errlog <<EOF
233
+ INFO: output/foo: Hunk 1 (remove all) is already patched.
234
+ output/foo: nothing changed
235
+ INFO: output/subdir/baz/bar: Hunk 1 (add tail) is already patched.
236
+ output/subdir/baz/bar: nothing changed
237
+ EOF
238
+
239
+ test_expect_success 'Patch to remove file (2)' '
240
+ test ! -f output/foo &&
241
+ rpatch -vv -p1 output < diff 2>actual_errlog &&
195
242
  test ! -f output/foo &&
196
- test -f output/bar &&
197
- test_cmp expect_bar output/bar &&
243
+ test -f output/subdir/baz/bar &&
244
+ test_cmp expect_bar output/subdir/baz/bar &&
198
245
  test_cmp expect_errlog actual_errlog
199
246
  '
200
247
 
metadata CHANGED
@@ -1,77 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rpatch
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - Jiang Xin
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-11-05 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
11
+
12
+ date: 2013-11-08 00:00:00 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
15
  name: bundler
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '1.3'
22
- type: :development
23
16
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ~>
28
- - !ruby/object:Gem::Version
29
- version: '1.3'
30
- - !ruby/object:Gem::Dependency
31
- name: rake
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - &id002
20
+ - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
38
23
  type: :development
24
+ version_requirements: *id001
25
+ - !ruby/object:Gem::Dependency
26
+ name: rake
39
27
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: rspec
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ~>
52
- - !ruby/object:Gem::Version
53
- version: '2.6'
28
+ requirement: &id003 !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - *id002
54
31
  type: :development
32
+ version_requirements: *id003
33
+ - !ruby/object:Gem::Dependency
34
+ name: rspec
55
35
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '2.6'
36
+ requirement: &id004 !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - *id002
39
+ type: :development
40
+ version_requirements: *id004
62
41
  description: A patch utility support regexp in patchfile.
63
- email:
42
+ email:
64
43
  - worldhello.net@gmail.com
65
- executables:
44
+ executables:
66
45
  - rpatch
67
46
  extensions: []
47
+
68
48
  extra_rdoc_files: []
69
- files:
49
+
50
+ files:
70
51
  - lib/rpatch/entry.rb
71
52
  - lib/rpatch/error.rb
72
53
  - lib/rpatch/hunk.rb
73
54
  - lib/rpatch/patch.rb
74
55
  - lib/rpatch/runner.rb
56
+ - lib/rpatch/utils.rb
75
57
  - lib/rpatch/version.rb
76
58
  - README.md
77
59
  - LICENSE.txt
@@ -79,54 +61,58 @@ files:
79
61
  - spec/patch_file_regexp_spec.rb
80
62
  - spec/patch_file_spec.rb
81
63
  - spec/patch_hunk_spec.rb
64
+ - spec/patch_hunk_with_location_spec.rb
65
+ - spec/patch_hunk_with_qmark_exp_spec.rb
66
+ - spec/patch_hunk_with_regex_spec.rb
82
67
  - spec/spec_helper.rb
83
68
  - t/Makefile
84
69
  - t/README
85
70
  - t/aggregate-results.sh
86
71
  - t/t0000-patch-file.sh
72
+ - t/t0010-patch-special-direction.sh
87
73
  - t/t0100-patch-directory.sh
88
74
  - t/test-lib-functions.sh
89
75
  - t/test-lib.sh
90
76
  - bin/rpatch
91
77
  homepage: http://github.com/jiangxin/rpatch
92
- licenses:
78
+ licenses:
93
79
  - MIT
80
+ metadata: {}
81
+
94
82
  post_install_message:
95
- rdoc_options:
83
+ rdoc_options:
96
84
  - --charset=UTF-8
97
- require_paths:
85
+ require_paths:
98
86
  - - lib
99
- required_ruby_version: !ruby/object:Gem::Requirement
100
- none: false
101
- requirements:
102
- - - ! '>='
103
- - !ruby/object:Gem::Version
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
104
91
  version: 1.8.7
105
- required_rubygems_version: !ruby/object:Gem::Requirement
106
- none: false
107
- requirements:
108
- - - ! '>='
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- segments:
112
- - 0
113
- hash: 2306715700148282844
92
+ required_rubygems_version: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - *id002
114
95
  requirements: []
96
+
115
97
  rubyforge_project:
116
- rubygems_version: 1.8.23
98
+ rubygems_version: 2.0.13
117
99
  signing_key:
118
- specification_version: 3
119
- summary: rpatch-0.0.1
120
- test_files:
100
+ specification_version: 4
101
+ summary: rpatch-0.0.2
102
+ test_files:
121
103
  - spec/patch_entry_spec.rb
122
104
  - spec/patch_file_regexp_spec.rb
123
105
  - spec/patch_file_spec.rb
124
106
  - spec/patch_hunk_spec.rb
107
+ - spec/patch_hunk_with_location_spec.rb
108
+ - spec/patch_hunk_with_qmark_exp_spec.rb
109
+ - spec/patch_hunk_with_regex_spec.rb
125
110
  - spec/spec_helper.rb
126
111
  - t/Makefile
127
112
  - t/README
128
113
  - t/aggregate-results.sh
129
114
  - t/t0000-patch-file.sh
115
+ - t/t0010-patch-special-direction.sh
130
116
  - t/t0100-patch-directory.sh
131
117
  - t/test-lib-functions.sh
132
118
  - t/test-lib.sh