Fossil Forum

dajare 2 weeks, 3 days ago

Post: Moved "repo.fossil" to new remote; cannot(?) authenticate or push

There was some chat in a different thread about alternatives to "chiselapp", and I thought I would see about using an Oracle Cloud "always free" tier VM. I got a "VM.Standard.E2.1.Micro" instance (running Ubuntu 24.04), and with a fair bit of help from my new friend, "Claude", I now have fossil running and accessible from any browser.

As part of that set-up, I used scp to upload (e.g.) "erajad.fossil" to the VM. There's very little in it, and you can see it if that helps. (There is nothing "compromising" there.)

I have added it as a remote on my local machine, and it shows up with the name oracle in the output to fossil remote ls. But I cannot push to it, nor does it appear to sync.

I've tried authenticating with the credentials I use locally, but that doesn't work, so I'm clearly misunderstanding something.

So the question, then, is: how do I go about authenticating this remote in order to push to it?

(Apologies if I've used the wrong terms here. I've read the remote-url documentation and am still lost.) Thanks!

stephan 2 weeks, 3 days ago

I've read the remote-url documentation and am still lost.)

It looks like you just need to:

$ fossil clone http://YOUR_LOGIN_NAME@THE_IP:8080/erajad

Or, if you already have a copy cloned:

$ fossil remote-url -R the-clone.fossil http://YOUR_LOGIN_NAME@THE_IP:8080/erajad

Or, if you're in a checkout of an existing clone:

$ fossil remote-url http://YOUR_LOGIN_NAME@THE_IP:8080/erajad

Fossil will prompt you for a password and offer to save it.

dajare 2 weeks, 3 days ago

Reply: Moved "repo.fossil" to new remote; cannot(?) authenticate or push

anonymous 2 weeks, 3 days ago

...I've tried authenticating with the credentials I use locally, but that doesn't work, so I'm clearly misunderstanding something.

This may be an issue with Fossil user's permissions. You can try to Login to your remote instance over the UI just to see if your admin account indeed is functional. Alternatively, you can try doing that with your locally running repo's server (fossil server). You can adjust the permissions, if lacking, locally using fossil ui.

dajare 2 weeks, 3 days ago

Thanks for the help. An update:

Or, if you're in a checkout of an existing clone:

   $ fossil remote-url http://YOUR_LOGIN_NAME@THE_IP:8080/erajad

Fossil will prompt you for a password and offer to save it.

That is what I did ... but I'm clearly either misunderstanding something, or have botched credentials. When I try to fossil push oracle I get:

Error: not authorized to write

To reiterate. From my local machine, I used scp to send the erajad.fossil repo to the remote VM. On this local machine, I am authenticated in fossil. (Additional note: the repo started life as a chiselapp repo, and I can push/update with chiselapp with no glitches.)

I did check file permissions, and they're 644 both on local machine (also Ubuntu) and remote VM.

Perhaps I should "send" the fossil repo to the VM through some different means than scp?

stephan 2 weeks, 3 days ago

Reply: Moved "repo.fossil" to new remote; cannot(?) authenticate or push

wyoung 2 weeks, 3 days ago

fossil push oracle

That will only do what you want if the remote named oracle has the login name referenced up-thread. If it's http://my-instance.oracle.cloud/blah/blah it's a URL for an anonymous clone, resulting in the error you see.

If there is a username@ bit in that URL, then I'd ssh in and say something like fossil user cap username. What do you get back?

stephan 2 weeks, 3 days ago

I did check file permissions, and they're 644 both on local machine (also Ubuntu) and remote VM.

As our anonymous contributor says, this is a fossil permissions message, not a file permissions. Since you have scp access, the easiest thing is probably:

  • ssh your-host
  • fossil user cap YOUR-USER-NAME s -R /path/to/repository.fossil

That will give your user "superuser" (a.k.a. "setup" user) access, allowing you to push.

BTW:

fossil push oracle

You shouldn't need "oracle" there unless you've set up multiple remotes and named that one oracle. The name is (in fossil) only needed when you have multiple named remotes. Edit: trust Warren's response over mine

dajare 2 weeks, 3 days ago

So for fossil user cap myname -R erajad.fossil it tells me s.

I guess that means I'm botching the credentials? :/

In this case, would it work to re-set the credentials on my local repo, so I KNOW what they are, then scp up that repo to the VM?

Or is there a better approach?

wyoung 2 weeks, 3 days ago

What's the output of fossil remote ls?

dajare 2 weeks, 3 days ago

What's the output of fossil remote ls?

$ fsl remote ls
chisel             https://chiselapp.com/user/dajare/repository/erajad
default            https://[email protected]/user/dajare/repository/erajad
oracle             http://155.248.222.158:8080/erajad/

(And the default in that listing works just fine.)

wyoung 2 weeks, 3 days ago

Yes, but you're trying to push to oracle using a URL without a user name, hence anonymous creds, hence no write access. QED.

dajare 2 weeks, 3 days ago

Ah, they don't call me the "numpty user" for nothing! :)

The light has dawned, and the push has succeeded. Many thanks for all the help given here. Much appreciated!

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button