The sound distributed version control system

#395 Error: pristine corrupt

Closed on April 28, 2021
dnaq on March 24, 2021

A repository created with pijul 1.0.0-alpha.38 cannot be used by pijul 1.0.0-alpha.40 or over.

$ pijul --version
pijul 1.0.0-alpha.38
$ pijul init .
$ echo foo > a && pijul add a && pijul record -m 'foo'
Hash: CPBKYQJQQVJEX4COSBT4HEATZPDUI32BF7SF3BOSMB6IUESSKELAC

$ pijul --version
pijul 1.0.0-alpha.46
$ pijul log
Error: Pristine corrupt
$ echo bar >> a
$ pijul record
Nothing to record

I have reproduced the same behaviour with alpha.40, but I don’t remember if the error message about corrupt pristine was printed.

tankf33der on March 25, 2021

38 is too old. Try repeat on new one.

tankf33der on March 25, 2021

38 is too old. Try repeat on new one.

dnaq on March 25, 2021

That’s not really helpful given that the repository I’m trying to save the history from has this issue.

tankf33der on March 25, 2021

@dnaq, upgrade pijul.

dnaq on March 25, 2021

That’s what I did, and that’s why I can’t access my repo anymore.

tankf33der on March 25, 2021

I cant imagine how you recorded a file without add command between init and record.

You must recreate a repo, yes, this is sad but true in alpha stage of progress and latest version is 48 for now.

dnaq on March 25, 2021

I know pijul is in alpha, but in what world is repo incompatibility between versions and no quick way to migrate/convert not a bug that would warrant an issue on an issue tracker?

The repo works fine with the old version of pijul , so the newer versions don’t corrupt it at least.

pmeunier on April 28, 2021

It is a bug, but we won’t provide converters, unfortunately.

I used to make converters for format changes, and stopped, because they weren’t used by many people. Here are the guarantees we can provide at the moment:

  • Changes will probably never change again before 1.0. They are stable for the feature set we want, and might (or might not) be upgraded in a distant future to accommodate cooler features such as text moves.
  • The network protocol is probably not fully stable, but is forward-compatible, since it has a minimal set of features. This means that you can push changes to the Nest (or to any remote machine with any 1.0-alpha version of Pijul, including the latest one) with your old Pijul, upgrade Pijul, and clone it back.
  • If you use the Nest, we’ll take care of converting the repositories you store here (but you don’t need to care). This is actually one of the main reasons I built the Nest: so that there would be at least one stable reference for all repositories.
pmeunier closed this discussion on April 28, 2021