Pijul

Pijul Bug with Unrecording?

I was going to post this to pijul’s nest repo, but looks like I can’t (see my other recent topic).

A friend of mine had this bug with pijul. I don’t know exactly everything that happened, but I’ll give what I remember him telling me. He had local changes, and he did a pijul pull to merge in the newest patches. This resulted in conflicts. I believe he said he made a patch to fix these conflicts, but then had to unrecord that patch. This resulted in pijul erroring out with every single pijul command that he tried to do - none of the commands would work anymore. This is the backtrace:

`thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/libcore/option.rs:345:21
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:70
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:58
             at src/libstd/panicking.rs:200
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:215
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:478
   5: std::panicking::continue_panic_fmt
             at src/libstd/panicking.rs:385
   6: rust_begin_unwind
             at src/libstd/panicking.rs:312
   7: core::panicking::panic_fmt
             at src/libcore/panicking.rs:85
   8: core::panicking::panic
             at src/libcore/panicking.rs:49
   9: libpijul::diff::<impl libpijul::backend::GenericTxn<A, R>>::diff_delete
  10: libpijul::diff::<impl libpijul::backend::GenericTxn<A, R>>::diff
  11: libpijul::record::<impl libpijul::backend::GenericTxn<sanakirja::transaction::MutTxn<'env, ()>, R>>::diff_with_binary
  12: libpijul::record::<impl libpijul::backend::GenericTxn<sanakirja::transaction::MutTxn<'env, ()>, R>>::record_inode
  13: libpijul::record::<impl libpijul::backend::GenericTxn<sanakirja::transaction::MutTxn<'env, ()>, R>>::record_children
  14: libpijul::record::<impl libpijul::backend::GenericTxn<sanakirja::transaction::MutTxn<'env, ()>, T>>::record
  15: libpijul::status::unrecorded_changes
  16: pijul::commands::status::run
  17: pijul::main
  18: std::rt::lang_start::{{closure}}
  19: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:297
  20: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:87
  21: std::rt::lang_start_internal
             at src/libstd/panicking.rs:276
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  22: main
  23: __libc_start_main
  24: _start
`

If there is a way to reproduce (for instance a tarballs of the repository including the .pijul) it would be fixable. Is it Pijul 0.12?

Yes, it’s 0.12
I’ll tell my friend to upload a zip/tar here.