Rollup merge of #126125 - dev-ardi:conflict-markers, r=estebank

Improve conflict marker recovery

<!--
If this PR is related to an unstable feature or an otherwise tracked effort,
please link to the relevant tracking issue here. If you don't know of a related
tracking issue or there are none, feel free to ignore this.

This PR will get automatically assigned to a reviewer. In case you would like
a specific user to review your work, you can assign it to them by using

    r​? <reviewer name>
-->
closes #113826
r? ```@estebank``` since you reviewed #115413
cc: ```@rben01``` since you opened up the issue in the first place
This commit is contained in:
Matthias Krüger 2024-06-21 09:12:34 +02:00 committed by GitHub
commit 73cc4eca56
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 196 additions and 101 deletions

View File

@ -2965,9 +2965,10 @@ impl<'a> Parser<'a> {
/// This checks if this is a conflict marker, depending of the parameter passed. /// This checks if this is a conflict marker, depending of the parameter passed.
/// ///
/// * `>>>>>` /// * `<<<<<<<`
/// * `=====` /// * `|||||||`
/// * `<<<<<` /// * `=======`
/// * `>>>>>>>`
/// ///
pub(super) fn is_vcs_conflict_marker( pub(super) fn is_vcs_conflict_marker(
&mut self, &mut self,
@ -2997,14 +2998,18 @@ impl<'a> Parser<'a> {
} }
pub(crate) fn err_vcs_conflict_marker(&mut self) -> PResult<'a, ()> { pub(crate) fn err_vcs_conflict_marker(&mut self) -> PResult<'a, ()> {
// <<<<<<<
let Some(start) = self.conflict_marker(&TokenKind::BinOp(token::Shl), &TokenKind::Lt) let Some(start) = self.conflict_marker(&TokenKind::BinOp(token::Shl), &TokenKind::Lt)
else { else {
return Ok(()); return Ok(());
}; };
let mut spans = Vec::with_capacity(3); let mut spans = Vec::with_capacity(3);
spans.push(start); spans.push(start);
// |||||||
let mut middlediff3 = None; let mut middlediff3 = None;
// =======
let mut middle = None; let mut middle = None;
// >>>>>>>
let mut end = None; let mut end = None;
loop { loop {
if self.token.kind == TokenKind::Eof { if self.token.kind == TokenKind::Eof {
@ -3025,29 +3030,50 @@ impl<'a> Parser<'a> {
} }
self.bump(); self.bump();
} }
let mut err = self.dcx().struct_span_err(spans, "encountered diff marker"); let mut err = self.dcx().struct_span_err(spans, "encountered diff marker");
err.span_label(start, "after this is the code before the merge"); match middlediff3 {
if let Some(middle) = middlediff3 { // We're using diff3
err.span_label(middle, ""); Some(middlediff3) => {
err.span_label(
start,
"between this marker and `|||||||` is the code that we're merging into",
);
err.span_label(middlediff3, "between this marker and `=======` is the base code (what the two refs diverged from)");
} }
None => {
err.span_label(
start,
"between this marker and `=======` is the code that we're merging into",
);
}
};
if let Some(middle) = middle { if let Some(middle) = middle {
err.span_label(middle, ""); err.span_label(middle, "between this marker and `>>>>>>>` is the incoming code");
} }
if let Some(end) = end { if let Some(end) = end {
err.span_label(end, "above this are the incoming code changes"); err.span_label(end, "this marker concludes the conflict region");
} }
err.help(
"if you're having merge conflicts after pulling new code, the top section is the code \
you already had and the bottom section is the remote code",
);
err.help(
"if you're in the middle of a rebase, the top section is the code being rebased onto \
and the bottom section is the code coming from the current commit being rebased",
);
err.note( err.note(
"for an explanation on these markers from the `git` documentation, visit \ "conflict markers indicate that a merge was started but could not be completed due \
<https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>", to merge conflicts\n\
to resolve a conflict, keep only the code you want and then delete the lines \
containing conflict markers",
); );
err.help(
"if you're having merge conflicts after pulling new code:\n\
the top section is the code you already had and the bottom section is the remote code\n\
if you're in the middle of a rebase:\n\
the top section is the code being rebased onto and the bottom section is the code \
coming from the current commit being rebased",
);
err.note(
"for an explanation on these markers from the `git` documentation:\n\
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>",
);
Err(err) Err(err)
} }

View File

@ -2,20 +2,25 @@ error: encountered diff marker
--> $DIR/enum-2.rs:3:1 --> $DIR/enum-2.rs:3:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `|||||||` is the code that we're merging into
LL | x: u8, LL | x: u8,
LL | ||||||| LL | |||||||
| ------- | ------- between this marker and `=======` is the base code (what the two refs diverged from)
LL | z: (), LL | z: (),
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | y: i8, LL | y: i8,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/enum.rs:2:1 --> $DIR/enum.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | Foo(u8), LL | Foo(u8),
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | Bar(i8), LL | Bar(i8),
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/fn-arg.rs:3:1 --> $DIR/fn-arg.rs:3:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | x: u8, LL | x: u8,
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | x: i8, LL | x: i8,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/item-with-attr.rs:2:1 --> $DIR/item-with-attr.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | fn foo() {} LL | fn foo() {}
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | fn bar() {} LL | fn bar() {}
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/item.rs:1:1 --> $DIR/item.rs:1:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | fn foo() {} LL | fn foo() {}
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | fn bar() {} LL | fn bar() {}
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/statement.rs:10:1 --> $DIR/statement.rs:10:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | S::foo(); LL | S::foo();
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | S::bar(); LL | S::bar();
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/struct-expr.rs:6:1 --> $DIR/struct-expr.rs:6:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | x: 42, LL | x: 42,
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | x: 0, LL | x: 0,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/struct.rs:2:1 --> $DIR/struct.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | x: u8, LL | x: u8,
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | x: i8, LL | x: i8,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/trait-item.rs:2:1 --> $DIR/trait-item.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | fn foo() {} LL | fn foo() {}
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | fn bar() {} LL | fn bar() {}
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/tuple-struct.rs:2:1 --> $DIR/tuple-struct.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | u8, LL | u8,
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | i8, LL | i8,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/unclosed-delims-in-macro.rs:2:1 --> $DIR/unclosed-delims-in-macro.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
... ...
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | () { // LL | () { //
LL | >>>>>>> 7a4f13c blah blah blah LL | >>>>>>> 7a4f13c blah blah blah
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,13 +2,17 @@ mod tests {
#[test] #[test]
<<<<<<< HEAD <<<<<<< HEAD
//~^ ERROR encountered diff marker //~^ ERROR encountered diff marker
//~| NOTE after this is the code before the merge //~| NOTE between this marker and `=======`
//~| NOTE conflict markers indicate that
//~| HELP if you're having merge conflicts
//~| NOTE for an explanation on these markers //~| NOTE for an explanation on these markers
fn test1() { fn test1() {
======= =======
//~^ NOTE //~^ NOTE between this marker and `>>>>>>>`
fn test2() { fn test2() {
>>>>>>> 7a4f13c blah blah blah >>>>>>> 7a4f13c blah blah blah
//~^ NOTE above this are the incoming code changes //~^ NOTE this marker concludes the conflict region
} }
} }

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/unclosed-delims.rs:3:1 --> $DIR/unclosed-delims.rs:3:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
... ...
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
... ...
LL | >>>>>>> 7a4f13c blah blah blah LL | >>>>>>> 7a4f13c blah blah blah
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error

View File

@ -2,17 +2,22 @@ error: encountered diff marker
--> $DIR/use-statement.rs:2:1 --> $DIR/use-statement.rs:2:1
| |
LL | <<<<<<< HEAD LL | <<<<<<< HEAD
| ^^^^^^^ after this is the code before the merge | ^^^^^^^ between this marker and `=======` is the code that we're merging into
LL | bar, LL | bar,
LL | ======= LL | =======
| ------- | ------- between this marker and `>>>>>>>` is the incoming code
LL | baz, LL | baz,
LL | >>>>>>> branch LL | >>>>>>> branch
| ^^^^^^^ above this are the incoming code changes | ^^^^^^^ this marker concludes the conflict region
| |
= help: if you're having merge conflicts after pulling new code, the top section is the code you already had and the bottom section is the remote code = note: conflict markers indicate that a merge was started but could not be completed due to merge conflicts
= help: if you're in the middle of a rebase, the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased to resolve a conflict, keep only the code you want and then delete the lines containing conflict markers
= note: for an explanation on these markers from the `git` documentation, visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts> = help: if you're having merge conflicts after pulling new code:
the top section is the code you already had and the bottom section is the remote code
if you're in the middle of a rebase:
the top section is the code being rebased onto and the bottom section is the code coming from the current commit being rebased
= note: for an explanation on these markers from the `git` documentation:
visit <https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_checking_out_conflicts>
error: aborting due to 1 previous error error: aborting due to 1 previous error