First experience & Pijul diff

Hi all!

Since I had some time during my holidays, I played a bit with Pijul beta-6 and carefully read the documentation and the command line help.

Obviously, I stumbled upon the immense difference there is to deal with a set of patches compared to a list of commits. I got a bug, also reported by others on Discourse (something related to channel switching and a need to reset to get my working copy in sync). I have acknowledged the missing docs
(where is tag?) and the ambiguous command line help (channel new to create an empty channel but you have an --empty option to create an empty channel, OK…).

Overall, playing with Pijul, I noticed how the user experience was not “fluid”. The commands are not always where you expect them or not doing what you expect them to do (cf. About Pijul diff below). Sometime you need to use two or three commands to do a “simple” (user point of view) thing.

Then I read some more, but this time, about Darcs and it seems to me that Darcs’ user experience is more “reasonable”. I know Darcs and Pijul do not have exactly the same set of features. But I would have assumed more inspiration from Darcs’ commands :thinking:

Anyway, let’s talk about Pijul diff!

First of all, I am like many, in favor of a status command. As a user, when I want a status of my working copy, I want any piece of information than can help me decide my next actions. Things like modified and untrack files are just the baseline. Useful stuffs could be :

  • What is my current channel?
  • Am I, in a middle of some actions with conflicted files?
  • what commands can help me to get out of a tight situation?
  • Do my remotes have changed?

I do not think, even if it makes sense in the code, that this should be the responsibility of the diff command. But you know, what could be the responsibility of a diff command? The support for a Unix Diff like output.

There are lots of tools, that can deal with a Unix Diff output and Pijul could benefit from them. Lately, I was reviewing an editor plugin to show VCS markers and the lack of support for a Unix Diff output makes it impossible to use.

With beta announcements, with videos and articles we are getting the attention of a lot of people. This post is just the experience report of a newcomer and a reminder of what needs polishing on the road to a major release.