化石:未授权写

时间:2015-02-11 06:48:17

标签: fossil

我做错了什么?我意识到我没有读过任何用户管理,但我完全是本地的,并且我自己从未创建任何用户,所以为什么它不起作用?

pc@pc-desktop:~/Desktop$ ./fossil test-hash-passwords test-fossil 
pc@pc-desktop:~/Desktop$ ./fossil server
Listening for HTTP requests on TCP port 8080


pc@pc-desktop:~/testcheckout$ ./fossil clone http://localhost:8080 bla
pc@pc-desktop:~/testcheckout$ ./fossil add .
current directory is not within an open checkout
pc@pc-desktop:~/testcheckout$ ./fossil open bla
pc@pc-desktop:~/testcheckout$ ./fossil add .
pc@pc-desktop:~/testcheckout$ ./fossil test-hash-passwords test-fossil 
pc@pc-desktop:~/testcheckout$ ./fossil push
Push to http://localhost:8080
Round-trips: 1   Artifacts sent: 0  received: 0
Error: not authorized to write
Round-trips: 1   Artifacts sent: 0  received: 0
Push finished with 385 bytes sent, 303 bytes received

3 个答案:

答案 0 :(得分:4)

[我无法发表评论,但......] 您还可以在克隆存储库时添加用户凭据:

fossil clone http://username:pass@URL:8080 repository_name

我是唯一一个处理我项目的人,因此我设置了自动同步 - 每当我提交时,我都可以提交本地并一步发送远程[仅化石提交]。

答案 1 :(得分:2)

您收到该错误是因为您没有权限修改远程存储库。如果您不提供任何凭据,则使用您的登录名(在这种情况下为pc),并且pc用户可能在远程存储库中不存在(或者您已收到密码提示)。

要使其工作,您需要在远程存储库中创建一个帐户,并在执行fossil push时使用这些凭据。

答案 2 :(得分:0)

查看以下内容是否适合您。

boolean isNumber = record.get("key").type().equals(session.typeSystem().NUMBER());

克隆远程存储库(本地用户名$ whoami pc $ fossil version This is fossil version 1.34 [62dcb00e68] 2015-11-02 17:35:44 UTC ,在远程存储库上有一个同名帐户。)

pc

此克隆的远程存储库URL是什么?

$ fossil clone http://localhost:8080 bla.fossil

好的,我们指定远程用户名;我们将使用与本地用户名相同的$ fossil remote-url -R bla.fossil http://localhost:8080

$USER

让我们开始工作:

$ fossil remote-url -R bla.fossil http://$USER@localhost:8080
password for bla:
remember password (Y/n)? y

最后,提交到本地存储库$ mkdir bla $ cd bla $ fossil open ../bla.fossil 。最后,推送到远程:

bla.fossil

因为$ fossil push 现在有了用户名(并且在提示时你记住了密码),所以它应该有效。