Releases: ASSERT-KTH/spork
Spork v0.5.1
Spork v0.5.0
This release contains some new features and bugfixes. It's the version of Spork used for my thesis experiments.
Features
- Reprint single-revision comments, fix #137
- Add configurable structural conflict handling (#141)
- Refactor ContentMerger to use configurable handlers, fix #142
Bugfixes
- Apply post-processing to find duplicated type members (#138)
- Previously, duplicated type members could sometimes occur
Spork v0.4.2
Bugfixes
- [fix] Have --exit-on-error actually disable global fallback
Spork v0.4.1
Spork v0.4.0
Spork v0.4.0 release notes
Features
- 02ad893 Implement fallback for move and delete conflicts (#128)
- Move and delete conflicts previously caused crashes, but now Spork falls back on a node-local line-based merge
- 3ceee85 Merge comments attached to the compilation unit
- Comments at the very top of a file (above the package statement) are now also merged.
Bugfixes
- dab33b3 Introduce intermediate virtual nodes for select concrete nodes (#133)
- f4897d5 Don't assume node order in getOriginalSource, fix #131
- 265b0ae Improve active package finding, fix #129
- 55fc0d4 Use XY matcher for left-to-right matching (#126)
- b7b2c52 Fix flaky inconsistency detection (#125)
- 8cc831b Make multi declaration detection stricter, fix #123
- d972722 Detect conflict markers in double quotes, fix #122
Documentation
Refactorings
- 737e935 Optimize start/end of child lists
Other
Spork v0.3.0
Spork v0.3.0 release notes
This is an exciting release with tons of new features, stability fixes and general tuning made to Spork. It now actually works pretty well!
Features
- 4ef433e Add line-based fallback and --exit-on-error option, fix #120
- By default, Spork will now fall back on a line-based merge if it encounters a critical error when merging structurally. Such cases are rare, but they do occur, especially in the presence of complicated move conflicts.
--exit-on-error
disables the line-based fallback, which is useful for research work but not recommended otherwise.
- By default, Spork will now fall back on a line-based merge if it encounters a critical error when merging structurally. Such cases are rare, but they do occur, especially in the presence of complicated move conflicts.
- 14f733b Make Spork comply with git merge-file, fix #113
- Now returns the amount of conflicts. Roughly.
- 0643d74 Dynamically get version from pom.properties, fix #118
--version
now actually shows the version number!
- ca05291 Remove the compare command, fix #117
- The
compare
command no longer served a purpose. Merging is now invoked with justspork
, as opposed tospork merge
.
- The
- 79517d7 Add --logging option that enables logging, fix #104
- The
--logging
option enables logging, which is otherwise disabled. It lets you know roughly what Spork is doing!
- The
- fee080a Improve indentation size guessing: choose 1, 2 or 4 #100
- 6f11494 fee080a Guess indentation of source files, fix #100
- Will guess the indentation level and type (tabs or spaces) of the source files and apply that to the output file.
- 4d5ffb6 Use original source for methods and fields (#97)
- Spork will now reuse the original source code for methods and fields that have not been merged internally. This dramatically improves the formatting accuracy of Spork.
Bugfixes
- 56491be Add leaf node PCS child lists, fix #116
- 3b035ab Avoid using original source for multi-declarations, fix #111
- c95b20e Fix non-deterministic move conflict detection, fix #101
- 1934a10 Fix incorrect indentation bug when writing raw source
- f54dced Fix off-by-one bugs in SourceExtractor
- 590ddb7 Extract source code fragments from strings instead of bytes, fix #99
Refactorings
Spork v0.2.1
Spork v0.2.0
Spork v0.2.0 release notes
This is a pretty massive release for Spork. It's now fairly stable and should work almost without fail. There are still corner cases that don't quite work, mostly involving certain forms of move conflicts (i.e. where the same AST node has been moved to conflicting locations).
Features
- 4234225 Allow root conflicts #87
- 8c0f5d4 Exit non-zero on conflict, fix #85
- For Git compatibility
- f76420c Add Git compatibility mode, fix #84
- This allows Spork to merge files that don't end in
.java
- This allows Spork to merge files that don't end in
- 4a58cc7 Throw exception when a conflict is not handled in preproccessing
- fa13683 Improve printing of conflicts, fix #66
- e8d41dc Deal with conflicts in comments #35
- c8e693d Automatically resolve ordering conflicts #5
- 552ae18 Add --output option to merge command, fix #46
- 07e1c5a Compare with gumtree-spoon, ignoring comments, fix #45
- 23dfa51 Use picocli to create separate merge and compare commands, fix #44
- The CLI is now much more pretty!
- ca5a740 Compare to expected with ordering-aware comparison and exit non-zero on mismatch, fix #33
Bugfixes
- e88f2c3 Resolve name of anonymous class to empty string #86
- d96702c Properly merge use of "var" keyword, fix #92
- efbb59d Prevent matchings between primitive and non-primitive type refs, fix #91
- 871c026 Check for content equality in mapping inference, fix #90
- 44a7e55 Resolve IS_VARARGS content of parameters, fix #88
- 0a8828c Always add virtual nodes in class rep map, fix #83
- 1bebf1f Fix broken isRootConflict method
- 69b5816 Merge content of both pred and succ, fix #82
- d316fd7 Use line-based merge if merge has no types, fix #78
- c804c3c Avoid mapping annotation values to non-annotation values, fix #79
- 884d590 Never force wildcard generics, fix #77
- cb356a3 Fix indexing bug in textual merge
- cbb7d7d Fix merging of annotation values, fix #74
- b562729 Only map nodes of the exact same type #57
- 1092688 Throw exception on move conflict #57
- 9484de2 Don't unset source position twice
- ee79bb2 Process comments explicitly in PrinterPreprocessor, fix #72
- 48728a2 Print operator conflicts #69
- 4707766 Revert " Add "magic fix" for caching issue #65"
- 6c3b710 Don't skip PCSes already in conflicts, fix #65
- 211383c Properly handle modifier merge conflict #43
- 412d688 Resolve content for default method #43
- 12f3a9d Properly pretty-print merge conflict on super/extends of wildcard #43
- c0aebe4 Properly merge implicitness of values #43
- 39b6887 Add "magic fix" for caching issue #65
- 9505e8a Re-add setting ignore implicit and add a note saying why it is important
- 5ab6209 Properly resolve the content of comments #35
- 29990ca Redesign structural conflict handling #55
- 434eea4 Correctly deal with wildcard bounds, fix #37
- 2d99e26 Reparse modules in compare after sorting elements to avoid strangeness
- 609004c Remove named annotation value from test case #49
- 8699dd7 Don't print implicit values, fix #48
- 400b1a2 Search for non-empty packages when finding active package, fix #47
- 9180a14 Also unset source position when sorting type members, fix #40
- 6cdbf47 Deal with merging of modifiers #36
- d41d50b Resolve and attach modifiers as "secondary values" #36
- 00bb5ec Resolve operator kinds in merge, fix #31
- d966241 Prevent SpoonMapping inferring matches on nodes of different type, fix #32
Documentation
Spork v0.1.0
Spork v0.1.0 release notes
The big new features is that Spork can now handle conflicts, making it a fully functioning prototype of a merge tool. That is not to say that it doesn't blow up sometimes (it does!), but it handles all tasks a merge tool should be able to handle. Just not always correctly :)
Features
- 05fb207 Add support for handling structural conflicts #20
- See PR #28 for more details on this
- cec7468 Add rudimentary handling of content conflicts #19
- See PR #22 for more details on this
- 7ffc924 Only perform top-down matching for left-right match #23
- ed25494 Add conservative approach to augmenting class representatives map #23
- 374b374 Handle merging of import statements, fix #17
- 1b82d0f Add front end support for non-single-class files, fix #15
- a2ea0b0 Add back end support for non-single-class files, fix #14
- 72cdd9f Handle content for the most common code elements #1
Bugfixes
- 02eebc5 Skip processing PCS that is already conflicting #21
- 577f31f Augment class representatives more conservatively #23
- f71f05f Fix bug in getOtherPredecessor causing it to never work
- 660d44a Also pretty-print package statements, fix #16
- 72c2ae6 Work around bug in Spoon by reading from virtual file #18
- 5e69f5a Fix crash caused by mishandling annotations with contents, fix #2
Spork v0.0.1
This is the first, somewhat functioning release of Spork! It can resolve fairly fairly straightforward merges that perform structural modifications (updates, deletes and moves). As for updates of nodes, only literal values are currently supported.
Conflicts are essentially not handled at all, and just results in Spork crashing.