diff-lcs 1.1.3 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rspec +1 -0
- data/Code-of-Conduct.md +74 -0
- data/Contributing.md +119 -0
- data/History.md +400 -0
- data/{License.rdoc → License.md} +6 -5
- data/Manifest.txt +36 -4
- data/README.rdoc +35 -23
- data/Rakefile +106 -11
- data/bin/htmldiff +7 -4
- data/bin/ldiff +4 -1
- data/docs/COPYING.txt +21 -22
- data/docs/artistic.txt +127 -0
- data/lib/diff/lcs/array.rb +1 -15
- data/lib/diff/lcs/backports.rb +9 -0
- data/lib/diff/lcs/block.rb +4 -18
- data/lib/diff/lcs/callbacks.rb +233 -230
- data/lib/diff/lcs/change.rb +114 -109
- data/lib/diff/lcs/htmldiff.rb +17 -18
- data/lib/diff/lcs/hunk.rb +232 -116
- data/lib/diff/lcs/internals.rb +308 -0
- data/lib/diff/lcs/ldiff.rb +138 -177
- data/lib/diff/lcs/string.rb +1 -15
- data/lib/diff/lcs.rb +597 -963
- data/lib/diff-lcs.rb +1 -3
- data/spec/change_spec.rb +89 -0
- data/spec/diff_spec.rb +32 -16
- data/spec/fixtures/aX +1 -0
- data/spec/fixtures/bXaX +1 -0
- data/spec/fixtures/ds1.csv +50 -0
- data/spec/fixtures/ds2.csv +51 -0
- data/spec/fixtures/ldiff/output.diff +4 -0
- data/spec/fixtures/ldiff/output.diff-c +7 -0
- data/spec/fixtures/ldiff/output.diff-e +3 -0
- data/spec/fixtures/ldiff/output.diff-f +3 -0
- data/spec/fixtures/ldiff/output.diff-u +5 -0
- data/spec/fixtures/ldiff/output.diff.chef +4 -0
- data/spec/fixtures/ldiff/output.diff.chef-c +15 -0
- data/spec/fixtures/ldiff/output.diff.chef-e +3 -0
- data/spec/fixtures/ldiff/output.diff.chef-f +3 -0
- data/spec/fixtures/ldiff/output.diff.chef-u +9 -0
- data/spec/fixtures/ldiff/output.diff.chef2 +7 -0
- data/spec/fixtures/ldiff/output.diff.chef2-c +20 -0
- data/spec/fixtures/ldiff/output.diff.chef2-d +7 -0
- data/spec/fixtures/ldiff/output.diff.chef2-e +7 -0
- data/spec/fixtures/ldiff/output.diff.chef2-f +7 -0
- data/spec/fixtures/ldiff/output.diff.chef2-u +16 -0
- data/spec/fixtures/new-chef +4 -0
- data/spec/fixtures/new-chef2 +17 -0
- data/spec/fixtures/old-chef +4 -0
- data/spec/fixtures/old-chef2 +14 -0
- data/spec/hunk_spec.rb +83 -0
- data/spec/issues_spec.rb +154 -0
- data/spec/lcs_spec.rb +36 -16
- data/spec/ldiff_spec.rb +87 -0
- data/spec/patch_spec.rb +198 -172
- data/spec/sdiff_spec.rb +99 -89
- data/spec/spec_helper.rb +149 -59
- data/spec/traverse_balanced_spec.rb +191 -167
- data/spec/traverse_sequences_spec.rb +105 -51
- metadata +218 -99
- data/.gemtest +0 -0
- data/History.rdoc +0 -54
- data/diff-lcs.gemspec +0 -51
- data/docs/artistic.html +0 -289
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0df61a794bf8b132a80753391063526ffc15277d5f2dc592d319d37255d3700f
|
4
|
+
data.tar.gz: 9664b2f8338ff376bf7b4c9c1ae45e591e789b00b726a53523a2076f014aa5e0
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 37e529e14e23a3c121f3d5cc3f88fbed90d9efe44376bb579699126c2c1d2ea34649a079902dca42cb72f891daa27e347c99b2e0a32b58245117dd2567af2db0
|
7
|
+
data.tar.gz: 30576530bd6e1634635989729caeeaed68b9268423b659443b95abc66549491376f179b558b07dc8cc9bcf14f2768433d771c037514ec720a21a43dc9c197a5f
|
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--colour
|
data/Code-of-Conduct.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
2
|
+
|
3
|
+
## Our Pledge
|
4
|
+
|
5
|
+
In the interest of fostering an open and welcoming environment, we as
|
6
|
+
contributors and maintainers pledge to making participation in our project and
|
7
|
+
our community a harassment-free experience for everyone, regardless of age, body
|
8
|
+
size, disability, ethnicity, gender identity and expression, level of experience,
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity and
|
10
|
+
orientation.
|
11
|
+
|
12
|
+
## Our Standards
|
13
|
+
|
14
|
+
Examples of behavior that contributes to creating a positive environment
|
15
|
+
include:
|
16
|
+
|
17
|
+
* Using welcoming and inclusive language
|
18
|
+
* Being respectful of differing viewpoints and experiences
|
19
|
+
* Gracefully accepting constructive criticism
|
20
|
+
* Focusing on what is best for the community
|
21
|
+
* Showing empathy towards other community members
|
22
|
+
|
23
|
+
Examples of unacceptable behavior by participants include:
|
24
|
+
|
25
|
+
* The use of sexualized language or imagery and unwelcome sexual attention or
|
26
|
+
advances
|
27
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
28
|
+
* Public or private harassment
|
29
|
+
* Publishing others' private information, such as a physical or electronic
|
30
|
+
address, without explicit permission
|
31
|
+
* Other conduct which could reasonably be considered inappropriate in a
|
32
|
+
professional setting
|
33
|
+
|
34
|
+
## Our Responsibilities
|
35
|
+
|
36
|
+
Project maintainers are responsible for clarifying the standards of acceptable
|
37
|
+
behavior and are expected to take appropriate and fair corrective action in
|
38
|
+
response to any instances of unacceptable behavior.
|
39
|
+
|
40
|
+
Project maintainers have the right and responsibility to remove, edit, or
|
41
|
+
reject comments, commits, code, wiki edits, issues, and other contributions
|
42
|
+
that are not aligned to this Code of Conduct, or to ban temporarily or
|
43
|
+
permanently any contributor for other behaviors that they deem inappropriate,
|
44
|
+
threatening, offensive, or harmful.
|
45
|
+
|
46
|
+
## Scope
|
47
|
+
|
48
|
+
This Code of Conduct applies both within project spaces and in public spaces
|
49
|
+
when an individual is representing the project or its community. Examples of
|
50
|
+
representing a project or community include using an official project e-mail
|
51
|
+
address, posting via an official social media account, or acting as an appointed
|
52
|
+
representative at an online or offline event. Representation of a project may be
|
53
|
+
further defined and clarified by project maintainers.
|
54
|
+
|
55
|
+
## Enforcement
|
56
|
+
|
57
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
+
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
|
59
|
+
complaints will be reviewed and investigated and will result in a response that
|
60
|
+
is deemed necessary and appropriate to the circumstances. The project team is
|
61
|
+
obligated to maintain confidentiality with regard to the reporter of an incident.
|
62
|
+
Further details of specific enforcement policies may be posted separately.
|
63
|
+
|
64
|
+
Project maintainers who do not follow or enforce the Code of Conduct in good
|
65
|
+
faith may face temporary or permanent repercussions as determined by other
|
66
|
+
members of the project's leadership.
|
67
|
+
|
68
|
+
## Attribution
|
69
|
+
|
70
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
71
|
+
available at [http://contributor-covenant.org/version/1/4][version]
|
72
|
+
|
73
|
+
[homepage]: http://contributor-covenant.org
|
74
|
+
[version]: http://contributor-covenant.org/version/1/4/
|
data/Contributing.md
ADDED
@@ -0,0 +1,119 @@
|
|
1
|
+
## Contributing
|
2
|
+
|
3
|
+
I value any contribution to Diff::LCS you can provide: a bug report, a
|
4
|
+
feature request, or code contributions. Code contributions to Diff::LCS are
|
5
|
+
especially <del>welcome</del>encouraged. Because Diff::LCS is a complex
|
6
|
+
codebase, there are a few guidelines:
|
7
|
+
|
8
|
+
- Code changes _will not_ be accepted without tests. The test suite is
|
9
|
+
written with [RSpec][].
|
10
|
+
- Match my coding style.
|
11
|
+
- Use a thoughtfully-named topic branch that contains your change. Rebase
|
12
|
+
your commits into logical chunks as necessary.
|
13
|
+
- Use [quality commit messages][].
|
14
|
+
- Do not change the version number; when your patch is accepted and a release
|
15
|
+
is made, the version will be updated at that point.
|
16
|
+
- Submit a GitHub pull request with your changes.
|
17
|
+
- New or changed behaviours require appropriate documentation.
|
18
|
+
|
19
|
+
### Test Dependencies
|
20
|
+
|
21
|
+
Diff::LCS uses Ryan Davis’s [Hoe][] to manage the release process, and it
|
22
|
+
adds a number of rake tasks. You will mostly be interested in:
|
23
|
+
|
24
|
+
```sh
|
25
|
+
$ rake
|
26
|
+
```
|
27
|
+
|
28
|
+
which runs the tests the same way that:
|
29
|
+
|
30
|
+
```sh
|
31
|
+
$ rake spec
|
32
|
+
```
|
33
|
+
|
34
|
+
will do.
|
35
|
+
|
36
|
+
To assist with the installation of the development dependencies, I have
|
37
|
+
provided a Gemfile pointing to the (generated) `diff-lcs.gemspec` file. This
|
38
|
+
will permit you to do:
|
39
|
+
|
40
|
+
```sh
|
41
|
+
$ bundle install
|
42
|
+
```
|
43
|
+
|
44
|
+
to get the development dependencies. If you aleady have `hoe` installed, you
|
45
|
+
can accomplish the same thing with:
|
46
|
+
|
47
|
+
```sh
|
48
|
+
$ rake newb
|
49
|
+
```
|
50
|
+
|
51
|
+
This task will install any missing dependencies, run the tests/specs, and
|
52
|
+
generate the RDoc.
|
53
|
+
|
54
|
+
You can run tests with code coverage analysis by running:
|
55
|
+
|
56
|
+
```sh
|
57
|
+
$ rake spec:coverage
|
58
|
+
```
|
59
|
+
|
60
|
+
### Workflow
|
61
|
+
|
62
|
+
Here's the most direct way to get your work merged into the project:
|
63
|
+
|
64
|
+
- Fork the project.
|
65
|
+
- Clone down your fork (`git clone git://github.com/<username>/diff-lcs.git`).
|
66
|
+
- Create a topic branch to contain your change (`git checkout -b my_awesome_feature`).
|
67
|
+
- Hack away, add tests. Not necessarily in that order.
|
68
|
+
- Make sure everything still passes by running `rake`.
|
69
|
+
- If necessary, rebase your commits into logical chunks, without errors.
|
70
|
+
- Push the branch up (`git push origin my_awesome_feature`).
|
71
|
+
- Create a pull request against halostatue/diff-lcs and describe what your
|
72
|
+
change does and the why you think it should be merged.
|
73
|
+
|
74
|
+
### Contributors
|
75
|
+
|
76
|
+
- Austin Ziegler created Diff::LCS.
|
77
|
+
|
78
|
+
Thanks to everyone else who has contributed code or bug reports to Diff::LCS:
|
79
|
+
|
80
|
+
- @ginriki
|
81
|
+
- @joshbronson
|
82
|
+
- @kevinmook
|
83
|
+
- @mckaz
|
84
|
+
- Akinori Musha
|
85
|
+
- Artem Ignatyev
|
86
|
+
- Brandon Fish
|
87
|
+
- Camille Drapier
|
88
|
+
- Cédric Boutillier
|
89
|
+
- Gregg Kellogg
|
90
|
+
- Jagdeep Singh
|
91
|
+
- Jason Gladish
|
92
|
+
- Jon Rowe
|
93
|
+
- Josef Strzibny
|
94
|
+
- Josep (@apuratepp)
|
95
|
+
- Josh Bronson
|
96
|
+
- Jun Aruga
|
97
|
+
- Kenichi Kamiya
|
98
|
+
- Kensuke Nagae
|
99
|
+
- Kevin Ansfield
|
100
|
+
- Koichi Ito
|
101
|
+
- Mark Friedgan
|
102
|
+
- Michael Granger
|
103
|
+
- Myron Marston
|
104
|
+
- Nicolas Leger
|
105
|
+
- Oleg Orlov
|
106
|
+
- Paul Kunysch
|
107
|
+
- Pete Higgins
|
108
|
+
- Peter Wagenet
|
109
|
+
- Philippe Lafoucrière
|
110
|
+
- Ryan Lovelett
|
111
|
+
- Scott Steele
|
112
|
+
- Simon Courtois
|
113
|
+
- Tien (@tiendo1011)
|
114
|
+
- Tomas Jura
|
115
|
+
- Vít Ondruch
|
116
|
+
|
117
|
+
[rspec]: http://rspec.info/documentation/
|
118
|
+
[quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
119
|
+
[hoe]: https://github.com/seattlerb/hoe
|
data/History.md
ADDED
@@ -0,0 +1,400 @@
|
|
1
|
+
# History
|
2
|
+
|
3
|
+
## 1.5.0 / 2021-12-23
|
4
|
+
|
5
|
+
- Updated the CI configuration and monkey-patch Hoe.
|
6
|
+
|
7
|
+
- Kenichi Kamiya fixed a test configuration deprecation in SimpleCov. [#69]
|
8
|
+
|
9
|
+
- Tien introduced several corrections and code improvements:
|
10
|
+
|
11
|
+
- Removed an off-by-one error when calculating an index value by embracing
|
12
|
+
Ruby iteration properly. This had a side-effect of fixing a long-standing
|
13
|
+
bug in `#traverse_sequences` where the traversal would not be transitive.
|
14
|
+
That is, `LCS(s2, s1)` should produce a sequence that is transitive with
|
15
|
+
`LCS(s1, s2)` on traversal, and applying the diff computed from those
|
16
|
+
results would result in equivalent changes that could be played forward or
|
17
|
+
backward as appropriate. [#71], [#75]
|
18
|
+
|
19
|
+
- The above fix resulted in a changed order of the longest common subsequence
|
20
|
+
when callbacks were applied. After analysis, it was determined that the
|
21
|
+
computed subsequence was _equivalent_ to the prior version, so the test was
|
22
|
+
updated. This also resulted in the clarification of documentation when
|
23
|
+
traversing the subsequences. [#79]
|
24
|
+
|
25
|
+
- An infinite loop case in the case where Diff::LCS would be included into an
|
26
|
+
enumerable class has been fixed. [#73]
|
27
|
+
|
28
|
+
- Clarified the purpose of a threshold test in calculation of LCS. [#72],
|
29
|
+
[#80]
|
30
|
+
|
31
|
+
- Removed autotest directory
|
32
|
+
|
33
|
+
## 1.4.4 / 2020-07-01
|
34
|
+
|
35
|
+
- Fixed an issue reported by Jun Aruga in the Diff::LCS::Ldiff binary text
|
36
|
+
detection. [#44]
|
37
|
+
|
38
|
+
- Fixed a theoretical issue reported by Jun Aruga in Diff::LCS::Hunk to raise
|
39
|
+
a more useful exception. [#43]
|
40
|
+
|
41
|
+
- Added documentation that should address custom object issues as reported in
|
42
|
+
[#35].
|
43
|
+
|
44
|
+
- Fixed more diff errors, in part reported in [#65].
|
45
|
+
|
46
|
+
- The use of `Numeric#abs` is incorrect in `Diff::LCS::Block#diff_size`. The
|
47
|
+
diff size _must_ be accurate for correct change placement.
|
48
|
+
|
49
|
+
- When selecting @max_diff_size in Diff::LCS::Hunk, choose it based on
|
50
|
+
`block.diff_size.abs`.
|
51
|
+
|
52
|
+
- Made a number of changes that will, unfortunately, increase allocations at
|
53
|
+
the cost of being safe with frozen strings.
|
54
|
+
|
55
|
+
- Add some knowledge that when `Diff::LCS::Hunk#diff` is called, that we are
|
56
|
+
processing the _last_ hunk, so some changes will be made to how the output
|
57
|
+
is generated.
|
58
|
+
|
59
|
+
- `old`, `ed`, and `reverse_ed` formats have no differences.
|
60
|
+
|
61
|
+
- `unified` format will report `` given the
|
62
|
+
correct conditions, at most once. Unified range reporting also differs for
|
63
|
+
the last hunk such that the `length` of the range is reduced by one.
|
64
|
+
|
65
|
+
- `context` format will report `\No newline at end of file` given the
|
66
|
+
correct conditions, up to once per "file". Context range reporting also
|
67
|
+
differs for the last hunk such that the `end` part of the range is reduced
|
68
|
+
by one to a minimum of one.
|
69
|
+
|
70
|
+
- Added a bunch more tests for the cases above, and fixed `hunk_spec.rb` so that
|
71
|
+
the phrase being compared isn't nonsense French.
|
72
|
+
|
73
|
+
- Updated formatting.
|
74
|
+
|
75
|
+
- Added a Rake task to assist with manual testing on Ruby 1.8.
|
76
|
+
|
77
|
+
## 1.4.3 / 2020-06-29
|
78
|
+
|
79
|
+
- Fixed several issues with the 1.4 on Rubies older than 2.0. Some of this was
|
80
|
+
providing useful shim functions to Hoe 3.x (which dropped these older Rubies
|
81
|
+
a while ago). Specifically:
|
82
|
+
|
83
|
+
- Removed Array#lazy from a method in Diff::LCS::Hunk.
|
84
|
+
|
85
|
+
- Changed some unit tests to use old-style Symbol-keyed hashes.
|
86
|
+
|
87
|
+
- Changed some unit test helper functions to no longer use keyword parameters,
|
88
|
+
but only a trailing options hash.
|
89
|
+
|
90
|
+
- Made the use of `psych` dependent on `RUBY_VERSION >= 1.9`.
|
91
|
+
|
92
|
+
Resolves [#63].
|
93
|
+
|
94
|
+
## 1.4.2 / 2020-06-23
|
95
|
+
|
96
|
+
- Camille Drapier fixed a small issue with RuboCop configuration. [#59]
|
97
|
+
|
98
|
+
- Applied another fix (and unit test) to fix an issue for the Chef team.
|
99
|
+
[#60], [#61]
|
100
|
+
|
101
|
+
## 1.4.1 / 2020-06-23
|
102
|
+
|
103
|
+
- Fix an issue where diff sizes could be negative, and they should be. [#57],
|
104
|
+
[#58]
|
105
|
+
|
106
|
+
## 1.4 / 2020-06-23
|
107
|
+
|
108
|
+
- Ruby versions lower than 2.4 are soft-deprecated and will not be run as part
|
109
|
+
of the CI process any longer.
|
110
|
+
|
111
|
+
- Akinora MUSHA (knu) added the ability for Diff::LCS::Change objects to be
|
112
|
+
implicitly treated arrays. Originally provided as pull request [#47], but it
|
113
|
+
introduced a number of test failures as documented in [#48], and remediation
|
114
|
+
of Diff::LCS itself was introduced in [#49].
|
115
|
+
|
116
|
+
- Resolved [#5] with some tests comparing output from `system` calls to
|
117
|
+
`bin/ldiff` with some pre-generated output. Resolved [#6] with these tests.
|
118
|
+
|
119
|
+
- Resolved a previously undetected `bin/ldiff` issue with `--context` output not
|
120
|
+
matching `diff --context` output.
|
121
|
+
|
122
|
+
- Resolved an issue with later versions of Ruby not working with an `OptParse`
|
123
|
+
specification of `Numeric`; this has been changed to `Integer`.
|
124
|
+
|
125
|
+
- Brandon Fish added truffleruby in [#52].
|
126
|
+
|
127
|
+
- Fixed two missing classes as reported in [#53].
|
128
|
+
|
129
|
+
## 1.3 / 2017-01-18
|
130
|
+
|
131
|
+
- Bugs fixed:
|
132
|
+
|
133
|
+
- Fixed an error for bin/ldiff --version. Fixes issue [#21].
|
134
|
+
|
135
|
+
- Force Diff::LCS::Change and Diff::LCS::ContextChange to only perform
|
136
|
+
equality comparisons against themselves. Provided by Kevin Mook in pull
|
137
|
+
request [#29].
|
138
|
+
|
139
|
+
- Fix tab expansion in htmldiff, provided by Mark Friedgan in pull request
|
140
|
+
[#25].
|
141
|
+
|
142
|
+
- Silence Ruby 2.4 Fixnum deprecation warnings. Fixes issue [#38] and pull
|
143
|
+
request [#36].
|
144
|
+
|
145
|
+
- Ensure that test dependencies are loaded properly. Fixes issue [#33] and
|
146
|
+
pull request [#34].
|
147
|
+
|
148
|
+
- Fix issue [#1] with incorrect intuition of patch direction. Tentative fix,
|
149
|
+
but the previous failure cases pass now.
|
150
|
+
|
151
|
+
- Tooling changes:
|
152
|
+
|
153
|
+
- Added SimpleCov and Coveralls support.
|
154
|
+
|
155
|
+
- Change the homepage (temporarily) to the GitHub repo.
|
156
|
+
|
157
|
+
- Updated testing and gem infrastructure.
|
158
|
+
|
159
|
+
- Modernized the specs.
|
160
|
+
|
161
|
+
- Cleaned up documentation.
|
162
|
+
|
163
|
+
- Added a Code of Conduct.
|
164
|
+
|
165
|
+
## 1.2.5 / 2013-11-08
|
166
|
+
|
167
|
+
- Bugs fixed:
|
168
|
+
|
169
|
+
- Comparing arrays flattened them too far, especially with Diff::LCS.sdiff.
|
170
|
+
Fixed by Josh Bronson in pull request [#23].
|
171
|
+
|
172
|
+
## 1.2.4 / 2013-04-20
|
173
|
+
|
174
|
+
- Bugs fixed:
|
175
|
+
|
176
|
+
- A bug was introduced after 1.1.3 when pruning common sequences at the start
|
177
|
+
of comparison. Paul Kunysch (@pck) fixed this in pull request [#18]. Thanks!
|
178
|
+
|
179
|
+
- The Rubinius (1.9 mode) bug in [rubinius/rubinius#2268] has been fixed by
|
180
|
+
the Rubinius team two days after it was filed. Thanks for fixing this so
|
181
|
+
quickly!
|
182
|
+
|
183
|
+
- Switching to Raggi's hoe-gemspec2 for gemspec generation.
|
184
|
+
|
185
|
+
## 1.2.3 / 2013-04-11
|
186
|
+
|
187
|
+
- Bugs Fixed:
|
188
|
+
|
189
|
+
- The new encoding detection for diff output generation (added in 1.2.2)
|
190
|
+
introduced a bug if the left side of the comparison was the empty set.
|
191
|
+
Originally found in [rspec/rspec-expectations#238] and
|
192
|
+
[rspec/rspec-expectations#239]. Jon Rowe developed a reasonable heuristic
|
193
|
+
(left side, right side, empty string literal) to avoid this bug.
|
194
|
+
|
195
|
+
- There is a known issue with Rubinius in 1.9 mode reported in
|
196
|
+
[rubinius/rubinius#2268] and demonstrated in the Travis CI builds. For all
|
197
|
+
other tested platforms, diff-lcs is considered stable. As soon as a suitably
|
198
|
+
small test-case can be created for the Rubinius team to examine, this will
|
199
|
+
be added to the Rubinius issue around this.
|
200
|
+
|
201
|
+
## 1.2.2 / 2013-03-30
|
202
|
+
|
203
|
+
- Bugs Fixed:
|
204
|
+
|
205
|
+
- Diff::LCS::Hunk could not properly generate a difference for comparison sets
|
206
|
+
that are not US-ASCII-compatible because of the use of literal regular
|
207
|
+
expressions and strings. Jon Rowe found this in
|
208
|
+
[rspec/rspec-expectations#219] and provided a first pass implementation in
|
209
|
+
pull request [#15]. I've reworked it because of test failures in Rubinius
|
210
|
+
when running in Ruby 1.9 mode. This coerces the added values to the encoding
|
211
|
+
of the old dataset (as determined by the first piece of the old dataset).
|
212
|
+
|
213
|
+
- Adding Travis CI testing for Ruby 2.0.
|
214
|
+
|
215
|
+
## 1.2.1 / 2013-02-09
|
216
|
+
|
217
|
+
- Bugs Fixed:
|
218
|
+
|
219
|
+
- As seen in [rspec/rspec-expectations#200], the release of Diff::LCS 1.2
|
220
|
+
introduced an unnecessary public API change to Diff::LCS::Hunk (see the
|
221
|
+
change at [rspec/rspec-expectations@3d6fc82c] for details). The new method
|
222
|
+
name (and behaviour) is more correct, but I should not have renamed the
|
223
|
+
function or should have at least provided an alias. This release restores
|
224
|
+
Diff::LCS::Hunk#unshift as an alias to #merge. Note that the old #unshift
|
225
|
+
behaviour was incorrect and will not be restored.
|
226
|
+
|
227
|
+
## 1.2.0 / 2013-01-21
|
228
|
+
|
229
|
+
- Minor Enhancements:
|
230
|
+
|
231
|
+
- Added special case handling for Diff::LCS.patch so that it handles patches
|
232
|
+
that are empty or contain no changes.
|
233
|
+
|
234
|
+
- Added two new methods (#patch_me and #unpatch_me) to the includable module.
|
235
|
+
|
236
|
+
- Bugs Fixed:
|
237
|
+
|
238
|
+
- Fixed issue [#1] patch direction detection.
|
239
|
+
|
240
|
+
- Resolved issue [#2] by handling `string[string.size, 1]` properly (it
|
241
|
+
returns `""` not `nil`).
|
242
|
+
|
243
|
+
- Michael Granger (ged) fixed an implementation error in Diff::LCS::Change and
|
244
|
+
added specs in pull request [#8]. Thanks!
|
245
|
+
|
246
|
+
- Made the code auto-testable.
|
247
|
+
|
248
|
+
- Vít Ondruch (voxik) provided the latest version of the GPL2 license file in
|
249
|
+
pull request [#10]. Thanks!
|
250
|
+
|
251
|
+
- Fixed a documentation issue with the includable versions of #patch! and
|
252
|
+
#unpatch! where they implied that they would replace the original value.
|
253
|
+
Given that Diff::LCS.patch always returns a copy, the documentation was
|
254
|
+
incorrect and has been corrected. To provide the behaviour that was
|
255
|
+
originally documented, two new methods were added to provide this behaviour.
|
256
|
+
Found by scooter-dangle in issue [#12]. Thanks!
|
257
|
+
|
258
|
+
- Code Style Changes:
|
259
|
+
|
260
|
+
- Removed trailing spaces.
|
261
|
+
|
262
|
+
- Calling class methods using `.` instead of `::`.
|
263
|
+
|
264
|
+
- Vít Ondruch (voxik) removed unnecessary shebangs in pull request [#9].
|
265
|
+
Thanks!
|
266
|
+
|
267
|
+
- Kenichi Kamiya (kachick) removed some warnings of an unused variable in
|
268
|
+
lucky pull request [#13]. Thanks!
|
269
|
+
|
270
|
+
- Embarked on a major refactoring to make the files a little more manageable
|
271
|
+
and understand the code on a deeper level.
|
272
|
+
|
273
|
+
- Adding to http://travis-ci.org.
|
274
|
+
|
275
|
+
## 1.1.3 / 2011-08-27
|
276
|
+
|
277
|
+
- Converted to 'hoe' for release.
|
278
|
+
|
279
|
+
- Converted tests to RSpec 2.
|
280
|
+
|
281
|
+
- Extracted the body of htmldiff into a class available from diff/lcs/htmldiff.
|
282
|
+
|
283
|
+
- Migrated development and issue tracking to GitHub.
|
284
|
+
|
285
|
+
- Bugs fixed:
|
286
|
+
|
287
|
+
- Eliminated the explicit use of RubyGems in both bin/htmldiff and bin/ldiff.
|
288
|
+
Resolves issue [#4].
|
289
|
+
|
290
|
+
- Eliminated Ruby warnings. Resolves issue [#3].
|
291
|
+
|
292
|
+
## 1.1.2 / 2004-10-20
|
293
|
+
|
294
|
+
- Fixed a problem reported by Mauricio Fernandez in htmldiff.
|
295
|
+
|
296
|
+
## 1.1.1 / 2004-09-25
|
297
|
+
|
298
|
+
- Fixed bug #891 (Set returned from patch command does not contain last equal
|
299
|
+
part).
|
300
|
+
|
301
|
+
- Fixed a problem with callback initialisation code (it assumed that all
|
302
|
+
callbacks passed as classes can be initialised; now, it rescues NoMethodError
|
303
|
+
in the event of private :new being called).
|
304
|
+
|
305
|
+
- Modified the non-initialisable callbacks to have a private #new method.
|
306
|
+
|
307
|
+
- Moved ldiff core code to Diff::LCS::Ldiff (diff/lcs/ldiff.rb).
|
308
|
+
|
309
|
+
## 1.1.0
|
310
|
+
|
311
|
+
- Eliminated the need for Diff::LCS::Event and removed it.
|
312
|
+
|
313
|
+
- Added a contextual diff callback, Diff::LCS::ContextDiffCallback.
|
314
|
+
|
315
|
+
- Implemented patching/unpatching for standard Diff callback output formats with
|
316
|
+
both #diff and #sdiff.
|
317
|
+
|
318
|
+
- Extensive documentation changes.
|
319
|
+
|
320
|
+
## 1.0.4
|
321
|
+
|
322
|
+
- Fixed a problem with bin/ldiff output, especially for unified format. Newlines
|
323
|
+
that should have been present weren't.
|
324
|
+
|
325
|
+
- Changed the .tar.gz installer to generate Windows batch files if ones do not
|
326
|
+
exist already. Removed the existing batch files as they didn't work.
|
327
|
+
|
328
|
+
## 1.0.3
|
329
|
+
|
330
|
+
- Fixed a problem with #traverse_sequences where the first difference from the
|
331
|
+
left sequence might not be appropriately captured.
|
332
|
+
|
333
|
+
## 1.0.2
|
334
|
+
|
335
|
+
- Fixed an issue with ldiff not working because actions were changed from
|
336
|
+
symbols to strings.
|
337
|
+
|
338
|
+
## 1.0.1
|
339
|
+
|
340
|
+
- Minor modifications to the gemspec, the README.
|
341
|
+
|
342
|
+
- Renamed the diff program to ldiff (as well as the companion batch file) so as
|
343
|
+
to not collide with the standard diff program.
|
344
|
+
|
345
|
+
- Fixed issues with RubyGems. Requires RubyGems > 0.6.1 or >= 0.6.1 with the
|
346
|
+
latest CVS version.
|
347
|
+
|
348
|
+
## 1.0
|
349
|
+
|
350
|
+
- Initial release based mostly on Perl's Algorithm::Diff.
|
351
|
+
|
352
|
+
[rubinius/rubinius#2268]: https://github.com/rubinius/rubinius/issues/2268
|
353
|
+
[rspec/rspec-expectations#239]: https://github.com/rspec/rspec-expectations/issues/239
|
354
|
+
[rspec/rspec-expectations#238]: https://github.com/rspec/rspec-expectations/issues/238
|
355
|
+
[rspec/rspec-expectations#219]: https://github.com/rspec/rspec-expectations/issues/219
|
356
|
+
[rspec/rspec-expectations@3d6fc82c]: https://github.com/rspec/rspec-expectations/commit/3d6fc82c
|
357
|
+
[rspec/rspec-expectations#200]: https://github.com/rspec/rspec-expectations/pull/200
|
358
|
+
[#1]: https://github.com/halostatue/diff-lcs/issues/1
|
359
|
+
[#2]: https://github.com/halostatue/diff-lcs/issues/2
|
360
|
+
[#3]: https://github.com/halostatue/diff-lcs/issues/3
|
361
|
+
[#4]: https://github.com/halostatue/diff-lcs/issues/4
|
362
|
+
[#5]: https://github.com/halostatue/diff-lcs/issues/5
|
363
|
+
[#6]: https://github.com/halostatue/diff-lcs/issues/6
|
364
|
+
[#8]: https://github.com/halostatue/diff-lcs/pull/8
|
365
|
+
[#9]: https://github.com/halostatue/diff-lcs/pull/9
|
366
|
+
[#10]: https://github.com/halostatue/diff-lcs/pull/10
|
367
|
+
[#12]: https://github.com/halostatue/diff-lcs/issues/12
|
368
|
+
[#13]: https://github.com/halostatue/diff-lcs/pull/13
|
369
|
+
[#15]: https://github.com/halostatue/diff-lcs/pull/15
|
370
|
+
[#18]: https://github.com/halostatue/diff-lcs/pull/18
|
371
|
+
[#21]: https://github.com/halostatue/diff-lcs/issues/21
|
372
|
+
[#23]: https://github.com/halostatue/diff-lcs/pull/23
|
373
|
+
[#25]: https://github.com/halostatue/diff-lcs/pull/25
|
374
|
+
[#29]: https://github.com/halostatue/diff-lcs/pull/29
|
375
|
+
[#33]: https://github.com/halostatue/diff-lcs/issues/33
|
376
|
+
[#34]: https://github.com/halostatue/diff-lcs/pull/34
|
377
|
+
[#35]: https://github.com/halostatue/diff-lcs/issues/35
|
378
|
+
[#36]: https://github.com/halostatue/diff-lcs/pull/36
|
379
|
+
[#38]: https://github.com/halostatue/diff-lcs/issues/38
|
380
|
+
[#43]: https://github.com/halostatue/diff-lcs/issues/43
|
381
|
+
[#44]: https://github.com/halostatue/diff-lcs/issues/44
|
382
|
+
[#47]: https://github.com/halostatue/diff-lcs/pull/47
|
383
|
+
[#48]: https://github.com/halostatue/diff-lcs/issues/48
|
384
|
+
[#49]: https://github.com/halostatue/diff-lcs/pull/49
|
385
|
+
[#52]: https://github.com/halostatue/diff-lcs/pull/52
|
386
|
+
[#53]: https://github.com/halostatue/diff-lcs/issues/53
|
387
|
+
[#57]: https://github.com/halostatue/diff-lcs/issues/57
|
388
|
+
[#58]: https://github.com/halostatue/diff-lcs/pull/58
|
389
|
+
[#59]: https://github.com/halostatue/diff-lcs/pull/59
|
390
|
+
[#60]: https://github.com/halostatue/diff-lcs/issues/60
|
391
|
+
[#61]: https://github.com/halostatue/diff-lcs/pull/61
|
392
|
+
[#63]: https://github.com/halostatue/diff-lcs/issues/63
|
393
|
+
[#65]: https://github.com/halostatue/diff-lcs/issues/65
|
394
|
+
[#69]: https://github.com/halostatue/diff-lcs/issues/69
|
395
|
+
[#71]: https://github.com/halostatue/diff-lcs/issues/71
|
396
|
+
[#72]: https://github.com/halostatue/diff-lcs/issues/72
|
397
|
+
[#73]: https://github.com/halostatue/diff-lcs/issues/73
|
398
|
+
[#75]: https://github.com/halostatue/diff-lcs/issues/75
|
399
|
+
[#79]: https://github.com/halostatue/diff-lcs/issues/79
|
400
|
+
[#80]: https://github.com/halostatue/diff-lcs/issues/80
|
data/{License.rdoc → License.md}
RENAMED
@@ -4,12 +4,13 @@ This software is available under three licenses: the GNU GPL version 2 (or at
|
|
4
4
|
your option, a later version), the Perl Artistic license, or the MIT license.
|
5
5
|
Note that my preference for licensing is the MIT license, but Algorithm::Diff
|
6
6
|
was dually originally licensed with the Perl Artistic and the GNU GPL ("the
|
7
|
-
same terms as Perl itself") and that the Ruby implementation
|
8
|
-
closely to the Perl version,
|
7
|
+
same terms as Perl itself") and given that the Ruby implementation originally
|
8
|
+
hewed pretty closely to the Perl version, I must maintain the additional
|
9
|
+
licensing terms.
|
9
10
|
|
10
|
-
* Copyright 2004–
|
11
|
-
* Adapted from Algorithm::Diff (Perl) by Ned Konz and a Smalltalk
|
12
|
-
Mario I. Wolczko
|
11
|
+
* Copyright 2004–2013 Austin Ziegler.
|
12
|
+
* Adapted from Algorithm::Diff (Perl) by Ned Konz and a Smalltalk version by
|
13
|
+
Mario I. Wolczko.
|
13
14
|
|
14
15
|
=== MIT License
|
15
16
|
|
data/Manifest.txt
CHANGED
@@ -1,25 +1,57 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
.rspec
|
2
|
+
Code-of-Conduct.md
|
3
|
+
Contributing.md
|
4
|
+
History.md
|
5
|
+
License.md
|
3
6
|
Manifest.txt
|
4
7
|
README.rdoc
|
5
8
|
Rakefile
|
6
9
|
bin/htmldiff
|
7
10
|
bin/ldiff
|
8
|
-
diff-lcs.gemspec
|
9
11
|
docs/COPYING.txt
|
10
|
-
docs/artistic.
|
12
|
+
docs/artistic.txt
|
11
13
|
lib/diff-lcs.rb
|
12
14
|
lib/diff/lcs.rb
|
13
15
|
lib/diff/lcs/array.rb
|
16
|
+
lib/diff/lcs/backports.rb
|
14
17
|
lib/diff/lcs/block.rb
|
15
18
|
lib/diff/lcs/callbacks.rb
|
16
19
|
lib/diff/lcs/change.rb
|
17
20
|
lib/diff/lcs/htmldiff.rb
|
18
21
|
lib/diff/lcs/hunk.rb
|
22
|
+
lib/diff/lcs/internals.rb
|
19
23
|
lib/diff/lcs/ldiff.rb
|
20
24
|
lib/diff/lcs/string.rb
|
25
|
+
spec/change_spec.rb
|
21
26
|
spec/diff_spec.rb
|
27
|
+
spec/fixtures/aX
|
28
|
+
spec/fixtures/bXaX
|
29
|
+
spec/fixtures/ds1.csv
|
30
|
+
spec/fixtures/ds2.csv
|
31
|
+
spec/fixtures/ldiff/output.diff
|
32
|
+
spec/fixtures/ldiff/output.diff-c
|
33
|
+
spec/fixtures/ldiff/output.diff-e
|
34
|
+
spec/fixtures/ldiff/output.diff-f
|
35
|
+
spec/fixtures/ldiff/output.diff-u
|
36
|
+
spec/fixtures/ldiff/output.diff.chef
|
37
|
+
spec/fixtures/ldiff/output.diff.chef-c
|
38
|
+
spec/fixtures/ldiff/output.diff.chef-e
|
39
|
+
spec/fixtures/ldiff/output.diff.chef-f
|
40
|
+
spec/fixtures/ldiff/output.diff.chef-u
|
41
|
+
spec/fixtures/ldiff/output.diff.chef2
|
42
|
+
spec/fixtures/ldiff/output.diff.chef2-c
|
43
|
+
spec/fixtures/ldiff/output.diff.chef2-d
|
44
|
+
spec/fixtures/ldiff/output.diff.chef2-e
|
45
|
+
spec/fixtures/ldiff/output.diff.chef2-f
|
46
|
+
spec/fixtures/ldiff/output.diff.chef2-u
|
47
|
+
spec/fixtures/new-chef
|
48
|
+
spec/fixtures/new-chef2
|
49
|
+
spec/fixtures/old-chef
|
50
|
+
spec/fixtures/old-chef2
|
51
|
+
spec/hunk_spec.rb
|
52
|
+
spec/issues_spec.rb
|
22
53
|
spec/lcs_spec.rb
|
54
|
+
spec/ldiff_spec.rb
|
23
55
|
spec/patch_spec.rb
|
24
56
|
spec/sdiff_spec.rb
|
25
57
|
spec/spec_helper.rb
|