diff options
author | Dan Davison <dandavison7@gmail.com> | 2021-11-29 23:20:08 -0500 |
---|---|---|
committer | Dan Davison <dandavison7@gmail.com> | 2021-12-05 11:25:05 -0500 |
commit | e7294060ef3b8af0d2307eea4359123232f85646 (patch) | |
tree | 1b0fa102f2cb6d924910d7d6413a432eab58b582 | |
parent | 006fcec271874a8e7a1ae2bb0375599edd136874 (diff) |
Example diffs
-rw-r--r-- | etc/examples/189-merge-conflict.1.diff | 38 | ||||
-rw-r--r-- | etc/examples/189-merge-conflict.2.diff | 100 | ||||
-rw-r--r-- | etc/examples/189-merge-conflict.3.diff | 41 | ||||
-rw-r--r-- | etc/examples/189-merge-conflict.4.diff | 16 | ||||
-rw-r--r-- | etc/examples/189-merge-conflict.5.diff | 17 |
5 files changed, 212 insertions, 0 deletions
diff --git a/etc/examples/189-merge-conflict.1.diff b/etc/examples/189-merge-conflict.1.diff new file mode 100644 index 00000000..b9751de3 --- /dev/null +++ b/etc/examples/189-merge-conflict.1.diff @@ -0,0 +1,38 @@ +diff --cc src/handlers/merge_conflict.rs +index 8fc4116b,eb115dde..00000000 +--- a/src/handlers/merge_conflict.rs ++++ b/src/handlers/merge_conflict.rs +@@@ -88,8 -88,10 +88,20 @@@ fn paint_buffered_merge_conflict_lines + .map(|s| (s.to_string(), State::HunkMinus(None, None))) + .collect(); + for plus_lines in &[&lines[Ours], &lines[Theirs]] { +++<<<<<<< HEAD + + let plus_lines = plus_lines.iter().collect(); + + let a = 1; +++||||||| cf306705 +++ let plus_lines = plus_lines +++ .iter() +++ .map(|s| (s.to_string(), State::HunkMinus(None, None))) +++ .collect(); +++======= ++ let plus_lines = plus_lines ++ .iter() ++ .map(|s| (s.to_string(), State::HunkMinus(None, Some(7)))) ++ .collect(); +++>>>>>>> z-189-combined-diff-and-conflicts-merge-conflict-branch-2 + paint::paint_minus_and_plus_lines( + MinusPlus::new(&minus_lines, &plus_lines), + line_numbers_data, +@@@ -97,7 -99,7 +109,12 @@@ + output_buffer, + config, + ); +++<<<<<<< HEAD + + let b = 2; +++||||||| cf306705 +++======= ++ let b = 9; +++>>>>>>> z-189-combined-diff-and-conflicts-merge-conflict-branch-2 + output_buffer.push_str("\n\n"); + } + Ok(()) diff --git a/etc/examples/189-merge-conflict.2.diff b/etc/examples/189-merge-conflict.2.diff new file mode 100644 index 00000000..6a846a6f --- /dev/null +++ b/etc/examples/189-merge-conflict.2.diff @@ -0,0 +1,100 @@ +[1mdiff --cc src/paint.rs[m +[1mindex 79b44db1,0f429d5c..00000000[m +[1m--- a/src/paint.rs[m +[1m+++ b/src/paint.rs[m +[36m@@@ -387,30 -457,36 +387,88 @@@[m [mimpl<'p> Painter<'p> [m + ) -> (Option<BgFillMethod>, Style) {[m + // style: for right fill if line contains no emph sections[m + // non_emph_style: for right fill if line contains emph sections[m +[32m++<<<<<<< HEAD[m +[32m + let (style, non_emph_style) = match state {[m +[32m + State::HunkMinus(None) | State::HunkMinusWrapped => {[m +[32m + (config.minus_style, config.minus_non_emph_style)[m +[32m + }[m +[32m + State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),[m +[32m + State::HunkPlus(None) | State::HunkPlusWrapped => {[m +[32m + (config.plus_style, config.plus_non_emph_style)[m +[32m + }[m +[32m + State::HunkMinus(Some(_)) | State::HunkPlus(Some(_)) => {[m +[32m + let style = if !diff_sections.is_empty() {[m +[32m + diff_sections[diff_sections.len() - 1].0[m +[32m++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)[m +[32m++ let (style, non_emph_style) = match state {[m +[32m++ State::HunkMinus(None) | State::HunkMinusWrapped => {[m +[32m++ (config.minus_style, config.minus_non_emph_style)[m +[32m++ }[m +[32m++ State::HunkMinus(Some(raw_line)) => {[m +[32m++ // TODO: This is the second time we are parsing the ANSI sequences[m +[32m++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {[m +[32m++ let style = Style {[m +[32m++ ansi_term_style,[m +[32m++ ..Style::new()[m +[32m++ };[m +[32m++ (style, style)[m +[32m++ } else {[m +[32m++ (config.minus_style, config.minus_non_emph_style)[m +[32m++ }[m +[32m++ }[m +[32m++ State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),[m +[32m++ State::HunkPlus(None) | State::HunkPlusWrapped => {[m +[32m++ (config.plus_style, config.plus_non_emph_style)[m +[32m++ }[m +[32m++ State::HunkPlus(Some(raw_line)) => {[m +[32m++ // TODO: This is the second time we are parsing the ANSI sequences[m +[32m++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {[m +[32m++ let style = Style {[m +[32m++ ansi_term_style,[m +[32m++ ..Style::new()[m +[32m++ };[m +[32m++ (style, style)[m +[32m++=======[m +[32m+ let non_emph_style = match state {[m +[32m+ State::HunkMinus(None) | State::HunkMinusWrapped => config.minus_non_emph_style,[m +[32m+ State::HunkMinus(Some(raw_line)) => {[m +[32m+ // TODO: This is the second time we are parsing the ANSI sequences[m +[32m+ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {[m +[32m+ Style {[m +[32m+ ansi_term_style,[m +[32m+ ..Style::new()[m +[32m+ }[m +[32m+ } else {[m +[32m+ config.minus_non_emph_style[m +[32m+ }[m +[32m+ }[m +[32m+ State::HunkZero | State::HunkZeroWrapped => config.zero_style,[m +[32m+ State::HunkPlus(None) | State::HunkPlusWrapped => config.plus_non_emph_style,[m +[32m+ State::HunkPlus(Some(raw_line)) => {[m +[32m+ // TODO: This is the second time we are parsing the ANSI sequences[m +[32m+ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {[m +[32m+ Style {[m +[32m+ ansi_term_style,[m +[32m+ ..Style::new()[m +[32m+ }[m +[32m++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)[m + } else {[m +[32m++<<<<<<< HEAD[m +[32m + config.null_style[m +[32m + };[m +[32m + (style, style)[m +[32m++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)[m +[32m++ (config.plus_style, config.plus_non_emph_style)[m +[32m++ }[m +[32m++=======[m +[32m+ config.plus_non_emph_style[m +[32m+ }[m +[32m++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)[m + }[m +[31m- State::Blame(_, _) => (diff_sections[0].0, diff_sections[0].0),[m +[31m- _ => (config.null_style, config.null_style),[m +[31m- };[m +[31m- let fill_style = if style_sections_contain_more_than_one_style(diff_sections) {[m +[31m- non_emph_style // line contains an emph section[m +[31m- } else {[m +[31m- style[m +[32m+ State::Blame(_, _) => diff_sections[0].0,[m +[32m+ _ => config.null_style,[m + };[m +[32m+ let fill_style = non_emph_style;[m + [m + match ([m + fill_style.get_background_color().is_some(),[m diff --git a/etc/examples/189-merge-conflict.3.diff b/etc/examples/189-merge-conflict.3.diff new file mode 100644 index 00000000..a9600510 --- /dev/null +++ b/etc/examples/189-merge-conflict.3.diff @@ -0,0 +1,41 @@ +diff --cc Makefile +index 759070d,3daf9eb..0000000 +--- a/Makefile ++++ b/Makefile +@@@ -4,13 -4,16 +4,37 @@@ build + lint: + cargo clippy + +++<<<<<<< Updated upstream + +test: unit-test end-to-end-test + + + +unit-test: + + cargo test + + + +end-to-end-test: build + + bash -c "diff -u <(git log -p) <(git log -p | target/release/delta --color-only | perl -pe 's/\e\[[0-9;]*m//g')" +++||||||| constructed merge base +++test: +++ cargo test +++ bash -c "diff -u <(git log -p) \ +++ <(git log -p | delta --width variable \ +++ --tabs 0 \ +++ --retain-plus-minus-markers \ +++ --commit-style plain \ +++ --file-style plain \ +++ --hunk-style plain \ +++ | ansifilter)" ++======= ++ test: ++ cargo test --release ++ bash -c "diff -u <(git log -p) \ ++ <(git log -p | target/release/delta --width variable \ ++ --tabs 0 \ ++ --retain-plus-minus-markers \ ++ --commit-style plain \ ++ --file-style plain \ ++ --hunk-style plain \ ++ | ansifilter)"> /dev/null +++>>>>>>> Stashed changes + + release: + @make -f release.Makefile release diff --git a/etc/examples/189-merge-conflict.4.diff b/etc/examples/189-merge-conflict.4.diff new file mode 100644 index 00000000..d88ea2e2 --- /dev/null +++ b/etc/examples/189-merge-conflict.4.diff @@ -0,0 +1,16 @@ +diff --cc src/handlers/merge_conflict.rs +index 888eee8b,7ea2e9d3..00000000 +--- a/src/handlers/merge_conflict.rs ++++ b/src/handlers/merge_conflict.rs +@@@ -5,7 -5,7 +5,11 @@@ use crate::utils::process + impl<'a> StateMachine<'a> { + pub fn handle_merge_confict_line(&mut self) -> std::io::Result<bool> { + self.painter.emit()?; +++<<<<<<< HEAD + + // hello +++======= ++ // bye +++>>>>>>> b + let mut handled_line = false; + if matches!(self.state, State::Unknown) { + if let Some(process::CallingProcess::GitShow(_, extension)) = diff --git a/etc/examples/189-merge-conflict.5.diff b/etc/examples/189-merge-conflict.5.diff new file mode 100644 index 00000000..8e9ddab9 --- /dev/null +++ b/etc/examples/189-merge-conflict.5.diff @@ -0,0 +1,17 @@ +diff --cc src/handlers/merge_conflict.rs +index 888eee8b,7ea2e9d3..00000000 +--- a/src/handlers/merge_conflict.rs ++++ b/src/handlers/merge_conflict.rs +@@@ -5,7 -5,7 +5,12 @@@ use crate::utils::process + impl<'a> StateMachine<'a> { + pub fn handle_merge_confict_line(&mut self) -> std::io::Result<bool> { + self.painter.emit()?; +++<<<<<<< HEAD + + // hello +++||||||| e641341d +++======= ++ // bye +++>>>>>>> b + let mut handled_line = false; + if matches!(self.state, State::Unknown) { + if let Some(process::CallingProcess::GitShow(_, extension)) = |