threads / discuss / 63178

Why merge conflict block is located at the wrong place?

Subject: Why merge conflict block is located at the wrong place?

## tl;dr

3 messages between Mar 22, 2025 and Mar 24, 2025.

replies: 2people: 3as markdown or json

Eugen Konkov· Mar 22, 2025, 23:16 UTC · lore
Hello Git,
I got this merge conflict:
```
sub alter_field {
  my ($from_field, $to_field, $options) = @_;
  die "Can't alter field in another table"
      if ($from_field->table->name ne $to_field->table->name);
<<<<<<< HEAD
  my $generator = _generator($options);
  my @out;
||||||| parent of 1bfbcdad (Introduce and use Postgres in-database schemas)
    die "Can't alter field in another table"
        if($from_field->table->name ne $to_field->table->name);
=======
    die "Can't alter field in another table"
        if($from_field->table->qualified_name ne $to_field->table->qualified_name);
>>>>>>> 1bfbcdad (Introduce and use Postgres in-database schemas)
  # drop geometry column and constraints
  push @out, drop_geometry_column($from_field, $options), drop_geometry_constraints($from_field, $options),
      if is_geometry($from_field);
```
But I expect it to be like this:
```
sub alter_field {
  my ($from_field, $to_field, $options) = @_;
<<<<<<< HEAD
  die "Can't alter field in another table"
      if ($from_field->table->name ne $to_field->table->name);
||||||| parent of 1bfbcdad (Introduce and use Postgres in-database schemas)
    die "Can't alter field in another table"
        if($from_field->table->name ne $to_field->table->name);
=======
    die "Can't alter field in another table"
        if($from_field->table->qualified_name ne $to_field->table->qualified_name);
>>>>>>> 1bfbcdad (Introduce and use Postgres in-database schemas)
  my $generator = _generator($options);
  my @out;
    # drop geometry column and constraints
  push @out, drop_geometry_column($from_field, $options), drop_geometry_constraints($from_field, $options),
      if is_geometry($from_field);
```
Why merge conflict block is located at the wrong place?
git version 2.49.0
-- 
Best regards,
Eugen Konkov
brian m. carlson· Mar 23, 2025, 09:08 UTC · re: Eugen Konkov · lore

Re: Why merge conflict block is located at the wrong place?

On 2025-03-22 at 23:16:49, Eugen Konkov wrote:
> Hello Git,
Hi,
> Why merge conflict block is located at the wrong place?

I think it's a little hard for us to comment on why this happens without a reproducible testcase. Do you perhaps have a public repository that you're working with that you can use to demonstrate this, or a shell script that shows the problem?

-- 
brian m. carlson (they/them)
Toronto, Ontario, CA
Junio C Hamano· Mar 24, 2025, 05:39 UTC · re: brian m. carlson · lore

Re: Why merge conflict block is located at the wrong place?

"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 11 quoted lines
> On 2025-03-22 at 23:16:49, Eugen Konkov wrote:
>> Hello Git,
>
> Hi,
>
>> Why merge conflict block is located at the wrong place?
>
> I think it's a little hard for us to comment on why this happens without
> a reproducible testcase.  Do you perhaps have a public repository that
> you're working with that you can use to demonstrate this, or a shell
> script that shows the problem?
We do not necessarily need a full repository, though.

It is sufficient to make the contents of the three blob objects involved in the merge (i.e. the version in the common ancestor, and the versions in ours and in theirs) available in order to let anybody reproduce the symptom with "git merge-file", and that would give us a chance to check the same input with "merge" from the RCS suite to see if the output in question is really unreasonable or if the expectation is skewed.

← back to recent threads