Flags such as push, pull, clone should have a output as they are running. This gives information on what the program is going for. It should have outputs like, for the push command
Connecting to nest.pijul.com... Sending <WHATEVER NUMBER OF PATCHES>.... Done
Or something like that
If a user runs a
pijul pull <some URL> when he/she is up to date with it. Some output should come like
Connecting to nest.pijul.com... Everything is up to date
Also, for the clone subcommand, I recommend telling what steps did the program took instead of saying what patches it applied. Example output:-
Connecting to nest.pijul.com... Downloading patches... Applying patches.... Done
pull and a conflict occurs, there should be some output telling about those files. A
pijul status subcommand would be amazing
My next target on this project is fixing the issues with SSH. This is a very fine suggestion, thanks.
Done, thanks! The “indicatif” crate is fantastic (the name is cool too).
Yeah. It’s great but there are some weird output going on
Downloading changes Applying changes Outputting repository
Cloning channel Downloading changes Outputting repository
I am running the
Also, why the pull command only tells about downloading changes and not about applying them
Why are there spaces in some lines.
There’s a little spinner spinning next to “Cloning channel”. I think it is less intuitive if “Cloning channel” moves to the left at the end. Maybe we could replace the spinner with something else once it’s done.
Is there any specific reason to have different output for different protocols
Yes. Not all protocols implement the same functions. For example, in order to implement the channel cloning feature (which is supposed to be faster than cloning and applying), HTTP 1.1 should open a websocket, which makes everything super complicated both on the server and on the client.
But SSH allows that, so we can use the faster thing.