Pijul

Importing a darcs repository?

Does anyone know of a way to import a darcs repository into pijul? (My apologies if this is in the manual and/or help screens and I missed it.) While I could manually output all the patches in unified-diff format, save them to separate files, apply each of those files one by one to a new pijul repository, and record each one with the time stamp of the original darcs patches, an automated solution would be preferable with regards to both time and error-risk reduction.

Thanks in advance.

[P.S.: Even the ability to import a single patch would be sufficient because I could then build from there. In fact, single patch importation might even be preferable since it would permit One to mirror a darcs repository in a pijul one.]

Good question! We don’t have that at the moment, but it would be really cool to have. However, Pijul patches contain more information than Darcs’, so we can’t do much better than replaying the patches in Darcs.

A simple bash script with pijul add -r . and pijul record will work. If you know Rust, I can even help you write an external command to make it a bit more robust (and incremental).

Regretfully, I am unfamiliar with Rust but I might be able to at least cobble together a tool in another language as a stop gap where that tool converts the Darcs patch into a patch Pijul recognizes, presuming I can then apply the Pijul patches without interaction from the User. Is that a viable plan? If so, is there a formal syntax/grammar for such non-interaction patches?

Hmm, as I type this I have taken a second look at pijul record --help. I think it would be possible to extract the author name and time stamp from the darcs patch (presuming I can get one) as well as the message. So, I think the idea is at least viable which means the trick would be getting the Darcs patches first.

You say there is additional information in Pijul patches than in Darcs ones; what sort of information are we talking about?

(The more I think about this, the more I am leaning towards making this into one which will allow mirroring in either direction. But one step at a time.)