/Data/pijul2$ pijul push --repository /Data/pijul3
This seems to be interpreted as “push from pijul3 to pijul3”, which is always a no-op. This is an error. The command should complain with: “Error: Missing remote” as it does for pijul push
(w/o any arguments).
/Data/pijul2$ pijul push --repository /Data/pijul3 .
This (rightfully) means “act from pijul3; push to ‘.’ (which points to pijul2); thus, push from pijul3 to pijul2”. This is equivalent to the following shell commands:
cd /Data/pijul3
pijul push /Data/pijul2
cd /Data/pijul2
N.B. You can set your editor of choice by setting the EDITOR
or the VISUAL
environment variable, e.g. export VISUAL=emacs
before running pijul push
. VISUAL takes precedence over EDITOR should both be set.
Trying to understand the syntax of the push command, I think both push and pull need to say exactly what they are doing.
There also needs to be a good way to cancel out of an interactive command. This would especially apply to the situation described in #675 (Bringing back unrecorded patches).
The help for push says
So I wondered what the push command would do if I specified a repo and no destination.
With no destination, it said nothing to push (there was a delay while it checked though).
With a destination of
.
, it had 12 changes. I hit Ctrl Z to get out and tried Ctrl C to stop it, but that didn’t do it. I guess I should have usedkill
, but I really wanted out while in the editor. I know I could delete all lines so there would be nothing to do, but I don’t know that editor so I don’t even know how to do that. When I let it run, it pushed 12 changes. Did they go from pijul3 to pijul2? What was the first command doing?I think the command should say a bit more about direction, even including it in the comment at the top of the file.