jj/cli
Scott Taylor c406b3a929 rebase: skip duplicate divergent commits by default
This serves a similar purpose to Git's patch ID mechanism, however it is
slightly different in that it only compares commits which have the same
change ID as each other (divergent changes), and it does a full
comparison of the commits to see if they would have identical trees if
rebased onto the same parents. Since most changes aren't divergent, I
believe this should have a negligible performance cost in most cases.

I think skipping these commits by default makes sense for `jj rebase`,
since usually this will be a helpful behavior for the user. With this
behavior, a safe first step when encountering divergent changes would be
to rebase one branch on top of the other, since that will abandon any
divergent changes that have identical contents to existing commits,
leaving behind any non-trivial divergent changes for the user to resolve
manually.
2025-05-19 22:23:32 +00:00
..
examples cli: replace ExitCode by u8 2025-05-17 05:45:59 +00:00
src rebase: skip duplicate divergent commits by default 2025-05-19 22:23:32 +00:00
testing diff: Run external diff tools in their temp dir 2025-05-12 21:34:19 +00:00
tests rebase: skip duplicate divergent commits by default 2025-05-19 22:23:32 +00:00
build.rs build: fix cargo publish by symlinking cli/docs->docs 2024-11-05 17:37:14 -08:00
Cargo.toml git: remove git2 feature 2025-05-07 19:29:20 +00:00
docs build: fix cargo publish by symlinking cli/docs->docs 2024-11-05 17:37:14 -08:00
LICENSE