2024-10-11 - 2025-10-11
Overview
20 releases published by 1 user
Release
v0.15.0
Mergiraf 0.15.0
Release
v0.14.0
Mergiraf 0.14.0
Release
v0.13.0
Mergiraf 0.13.0
Release
v0.12.1
Mergiraf 0.12.1
Release
v0.12.0
Mergiraf 0.12.0
Release
v0.11.0
Mergiraf 0.11.0
Release
v0.10.0
Mergiraf 0.10.0
Release
v0.9.0
Mergiraf 0.9.0
Release
v0.8.1
Mergiraf 0.8.1
Release
v0.8.0
Mergiraf 0.8.0
Release
v0.7.0
Mergiraf 0.7.0
Release
v0.6.0
Mergiraf 0.6.0
Release
v0.5.1
Mergiraf 0.5.1
Release
v0.5.0
Mergiraf 0.5.0
Release
v0.4.0
Mergiraf 0.4.0
Tag
preview-v0.4.0-alpha1
Release
v0.3.1
Mergiraf 0.3.1
Release
v0.3.0
Mergiraf 0.3.0
Release
v0.2.0
Mergiraf 0.2.0
Release
v0.1.0
Mergiraf 0.1.0
377 pull requests merged by 30 users
Merged
#614 feat(rust): Add derive
attribute as commutative parent
Merged
#608 fix: preserve CRLF newlines in solve
and merge
commands
Merged
#607 fix(toml): Invalid signature for keys
Merged
#563 chore: Better error types for TreeBuilder
Merged
#602 perf: reduce the number of calls to git-check-attr
Merged
#604 chore(lang_profile): rm leftover function
Merged
#599 feat(Git): support reading language from git attributes
Merged
#597 docs: Further improvements to the tutorial to add a language
Merged
#590 feat(Python): Enable commutation of class attributes, with docstrings
Merged
#596 doc: update adding-a-language.md
Merged
#591 chore: Simplify pyproject language profile
Merged
#592 chore: Update dependencies
Merged
#582 feat: Support for pyproject.toml
Merged
#588 fix(AstNode::bundle_comments): don't bundle at A, // comment \n B
Merged
#527 tests: Utility to minimize test cases, continued
Merged
#585 fix(typescript): Bad handling of semicolons in commutative merging of class bodies
Merged
#587 fix: Reject parse trees with missing nodes
Merged
#576 feat: bundle comments into nodes they annotate
Merged
#583 feat: Install via cargo binstall
Merged
#568 feat: Recover from commutative merging failures
Merged
#580 chore: Update crate dependencies
Merged
#579 chore: Update to Rust 1.89
Merged
#578 fix: Panic in unicode boundary checking code
Merged
#575 feat(merge,solve): create the debug dir if not present
Merged
#574 refactor(AstNode): replace UnsafeCell
s with Cell
s
Merged
#572 Minimal CMake support
Merged
#566 governance: Make mathstuf a developer
Merged
#571 chore: Add AstNode::succeeding_whitespace()
Merged
#561 fix: Switch from grammar_name
to kind
Merged
#569 refactor: return _exactly_ a Conflict
from TreeBuilder::build_conflict
Merged
#562 fix: Prevent the commutative merging of all extra
elements
Merged
#567 feat: add some signatures for children of commutative parents
Merged
#560 fix(Rust): mark comments as atomic
Merged
#559 misc(merged_text): clean-up and comments
Merged
#555 refactor(merge): leak
in fewer places
Merged
#557 Switch to tree-sitter-dart-orchard
Merged
#558 fix(AstNode::parse
): respect char boundaries of source
when informing about a parse error
Merged
#509 feat: Add support for starlark.
Merged
#546 chore: Switch to tree-sitter-java-orchard
Merged
#536 perf(mgf_dev): Speed up commutative isomorphism via hashing
Merged
#543 fix(ast): correct byte_range for empty injections
Merged
#550 test(ast): improve legibility of source
strings
Merged
#549 refactor: get rid of some Option/Result::and_then
s
Merged
#544 ci: Fix cargo install git-cliff
with --locked
Merged
#547 chore(changelog): add commit ids to log entries without names
Merged
#548 chore: Update dependencies
Merged
#541 feat: add a Cargo feature for mgf_dev
-specific functionality
Merged
#542 feat(ParentType): make Display
less verbose in the common case
Merged
#539 chore(cargo/aliases): run mgf_dev compare
in release mode
Merged
#538 refactor(MultiMap): clean-up trait bounds
Merged
#535 feat(parse): add an option to limit tree depth
Merged
#533 fix(postprocess/merge_same_sigs): use the revisions that the node is actually known to be in
Merged
#531 feat(TypeScript): commutative merging for union and intersection types
Merged
#523 feat: Distinguish between exact and inexact initial matchings
Merged
#530 refactor(tests): Inline all language-specific parse methods
Merged
#529 chore: Print line numbers when reporting a syntax error
Merged
#528 chore: Highlight new contributors in release notes
Merged
#510 feat: Add support for GNU Make
Merged
#526 perf(ParsedMerge::is_empty): don't render the whole merge just to see if it's empty
Merged
#525 refactor: Simplify ParsedMerge::rev_range_to_merged_range
Merged
#524 fix(tests): correct python/working/__all__ case
Merged
#519 chore(deps): no longer pull in cc
Merged
#518 refactor(fallback_to_git_merge_file): some minor clean-up
Merged
#517 refactor(mgf_dev): only match on args.command
once
Merged
#499 dev: add cargo shortcuts for the subcommands of mergiraf
and mgf_dev
Merged
#488 feat(Haskell): More commutative parents and signatures
Merged
#522 feat(Python): merge decorated methods and inner classes
Merged
#513 fix: improve detection of Jujutsu usage
Merged
#512 tests: Minimal environment when invoking git
Merged
#514 switch to tree-sitter-systemverilog
Merged
#515 chore(flake): update
Merged
#508 doc: use XDG paths for git directories
Merged
#506 test(lang_profile): introduce helper to reduce (some) boilerplate
Merged
#505 fix(rust): add signature to self
in use_declaration
Merged
#504 doc: update rotten link
Merged
#502 refactor(RevisionSet): misc changes to iter
and any
Merged
#501 refactor(RevisionNESet): use impl Deref<Target=RevisionSet>
instead of forwarding methods
Merged
#500 chore(lints): also enable in mgf_dev
Merged
#498 refactor(MergedTree): take &Leader
in methods to avoid derefs
Merged
#497 refactor: add submodules to merged_tree.rs
Merged
#493 fix: Include full filenames in languages list
Merged
#496 chore(cli/solve): make --keep
a hidden alias of --stdout
Merged
#495 refactor: move priority_list
to under tree_matcher
Merged
#494 ci: Fix crates.io upload
Merged
#483 chore: Update dependencies
Merged
#490 fix: Language detection by full filenames
Merged
#486 chore: Update testing helpers to support test cases without extensions
Merged
#468 ci: Use Docker image with Rust already installed
Merged
#481 fix: Escape newlines in ascii art representation of trees
Merged
#480 fix: Ignore empty nodes in AstNode::isomorphic_to_source
Merged
#476 feat: Support for go.sum
files
Merged
#477 tests: Add missing tests for go.mod
support
Merged
#478 chore(go.mod): Update parser to 0.4.0
Merged
#472 test: reorganize parsed_merge
tests
Merged
#473 misc
Merged
#474 feat: Support for go.mod
files
Merged
#475 tests: Update helpers to support explicit language setting
Merged
#471 chore: warn of default_trait_access
Merged
#465 feat: Support specifying full file names in language profiles
Merged
#470 refactor: use let-chains all over the place
Merged
#459 fix(PHP): Don't commutatively merge comments in declaration_lists
Merged
#464 tests: Specify the language via a dedicated file
Merged
#438 chore: Add CONTRIBUTING.md
Merged
#462 fix: Check for Jujutsu repo at conflict location
Merged
#458 chore: Move mgf_dev to a separate package
Merged
#455 fixup: Add missing string signature to avoid duplicate elements in Python's __all__
Merged
#457 ci: Remove extra newlines between changelog items
Merged
#454 feat(Haskell): let type classes commute in 'deriving' tuples
Merged
#453 feat: Defining commutative parents by tree-sitter queries
Merged
#446 doc(usage): decribe merge results in example-repo
Merged
#452 prepare for #448
Merged
#433 ci: automate the release process
Merged
#447 chore: Update tree-sitter-rust-orchard to 0.10.0
Merged
#445 chore: Make sure tests pass independently from the environment
Merged
#444 chore: fix formatting for CI to pass again
Merged
#442 flake: update
Merged
#434 feat: resolve file revisions from git commits
Merged
#435 chore: Update Rust grammar to 0.7
Merged
#423 Improve error reporting when working copy is not in a conflict state
Merged
#428 feat(Rust): Support reordering declarations with attributes
Merged
#431 feat(Haskell): Make record updates commutative and add signatures
Merged
#432 doc(usage): fix typo
Merged
#429 feat: Haskell support
Merged
#430 doc: Small improvements to "Adding a language"
Merged
#427 feat: init Elixir support
Merged
#426 Add OCaml support
Merged
#424 Call checkout-index just once per file
Merged
#421 fix: Be more careful when trimming newlines around the end of nodes
Merged
#404 feat: Add INI support
Merged
#210 feat: support hcl
Merged
#408 fix: Preserve initial whitespace before the first child
Merged
#384 docs: Recommend to use '* merge=mergiraf'
Merged
#403 feat: Support for nested languages
Merged
#396 feat: Initial Markdown support
Merged
#400 chore: Refactor AstNode
creation
Merged
#401 fix: helpers/inspect.sh
Merged
#402 perf: Avoid filling up MergedText with empty strings
Merged
#399 fix(rust): Signature for scoped_identifier
Merged
#395 chore: Remove Ast struct
Merged
#397 chore: Small improvements to test helpers
Merged
#393 chore: Generate our own node ids instead of reusing tree-sitter's
Merged
#392 chore: Upgrade dependencies
Merged
#394 chore: Adapt AstNode / MergedTree isomorphisms to care about languages
Merged
#386 refactor: Store a reference to LangProfile in each AstNode
Merged
#391 Fix: Update zip to v3.0.0
Merged
#389 tests: Add failing case for Python argument lists
Merged
#387 refactor: Reduce duplication in AstNode::internal_new
Merged
#381 tests: Re-run if examples/ directory changed
Merged
#383 chore(deps): update tree-sitter-rust
to 0.24
Merged
#380 fix: Handling of quoted strings in YAML
Merged
#374 feat: Specify different separators for each children group of a commutative parent
Merged
#378 tests: Add cases for Rust use statement matching
Merged
#371 fix: Avoid displaying spurious conflicts
Merged
#377 fix: Restrict commutativity of initializer_list in C/C++
Merged
#372 tests: Mark cpp/lack_of_conflict test as working
Merged
#376 fix: Writing changeset to debug dir
Merged
#375 fix: Restrict commutativity in C#
Merged
#368 fix: Check that the merged text is syntactically valid and consistent with the merged tree
Merged
#362 fix: Handling of duplicate signatures in base revision
Merged
#367 fix: Don't match nodes of different types
Merged
#366 chore: Use representative from correct revision in conflicts
Merged
#359 refactor(AstNode::truncate): don't force &
before predicate
Merged
#360 misc
Merged
#365 feat: even more c++ file extensions (#364)
Merged
#327 feat: manual language selection
Merged
#358 docs: explain why we allow creating MixedTree
s without children
Merged
#332 governance: Add senekor to the Developers team
Merged
#331 doc: advise to use diff3 conflict style
Merged
#330 feat: detect zdiff3-style conflicts
Merged
#329 perf: avoid calling Matching::add
in a loop
Merged
#328 perf: make DfsIterator
exact-sized
Merged
#323 refactor: return ParsedMerge
from line_based_merge
Merged
#324 refactor: rename tree.rs
to ast.rs
Merged
#297 refactor(lib): extract logic for mergiraf {merge,solve}
out into separate modules
Merged
#318 feat(mergiraf solve): improve error output for jj users
Merged
#317 doc: explain how to use Mergiraf with Jujutsu
Merged
#316 fix(MergedTree::pretty_print): add newline after children of MixedTree
Merged
#315 test: add a helper to index AstNode::children
panickingly
Merged
#312 fix: Incorrect resolution of delete-delete conflict
Merged
#306 fix: Spurious indentation changes on untouched nodes
Merged
#313 Document the process of adding whitespace between merged nodes
Merged
#308 test: use a shorter name for go/two_fields_but_first_has_trailing_comment
Merged
#307 chore: remove the unused AstNode::s_expr
method
Merged
#305 misc
Merged
#304 chore: fix newly warn-by-default lints in Rust 1.86.0
Merged
#301 test: add failing test for #299
Merged
#302 Revert "trailing_whitespace: call AstNode::trailing_whitespace
earlier"
Merged
#298 fix(AttemptsCache::prune): remove the _oldest_ attempts
Merged
#300 chore: byproduct improvements from #259 investigation
Merged
#295 more-cpp-extensions
Merged
#294 chore: remove default features of rstest
Merged
#293 chore: update deps
Merged
#292 chore: specify cc
version with >=
Merged
#291 feat(mergiraf solve): make --keep-backup
conflict with --stdout
Merged
#290 feat(mergiraf solve): rename --keep
to --stdout
Merged
#289 fix(cli): restrict --debug
to mergiraf {merge,solve}
Merged
#288 doc: include
code examples used in conflicts
section
Merged
#287 misc
Merged
#281 doc: explain why we pull trailing whitespace into conflict in compact mode
Merged
#284 fix(MergedText::render_full_lines): don't add space if all there is is indentation
Merged
#286 helpers: Use syntactic comparison in suite.sh
Merged
#285 perf(MergedText): if all chunks are merged, just concatenate them all
Merged
#280 test: test that failing
integration tests are still failing
Merged
#278 fix: Add missing commutativity for 'throws' declarations in Java
Merged
#277 refactor: overhaul Multimap
's methods
Merged
#275 test: test compact outputs if present
Merged
#273 chore: update to Rust v1.85.0 and 2024 edition
Merged
#274 feat: Java Properties support
Merged
#272 test: turn _all_ Expected.java
s into the non-compact conflict representation format
Merged
#271 refactor: split integration tests into separate files
Merged
#270 doc(mergiraf solve): don't mention the default value of --keep-backup
Merged
#268 refactor(visualizer): overhaul add_node
Merged
#266 perf(Matching): combine reverse
and compose
Merged
#267 perf(visualizer): buffer file writes
Merged
#269 refactor(visualizer): add consts for node/matching colors
Merged
#261 test: add failing test for #87
Merged
#254 feat(mgf_dev): Commutative tree isomorphism checking
Merged
#257 accomodate cargo-flamegraph
Merged
#256 misc
Merged
#255 test: add getters for often-used LangProfile
s
Merged
#239 governance: Add bobvanderlinden to the developers team
Merged
#253 git: change name using .mailmap
Merged
#252 chore: Update dependencies
Merged
#250 fix: Add missing commutativity in Java interfaces
Merged
#248 fix: Make Python "import from" statements commutative
Merged
#246 fix: restore the comment deleted by rust-analyzer
Merged
#243 flake: add mdbook
Merged
#240 doc: store the list of the supported languages in a separate file and test it
Merged
#238 fix(cli): add . to extensions in languages output
Merged
#235 test: remove _skip
files
Merged
#233 flake: update
Merged
#226 add support for SystemVerilog language
Merged
#230 test: remove Expected.<ext>
files in diff2 conflict representation
Merged
#229 tests(java/add_same_visibility): realize that the test is no longer failing
Merged
#227 cli: improve consistency
Merged
#228 fix(cli): add _actual_ docs to --conflict-marker-size
option
Merged
#223 fix(MergedTree::line_based_local_fallback_for_revnode): respect DisplaySettings
Merged
#221 refactor(three_way_merge): split each step into its own function
Merged
#220 feat(LangProfile::detect_from_filename): handle extension comparison more correctly
Merged
#219 chore: update diffy-imara to 0.3.1
Merged
#218 refactor: remove AddSeparator::AtBeginning
Merged
#217 fix(MergedTree/count_conflicts): respect conflict marker size
Merged
#215 perf: use rustc-hash in more places
Merged
#212 refactor(merge_postprocessor): overhaul add_separators
Merged
#211 fix(highlight_duplicate_signatures): don't remove separators if no conflict was built
Merged
#209 misc
Merged
#183 finish Nix Language Support
Merged
#207 refactor(TreeBuilder): inline and remove resolve_commutative_conflict
Merged
#200 feat: Add command to compare files by tree isomorphism
Merged
#206 chore: Various refactorings in mgf_dev
Merged
#204 fix(TreeBuilder): resolve not-really-conflicts (left and right agree), take 2
Merged
#203 feat(MergedTree::line_based_local_fallback_for_revnode
): handle the case of isomorphic left and right sides
Merged
#205 refactor(TreeBuilder): overhaul extract_conflict_side
Merged
#202 git(attributes): set the conflict marker size in all files
Merged
#195 feat(line_based_merge_with_duplicate_signature_detection): if the line-merge has conflicts, reconstruct and check each revision
Merged
#193 fix(cli): accept --compact
without explicit =true
Merged
#167 test: re-multiline all merge conflict examples
Merged
#191 chore: Upgrade cc to v1.2.12
Merged
#190 chore: remove DISABLING_ENV_VAR_LEGACY
Merged
#187 refactor(tree_builder): introduce a type alias to simplify function signatures
Merged
#186 misc
Merged
#185 fix(ParsedMerge): only parse
conflicts starting at newlines; render
conflicts with non-newline-terminated sides correctly
Merged
#184 refactor(MergedChunk::Conflict): make revision names Option
al
Merged
#172 refactor(merge_postprocessor): overhaul post_process_merged_tree_for_duplicate_signatures
, misc changes in the module
Merged
#177 refactor(mergiraf): make the args that are paths PathBuf
s
Merged
#182 feat: Initial support for Ruby
Merged
#181 chore: Make helpers/inspect.sh not ignore new line differences
Merged
#179 Nominate funkeleinhorn to the Developers team
Merged
#175 feat: add language support for Devicetree Source files
Merged
#176 refactor(line_based_merge): take settings
as Option
Merged
#178 ci: implement various tips from a blog post
Merged
#174 fix: Don't panic when commutative merge of root node fails
Merged
#141 feat: Abort structured merge after a timeout (take 3)
Merged
#89 fix: Restrict commutativity to avoid issues with comments
Merged
#173 ci: fix and improve caching
Merged
#169 misc
Merged
#171 docs: use docstrings on CLI arguments so that they're visible when running the CLI; avoid this error in the future
Merged
#166 refactor: make debug_dir
a Path
Merged
#136 feat: support %L
conflict marker size option
Merged
#165 feat(mergiraf-solve): --keep-output
option to control the creation of .orig
files
Merged
#161 refactor(DisplaySettings): use Option
s for default fields
Merged
#150 refactor(ParsedMerge): overhaul parse()
, some stylistic changes in tests
Merged
#157 refactor(select_best_merge): rename to select_best_solve
, handle the case where no merge is better than the line-based one
Merged
#156 ci: merge formatting, linting, and testing workflows
Merged
#155 refactor: make the definition of the disabling envvars more orderly
Merged
#154 chore: Update dependencies
Merged
#152 Nominate zivarah to the Developers team
Merged
#151 misc
Merged
#56 feat: Add Kotlin support
Merged
#148 perf(normalize_to_lf): take and return an owned value in case no change is needed
Merged
#147 refactor(tree/ascii_tree): use nu_ansi_term
to color strings
Merged
#146 feat: add basic lua support
Merged
#135 refactor: make lang_profile
non-optional
Merged
#143 fix: don't add newline at the end of merged / to-be-merged files
Merged
#142 chore: update itertools to 0.14.0
Merged
#140 feat: add support for TSX
Merged
#138 feat: support for Solidity language (Ethereum)
Merged
#134 misc
Merged
#132 refactor(lib): extract stuff into modules
Merged
#131 doc: Advertise installation via package managers
Merged
#127 refactor: handle the only merge being the parsed input already in resolve_merge_cascading
Merged
#123 refactor(resolve_merge_cascading): allow parsed_merge
to fail independently from resolved_merge
, general overhaul
Merged
#129 refactor(AstNode::internal_ascii_tree): more local variables
Merged
#126 Support displaying both Commutative and Signature for the same nodes
Merged
#122 refactor(normalize_to_lf): cow
the output
Merged
#120 refactor (resolve_merge_cascading): replace if let
chain with match
Merged
#118 refactor(line_merge_and_structured_resolution): don't needlessly pass attempt
around
Merged
#117 ci: make clippy actually useful by turning its warnings into errors
Merged
#114 refactor(highlight_duplicate_signatures): avoid clones and bounds checks
Merged
#116 chore(clippy): add some pedantic lints
Merged
#115 refactor(merged_tree): consume self
in force_line_based_fallback_on_specific_nodes
Merged
#113 ci: also cache build dependencies when running clippy
Merged
#112 refactor(find_separators_with_whitespace): don't allocate a Vec
Merged
#111 perf(merged_tree): use &str
in MergedTree::CommutativeChildSeparator
Merged
#110 misc
Merged
#104 feat: PHP support
Merged
#108 refactor(keep_content_only): return an Iterator
instead of collecting
Merged
#105 feat: Add .mjs to extensions associated with Javascript
Merged
#107 feat: switch to diffy-imara
Merged
#106 refactor: replace supported_languages()
with a LazyLock
Merged
#103 refactor priority_list
Merged
#100 feat: merge using imara-mergy
Merged
#99 chore: various small fixes
Merged
#98 uncow MergedChunk
Merged
#97 flake: add graphviz
to the devShell
Merged
#93 perf: don't clone in cascading_merge
Merged
#94 perf: cow LangProfile
Merged
#91 no_clone_in_line_merge_and_structured_resolution
Merged
#90 miscellaneous changes
Merged
#88 governance: Change ugur-a to Publisher
Merged
#86 perf: further cow with_final_newline
Merged
#85 tests: Fix integration test to isolate from older Mergiraf
Merged
#83 ci: run clippy
Merged
#80 perf: use borrowed values in Attempt
Merged
#74 fix: The solve command preserves revision names in conflicts
Merged
#81 chore: ignore some lints
Merged
#79 refactor: parse_attempt_id
Merged
#82 refactor: simplify lifetimes
Merged
#78 style
Merged
#75 chore: Remove dependency to graphviz-rust crate
Merged
#76 style
Merged
#77 uncow DisplaySettings
Merged
#70 style and refactors
Merged
#69 chore: switch to Rust 2021
Merged
#72 chore: update rstest to 0.23.0
Merged
#68 chore: deal with only_used_in_recursion
Merged
#65 cow_invasion
Merged
#64 style
Merged
#59 fix: Don't swallow trailing whitespace of merged nodes
Merged
#62 perf: reduce_allocations
Merged
#61 style
Merged
#48 feat: Add initial TOML support
Merged
#51 feat: improve TypeScript support
Merged
#55 feat(cli): replace MERGIRAF_DISABLE=1 with mergiraf=0
Merged
#54 ci: Run rustfmt on PRs
Merged
#53 fix: Restore CLI options
Merged
#52 Nominate ugur-a as Developer
Merged
#50 refactor(multimap): MultiMap::contains_key
Merged
#49 clippy lints and small refactorings
Merged
#45 feat: Add typescript support
Merged
#46 feat(cli): add an option to specify output file
Merged
#47 fix: add .direnv folder to .gitignore
Merged
#40 Use rustc-hash for the hottest hashmaps
Merged
#33 Support for restricting commutativity
Merged
#39 Precompute DFS of all nodes
Merged
#32 Basic Scala support
Merged
#31 fix: Make helpers runnable from any directory
Merged
#29 Add installation instructions using the Mergiraf crate
Merged
#25 feat: Add .cc to the C/C++ extensions
Merged
#24 tests: Fix integration test when GPG signing is enabled.
Merged
#16 Add Nix flake
Merged
#22 Various Clippy Fixes
Merged
#19 doc: Various small fixes
Merged
#18 Add console commands for git configuration
Merged
#14 chore: Switch yaml and go parsers to official releases
Merged
#13 #8 add initial Dart support
Merged
#3 Add support for full merges in the "mergiraf solve" command
7 pull requests proposed by 3 users
Proposed
#125 WIP: feat: GDScript/Godot Resources
Proposed
#192 WIP: feat(solve): report the number of solved conflicts if there's a line-based merge to compare with
Proposed
#507 test(supported_langs): check that commutative parents' children all have signatures defined
Proposed
#516 WIP: feat(cli): add a subcommand for getting the shell completions file
Proposed
#537 WIP: tests: Utilities to benchmark mergiraf on large corpora
Proposed
#611 fix(merged_tree): introduce cycle detection to mitigate a comment bundling bug
Proposed
#615 fix(merge): Don't fail if the revisions contain stray conflict markers
113 issues closed from 43 users
Closed
#605 feature/rust: Mark derive
macros as commutative
Closed
#581 DOS line endings (CRLF) silently turn into Unix (LF)
Closed
#606 toml: Spurious duplicate signature
Closed
#594 Makefile parse error
Closed
#589 feat: Support bundling Python docstrings on attributes
Closed
#564 DisplaySettings
: remove diff3
?
Closed
#314 Tracking Issue for go/field_with_trailing_comment
Closed
#586 bug: Incorrect comment bundling after a separator
Closed
#456 Test case minimizer
Closed
#554 Parsing issues are not detected for MISSING
tokens
Closed
#322 Tracking Issue: Attributes and docstrings are not attached to the elements they annotate
Closed
#577 Update the docker image to include Rust 1.89.0
Closed
#573 Incorrect merge of import type and non-type import statements
Closed
#242 Mergiraf meetup in Germany in 2025
Closed
#467 Exclude commutatively merging of comments by default
Closed
#450 Fuzzing infrastructure for Mergiraf
Closed
#534 Faster commutative isomorphism
Closed
#532 Panic at src/ast.rs:703:25: byte index 18446744073709548319 is out of bounds of ``
Closed
#521 Panic: Revision set for ExactTree inconsistent with class mapping
Closed
#484 Commutative merging of binary operators
Closed
#139 rust use
statement getting duplicated during conflicts
Closed
#491 Language support for Makefiles
Closed
#503 Rust: duplicate self
in use_declaration
s
Closed
#492 mergiraf languages
doesn't list go.mod/sum file patterns
Closed
#461 go.mod / go.sum support
Closed
#37 Unexpected file changes and git access
Closed
#11 Support selecting the language by matching on the entire file name
Closed
#439 Move mgf_dev to a separate package
Closed
#448 Allow defining commutative parents using tree-sitter queries
Closed
#443 Python: support commutatively merging the __all__
declarations
Closed
#441 json file in example repo is not successfully merged
Closed
#440 Add .cc as a supported extension for C/C++
Closed
#419 Markdown: Panic in AstNode::preceding_identation
Closed
#407 Lack of preservation of leading whitespace in merges
Closed
#244 Can't build 0.6.0 using the flake
Closed
#57 Upgrading to a new version requires adding the new languages to .gitattributes
Closed
#5 Support for nested languages
Closed
#385 Submission at the Git Merge conference
Closed
#398 Rust: missing signature definition in use statements
Closed
#390 Dependecy zip v2.5.0 has been yanked
Closed
#379 Bad merge for YAML conflict with double-quoted string
Closed
#279 Tracking Issue for spork/both_modified_multiple_method_ordering_conflicts
Closed
#251 Tracking Issue for java/annotations
Closed
#356 Spurious conflicts with identical sides
Closed
#262 Bad merge in C++
Closed
#311 Tracking Issue for cpp/lack_of_conflict
Closed
#369 Writing debug files fails with "Bad file descriptor"
Closed
#224 Mangling of whitespace/comment lines in C# file occurring during rebase and cherry-pick
Closed
#320 Check the syntactic validity of conflict-free merges by parsing the output
Closed
#361 Duplicate signature detection messes up JSON syntax
Closed
#364 Even more C++ extensions
Closed
#34 Allow to specify language
Closed
#319 Error while resolving conflicts: parse error
Closed
#265 Tracking Issue for rust/docstrings
Closed
#310 Tracking Issue for cpp/method_conflict_with_comments
Closed
#299 Tracking Issue for rust/delete_delete
Closed
#164 Conflict markers changed in unresolved conflict
Closed
#276 Tracking Issue for xml/add_identical_parameters
Closed
#259 Introduction of indentation errors in conflict-free areas
Closed
#264 mergiraf solve
: --keep
should conflict with --keep-backup
Closed
#263 mergiraf solve
: rename --keep
to --stdout
Closed
#231 test(spork/conflicting_wildcard_changes): wrong diff3 conflict?
Closed
#245 --debug
only makes sense in mergiraf {merge,solve}
Closed
#232 The exact expected outputs in compact conflict representation mode are difficult to define
Closed
#87 Extra blank lines and sometimes disappearing content on merge
Closed
#225 Some of failing integration tests from Spork are in compact rendering mode
Closed
#92 Ransomware report by Trend Micro
Closed
#71 Very slow merges when lockfile in JS world is involved
Closed
#197 New command in mgf_dev
to test isomorphism between two syntax trees
Closed
#247 An incorrect merge that only occurs during git merge
but not git merge-file
/mergiraf merge
Closed
#222 Newline missing before a conflict during pretty-printing
Closed
#216 AddSeparator::AtBeginning
is never constructed
Closed
#208 Commuting lines during a merge can remove the separator between children
Closed
#213 thread 'main' panicked at src/tree_builder.rs:95:14: impossible
Closed
#96 Go: Comma added to comment during merge
Closed
#170 No spaces after lifetimes when a structured merge is rendered
Closed
#199 #195 added a conflict example to line_based.rs
, which caused Git to be confused again
Closed
#194 another issue from #27
Closed
#189 Panic on git stash pop
Closed
#163 refactor: merge MergedTree
with ClassMapping
?
Closed
#168 Release 0.5.0
Closed
#149 three_way_merge
creates MixedTree
where children
of type LineBasedMerge
have invalid contents
Closed
#180 User interface is not clear about success of merge.
Closed
#160 Failing commutative merge can lead to a panic
Closed
#6 Only let certain children of a node commute
Closed
#63 Merge resolution removes whitespace and duplicates doc comment
Closed
#30 Rust attributes and doc comments are moved between items
Closed
#26 Added field in go struct pulled into comment
Closed
#128 Support for %L
conflict marker size option
Closed
#159 Add an option to avoid creating .orig
files in the solve
command
Closed
#133 Why is duplicate signature detection optional?
Closed
#137 Name change
Closed
#124 Commutative parents with signatures
Closed
#1 Support diff2 conflict presentation
Closed
#60 *.mjs is not recognized as JS
Closed
#101 Discussion: get rid of diffy completely
Closed
#4 Use histogram diff instead of Myers diff
Closed
#84 new release?
Closed
#38 Windows Package Manager flags v0.3.1 package as a virus
Closed
#20 Consider adding python as a supported language
Closed
#36 Remove dependency to graphviz-rust crate
Closed
#58 Trailing space in elements is swallowed
Closed
#7 Replace MERGIRAF_DISABLE=1 with mergiraf=0
Closed
#42 Support explicit output file for merge
Closed
#35 mergiraf.org is down
Closed
#28 Helper script to run single test does not work
Closed
#12 Please consider pushing to crates.io
Closed
#9 Cargo.lock doesn't not match 0.2.0 on release
Closed
#21 Treat *.cc
files as C++ files
Closed
#23 Integration tests fail with git commit.gpgSign
enabled
Closed
#17 Add mergiraf-bin to AUR
Closed
#8 Add Dart support
Closed
#2 Full conflict solving capabilities for the mergiraf solve
command
164 issues created by 16 users
Opened
#1 Support diff2 conflict presentation
Opened
#2 Full conflict solving capabilities for the mergiraf solve
command
Opened
#4 Use histogram diff instead of Myers diff
Opened
#5 Support for nested languages
Opened
#6 Only let certain children of a node commute
Opened
#7 Replace MERGIRAF_DISABLE=1 with mergiraf=0
Opened
#8 Add Dart support
Opened
#9 Cargo.lock doesn't not match 0.2.0 on release
Opened
#11 Support selecting the language by matching on the entire file name
Opened
#12 Please consider pushing to crates.io
Opened
#17 Add mergiraf-bin to AUR
Opened
#20 Consider adding python as a supported language
Opened
#21 Treat *.cc
files as C++ files
Opened
#23 Integration tests fail with git commit.gpgSign
enabled
Opened
#26 Added field in go struct pulled into comment
Opened
#27 mergiraf in git merge
does not solve all conflicts it can solve with mergiraf solve
Opened
#28 Helper script to run single test does not work
Opened
#30 Rust attributes and doc comments are moved between items
Opened
#34 Allow to specify language
Opened
#35 mergiraf.org is down
Opened
#36 Remove dependency to graphviz-rust crate
Opened
#37 Unexpected file changes and git access
Opened
#38 Windows Package Manager flags v0.3.1 package as a virus
Opened
#41 Partially solved conflicts are confusing
Opened
#42 Support explicit output file for merge
Opened
#57 Upgrading to a new version requires adding the new languages to .gitattributes
Opened
#58 Trailing space in elements is swallowed
Opened
#60 *.mjs is not recognized as JS
Opened
#63 Merge resolution removes whitespace and duplicates doc comment
Opened
#66 How to review mergiraf solve
result?
Opened
#71 Very slow merges when lockfile in JS world is involved
Opened
#84 new release?
Opened
#87 Extra blank lines and sometimes disappearing content on merge
Opened
#92 Ransomware report by Trend Micro
Opened
#96 Go: Comma added to comment during merge
Opened
#101 Discussion: get rid of diffy completely
Opened
#102 Add option to accept merging files with syntax errors
Opened
#124 Commutative parents with signatures
Opened
#128 Support for %L
conflict marker size option
Opened
#133 Why is duplicate signature detection optional?
Opened
#137 Name change
Opened
#139 rust use
statement getting duplicated during conflicts
Opened
#144 Use release-plz to automate the release process
Opened
#149 three_way_merge
creates MixedTree
where children
of type LineBasedMerge
have invalid contents
Opened
#158 mergiraf solve does not terminate
Opened
#159 Add an option to avoid creating .orig
files in the solve
command
Opened
#160 Failing commutative merge can lead to a panic
Opened
#162 Solve fails during rebase: error while retrieving Base revision
Opened
#163 refactor: merge MergedTree
with ClassMapping
?
Opened
#164 Conflict markers changed in unresolved conflict
Opened
#168 Release 0.5.0
Opened
#170 No spaces after lifetimes when a structured merge is rendered
Opened
#180 User interface is not clear about success of merge.
Opened
#189 Panic on git stash pop
Opened
#194 another issue from #27
Opened
#196 Roadmap?
Opened
#197 New command in mgf_dev
to test isomorphism between two syntax trees
Opened
#198 Structured merge at the beginning of a rebase messes up formatting
Opened
#199 #195 added a conflict example to line_based.rs
, which caused Git to be confused again
Opened
#208 Commuting lines during a merge can remove the separator between children
Opened
#213 thread 'main' panicked at src/tree_builder.rs:95:14: impossible
Opened
#214 Feature request: support patch workflows for interactive mergiraf solve
Opened
#216 AddSeparator::AtBeginning
is never constructed
Opened
#222 Newline missing before a conflict during pretty-printing
Opened
#224 Mangling of whitespace/comment lines in C# file occurring during rebase and cherry-pick
Opened
#225 Some of failing integration tests from Spork are in compact rendering mode
Opened
#231 test(spork/conflicting_wildcard_changes): wrong diff3 conflict?
Opened
#232 The exact expected outputs in compact conflict representation mode are difficult to define
Opened
#241 The instructions for registering mergiraf
as a merge driver do not work properly on Powershell or CMD.exe (at least on Windows)
Opened
#242 Mergiraf meetup in Germany in 2025
Opened
#244 Can't build 0.6.0 using the flake
Opened
#245 --debug
only makes sense in mergiraf {merge,solve}
Opened
#247 An incorrect merge that only occurs during git merge
but not git merge-file
/mergiraf merge
Opened
#249 Way to add commutative parent at runtime?
Opened
#251 Tracking Issue for java/annotations
Opened
#259 Introduction of indentation errors in conflict-free areas
Opened
#260 Tracking Issue for java/left_right_class
Opened
#262 Bad merge in C++
Opened
#263 mergiraf solve
: rename --keep
to --stdout
Opened
#264 mergiraf solve
: --keep
should conflict with --keep-backup
Opened
#265 Tracking Issue for rust/docstrings
Opened
#276 Tracking Issue for xml/add_identical_parameters
Opened
#279 Tracking Issue for spork/both_modified_multiple_method_ordering_conflicts
Opened
#282 Respect Git's core.quotePath
Opened
#283 Try to ask Git for conflict_marker_size
during mergiraf solve
Opened
#299 Tracking Issue for rust/delete_delete
Opened
#309 Tracking Issue for Tracking Issues
Opened
#310 Tracking Issue for cpp/method_conflict_with_comments
Opened
#311 Tracking Issue for cpp/lack_of_conflict
Opened
#314 Tracking Issue for go/field_with_trailing_comment
Opened
#319 Error while resolving conflicts: parse error
Opened
#320 Check the syntactic validity of conflict-free merges by parsing the output
Opened
#322 Tracking Issue: Attributes and docstrings are not attached to the elements they annotate
Opened
#325 Mark all strings as atomic
Opened
#333 No encodings supported other than utf-8?
Opened
#356 Spurious conflicts with identical sides
Opened
#357 Plug-in system for language profiles
Opened
#361 Duplicate signature detection messes up JSON syntax
Opened
#364 Even more C++ extensions
Opened
#369 Writing debug files fails with "Bad file descriptor"
Opened
#370 Store test cases as files with conflicts instead of Base, Left, Right files
Opened
#373 Imitate separators from non-conflicting parts when merging commutatively
Opened
#379 Bad merge for YAML conflict with double-quoted string
Opened
#385 Submission at the Git Merge conference
Opened
#388 Bad merge due to mismatched empty argument lists in Python
Opened
#390 Dependecy zip v2.5.0 has been yanked
Opened
#398 Rust: missing signature definition in use statements
Opened
#406 Switch to the "GumTree Simple" matching algorithm
Opened
#407 Lack of preservation of leading whitespace in merges
Opened
#419 Markdown: Panic in AstNode::preceding_identation
Opened
#436 Incorrect delete/modify conflict resolution in Javascript
Opened
#437 Incorrect matching of method calls in Go
Opened
#439 Move mgf_dev to a separate package
Opened
#440 Add .cc as a supported extension for C/C++
Opened
#441 json file in example repo is not successfully merged
Opened
#443 Python: support commutatively merging the __all__
declarations
Opened
#448 Allow defining commutative parents using tree-sitter queries
Opened
#449 Documentation: don't force users to use diff3
Opened
#450 Fuzzing infrastructure for Mergiraf
Opened
#451 New language: bash
Opened
#456 Test case minimizer
Opened
#460 Known uses of mergiraf
Opened
#461 go.mod / go.sum support
Opened
#466 Display some (temporary?) text when Mergiraf takes a long time to merge a file
Opened
#467 Exclude commutatively merging of comments by default
Opened
#482 mergiraf solve
fails to resolve any conflicts when file contains multiple conflicts
Opened
#484 Commutative merging of binary operators
Opened
#485 Broader test suite for benchmarks
Opened
#487 Auto-completion for the CLI
Opened
#489 Validation of language profiles in tests
Opened
#491 Language support for Makefiles
Opened
#492 mergiraf languages
doesn't list go.mod/sum file patterns
Opened
#503 Rust: duplicate self
in use_declaration
s
Opened
#511 Mergiraf: You seem to be using Jujutsu instead of Git.
Opened
#520 Panic when one of the files to merge contains conflicts in diff2 format
Opened
#521 Panic: Revision set for ExactTree inconsistent with class mapping
Opened
#532 Panic at src/ast.rs:703:25: byte index 18446744073709548319 is out of bounds of ``
Opened
#534 Faster commutative isomorphism
Opened
#540 Java: incorrect singature for methods with an integral spread parameter
Opened
#545 bug: Insufficient delete/modified conflict detection in commutative merging
Opened
#551 Syntactically invalid files are attempted to be parsed twice
Opened
#552 Better error types
Opened
#554 Parsing issues are not detected for MISSING
tokens
Opened
#556 panic: More than 2 conflicting sides
Opened
#564 DisplaySettings
: remove diff3
?
Opened
#570 Meeting up at FOSDEM 2026
Opened
#573 Incorrect merge of import type and non-type import statements
Opened
#577 Update the docker image to include Rust 1.89.0
Opened
#581 DOS line endings (CRLF) silently turn into Unix (LF)
Opened
#586 bug: Incorrect comment bundling after a separator
Opened
#589 feat: Support bundling Python docstrings on attributes
Opened
#593 Allow falling back to zdiff3
Opened
#594 Makefile parse error
Opened
#595 New language: Clojure and EDN (LISP)
Opened
#600 Migrate to the threeway_merge crate?
Opened
#601 Rust: imports with the same signature not recongized as such
Opened
#603 bug: merge
cannot solve a conflict that solve
can
Opened
#605 feature/rust: Mark derive
macros as commutative
Opened
#606 toml: Spurious duplicate signature
Opened
#609 Stack Overflow
Opened
#610 Ignore files marked as linguist-generated=true
Opened
#612 C: Doesn't deal with macro nonsense
Opened
#613 Commutative merging when the commutative parent is absent from the base revision
Opened
#616 Bug in derive
commutativity