The sound distributed version control system

#354 [Bug?] Trivial "conflict" no resolved.

Closed on April 28, 2021
unidual on February 21, 2021

After a pijul apply, I ended up with:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-type size_t() :: non_neg_integer() .
================================
-type size_t() :: non_neg_integer() .
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

The two lines are strictly identical, no supernumerary whitespace or special character (verified with xxd).
NB: One version was put again manually, the other comes from a dependency of the applied patch.

unidual on February 21, 2021

Oh, and after fixing it manually, I got:

 pijul record
[2021-02-21T22:46:59Z ERROR libpijul::apply] Invalid change: Vertex { change: ChangeId(5LH5BHECBGTCW), start: ChangePosition(0), end: ChangePosition(0) }
Error: Invalid change

Is my repo corrupted?

pmeunier on April 28, 2021

I can finally come back to this. So, the first is probably not a bug, since Pijul doesn’t look at the contents of lines to decide whether there is a conflict, but only at the operations. Coming from Git, it may be a little counter-intuitive, but:

  1. you probably want to be warned when two independent patches touch the same line, even if they write the same (a simple example is two authors adding a field to a binary format, and both setting const FORMAT_SIZE: usize = 60 to const FORMAT_SIZE: usize = 70; there are lines of that form even in Pijul).

  2. doing otherwise would not play very nicely with other parts of the theory: suppose one of the two authors involved in the conflict (let’s say Alice) doesn’t see the conflict (because we hide it) and adds another line just after it. Would she be able to push that new line independently from Bob’s line in the conflict? I’m sure she would come and complain on this website if she couldn’t.

pmeunier closed this discussion on April 28, 2021
pmeunier on April 28, 2021

(I clicked too soon)

The other is a serious bug. I’m closing this discussion anyway because we have fixed MANY corruption bugs in Pijul (mostly in the new Sanakirja) since February, and I would be very surprised if this bug is still there.

If you still have the repositories, and can reproduce, feel free to reopen.