summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Davison <dandavison7@gmail.com>2021-11-29 23:20:08 -0500
committerDan Davison <dandavison7@gmail.com>2021-12-05 11:25:05 -0500
commite7294060ef3b8af0d2307eea4359123232f85646 (patch)
tree1b0fa102f2cb6d924910d7d6413a432eab58b582
parent006fcec271874a8e7a1ae2bb0375599edd136874 (diff)
Example diffs
-rw-r--r--etc/examples/189-merge-conflict.1.diff38
-rw-r--r--etc/examples/189-merge-conflict.2.diff100
-rw-r--r--etc/examples/189-merge-conflict.3.diff41
-rw-r--r--etc/examples/189-merge-conflict.4.diff16
-rw-r--r--etc/examples/189-merge-conflict.5.diff17
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 @@
+diff --cc src/paint.rs
+index 79b44db1,0f429d5c..00000000
+--- a/src/paint.rs
++++ b/src/paint.rs
+@@@ -387,30 -457,36 +387,88 @@@ impl<'p> Painter<'p> 
+ ) -> (Option<BgFillMethod>, Style) {
+ // style: for right fill if line contains no emph sections
+ // non_emph_style: for right fill if line contains emph sections
+++<<<<<<< HEAD
+ + let (style, non_emph_style) = match state {
+ + State::HunkMinus(None) | State::HunkMinusWrapped => {
+ + (config.minus_style, config.minus_non_emph_style)
+ + }
+ + State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),
+ + State::HunkPlus(None) | State::HunkPlusWrapped => {
+ + (config.plus_style, config.plus_non_emph_style)
+ + }
+ + State::HunkMinus(Some(_)) | State::HunkPlus(Some(_)) => {
+ + let style = if !diff_sections.is_empty() {
+ + diff_sections[diff_sections.len() - 1].0
+++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)
+++ let (style, non_emph_style) = match state {
+++ State::HunkMinus(None) | State::HunkMinusWrapped => {
+++ (config.minus_style, config.minus_non_emph_style)
+++ }
+++ State::HunkMinus(Some(raw_line)) => {
+++ // TODO: This is the second time we are parsing the ANSI sequences
+++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {
+++ let style = Style {
+++ ansi_term_style,
+++ ..Style::new()
+++ };
+++ (style, style)
+++ } else {
+++ (config.minus_style, config.minus_non_emph_style)
+++ }
+++ }
+++ State::HunkZero | State::HunkZeroWrapped => (config.zero_style, config.zero_style),
+++ State::HunkPlus(None) | State::HunkPlusWrapped => {
+++ (config.plus_style, config.plus_non_emph_style)
+++ }
+++ State::HunkPlus(Some(raw_line)) => {
+++ // TODO: This is the second time we are parsing the ANSI sequences
+++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {
+++ let style = Style {
+++ ansi_term_style,
+++ ..Style::new()
+++ };
+++ (style, style)
+++=======
++ let non_emph_style = match state {
++ State::HunkMinus(None) | State::HunkMinusWrapped => config.minus_non_emph_style,
++ State::HunkMinus(Some(raw_line)) => {
++ // TODO: This is the second time we are parsing the ANSI sequences
++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {
++ Style {
++ ansi_term_style,
++ ..Style::new()
++ }
++ } else {
++ config.minus_non_emph_style
++ }
++ }
++ State::HunkZero | State::HunkZeroWrapped => config.zero_style,
++ State::HunkPlus(None) | State::HunkPlusWrapped => config.plus_non_emph_style,
++ State::HunkPlus(Some(raw_line)) => {
++ // TODO: This is the second time we are parsing the ANSI sequences
++ if let Some(ansi_term_style) = ansi::parse_first_style(raw_line) {
++ Style {
++ ansi_term_style,
++ ..Style::new()
++ }
+++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)
+ } else {
+++<<<<<<< HEAD
+ + config.null_style
+ + };
+ + (style, style)
+++||||||| parent of 4d4b19ca (Always use non-emph style for right fill)
+++ (config.plus_style, config.plus_non_emph_style)
+++ }
+++=======
++ config.plus_non_emph_style
++ }
+++>>>>>>> 4d4b19ca (Always use non-emph style for right fill)
+ }
+- State::Blame(_, _) => (diff_sections[0].0, diff_sections[0].0),
+- _ => (config.null_style, config.null_style),
+- };
+- let fill_style = if style_sections_contain_more_than_one_style(diff_sections) {
+- non_emph_style // line contains an emph section
+- } else {
+- style
++ State::Blame(_, _) => diff_sections[0].0,
++ _ => config.null_style,
+ };
++ let fill_style = non_emph_style;
+ 
+ match (
+ fill_style.get_background_color().is_some(),
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)) =