Pijul

Vague error when trying to push to a remote repo

I’m trying to set up remote (SSH) repo. I have

  1. installed pijul on both machines, server and client.
  2. successfully cloned a repo from server to client.
  3. successfully added and recorded changes on client.

unsuccessfully tried to to push changes from client to server by command:

$ pijul push
Password for key "id_rsa":
✓ Updating remote changelist
Error: No such file or directory (os error 2)

Also with the command:

$ RUST_LOG="pijul=debug" pijul push
[2021-01-11T18:16:16Z DEBUG pijul::repository] "/home/path/to/repo/.pijul"
[2021-01-11T18:16:16Z DEBUG pijul::commands::pushpull] Config { current_channel: Some("main"), default_remote: Some("user@host:~/path/to/repo"), remotes: {}, hooks: Hooks { record: [] } }
[2021-01-11T18:16:16Z DEBUG pijul::commands::pushpull] remote_channel = "main" None
[2021-01-11T18:16:16Z DEBUG pijul::remote::ssh] ssh_remote: Captures({0: Some("user@host:~/path/to/repo"), 1: None, 2: Some("user@"), "user": Some("user"), 4: Some("host"), "host": Some("host"), 6: None, 7: None, 8: Some("host"), 9: Some(":"), 10: None, "port": None, "path": Some("~/path/to/repo")})
[2021-01-11T18:16:16Z DEBUG pijul::remote] unknown_remote, ssh = Remote { addr: "user@host:~/path/to/repo", host: "host", path: "~/path/to/repo", config: Config { user: "user", host_name: "host.hostname.com", port: 22, identity_file: None, proxy_command: None, add_keys_to_agent: No } }
Password for key "id_rsa":
⠁ Updating remote changelist
[2021-01-11T18:16:29Z DEBUG pijul::remote] update_changelist
[2021-01-11T18:16:29Z DEBUG pijul::remote::ssh] get_state
[2021-01-11T18:16:29Z DEBUG pijul::remote::ssh] run_protocol
[2021-01-11T18:16:29Z DEBUG pijul::remote::ssh] msg = WindowAdjusted { new_size: 2097152 }
[2021-01-11T18:16:29Z DEBUG pijul::remote::ssh] msg = Success
[2021-01-11T18:16:29Z DEBUG pijul::remote::ssh] run_protocol done
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] data ChannelId(2) 56
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] state: State
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] s = Split(SplitInternal { start: 0, end: 56, matcher: CharSearcher { haystack: "0 U5DWRVLW7TXD7EARG5YGBFGMSO5Q75XTUFOB2NOY73P2LJ5APPOAC\n", finger: 0, finger_back: 56, needle: ' ', utf8_size: 1, utf8_encoded: [32, 0, 0, 0] }, allow_trailing_empty: true, finished: false })
[2021-01-11T18:16:30Z DEBUG pijul::remote] update changelist 1
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] download_changelist
⠉ Updating remote changelist
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] data ChannelId(2) 111
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] state changelist
[2021-01-11T18:16:30Z DEBUG pijul::remote::ssh] line = "0.GLWZXL5CONXMLT6UI3FXNPOBZIONSTMNB3UQRL2BYKSXZEK6763AC.U5DWRVLW7TXD7EARG5YGBFGMSO5Q75XTUFOB2NOY73P2LJ5APPOAC"
[2021-01-11T18:16:30Z DEBUG pijul::remote] data = "0.GLWZXL5CONXMLT6UI3FXNPOBZIONSTMNB3UQRL2BYKSXZEK6763AC.U5DWRVLW7TXD7EARG5YGBFGMSO5Q75XTUFOB2NOY73P2LJ5APPOAC"
✓ Updating remote changelist
[2021-01-11T18:16:30Z DEBUG pijul::commands::pushpull] to_upload = ["Z35WNDO7BSWPJ2CCIP3YLW6GQWTIL3SNCEHB52AGYIS44DHIBX5AC"]
[2021-01-11T18:16:45Z DEBUG pijul::commands::pushpull] to_upload = ["Z35WNDO7BSWPJ2CCIP3YLW6GQWTIL3SNCEHB52AGYIS44DHIBX5AC"]
[2021-01-11T18:16:45Z DEBUG pijul::remote::ssh] upload_changes
[2021-01-11T18:16:45Z DEBUG pijul::remote::ssh] "Z35WNDO7BSWPJ2CCIP3YLW6GQWTIL3SNCEHB52AGYIS44DHIBX5AC"
[2021-01-11T18:16:45Z DEBUG pijul::remote::ssh] extended data Ok("Error: No such file or directory (os error 2)\n"), 1
Error: No such file or directory (os error 2)

The error message given seems too general and would like to know how to to handle the situation.

Hi, and welcome here. First, that message comes from the remote end, and there are many places it could come from:

  • How did you install Pijul on the server? If it isn’t on the standard path, you may want to set the REMOTE_PIJUL environment variable to tell Pijul about the path (to push to my local machine, I would need to do REMOTE_PIJUL=/home/me/.cargo/bin/pijul pijul push me@localhost:/path/to/my/repository.

  • The remote repository may also be incorrect.

In any case, adding an indication about the fact that the message comes from the remote would already be pretty useful, would you mind reporting that on pijul/pijul - Discussions? Thanks!