Thus said Arseniy Terekhin on Sat, 24 Sep 2016 01:17:23 +0300:

> f ci
> Autosync:  http://fossil-scm.org/
> Round-trips: 1   Artifacts sent: 0  received: 0
> *** time skew *** server is slow by 2.7 minutes
> Pull done, sent: 366  received: 283  ip: xx.xx.xx.xxx
> continue in spite of time skew (y/N)? y
> C:\Windows\notepad.exe "./ci-comment-B5483EC133DB.txt"
> New_Version: f1b8192ce1d8ed845149ee9f63193c82b1fdbc67
> Autosync:  http://fossil-scm.org/
> Round-trips: 1   Artifacts sent: 2  received: 0
> Error: not authorized to write
> Round-trips: 1   Artifacts sent: 2  received: 0
> Sync done, sent: 646  received: 311  ip: xx.xx.xx.xxx
> Autosync failed.
> 
> Autosync has failed, and the reason is not specified.

The reason is there, you just have to look back a few lines of output to
see the  failure. Maybe  Error: should  be ERROR: to  make it  easier to
single out.

> f sync
> Sync with http://fossil-scm.org/
> Round-trips: 1   Artifacts sent: 0  received: 79
> *** time skew *** server is slow by 2.7 minutes
> Sync done, sent: 516  received: 2507  ip: xx.xx.xx.xxx

This is  due to some  client sync optimization  code that only  tries to
sync content once (working as designed):

http://www.fossil-scm.org/index.html/artifact/7d011291275f5e5a82a06df1fcc5bde9554a75ea?txt=1&ln=837-853

Below is  a simple test  that shows that  it does eventually  get pushed
once authorized.

Here's the failure during autosync:

$ fossil ci -m trial
Autosync:  http://localhost:8080/
Round-trips: 1   Artifacts sent: 0  received: 0
Pull done, sent: 283  received: 365  ip: 127.0.0.1
New_Version: 255ae3258fdc3b65147c28245dc5bf86f7fc7833
Autosync:  http://localhost:8080/
Round-trips: 1   Artifacts sent: 2  received: 0
Error: not authorized to write
Round-trips: 1   Artifacts sent: 2  received: 0
Sync done, sent: 525  received: 394  ip: 127.0.0.1
Autosync failed.

If I try to sync, it doesn't try to push:

$ fossil sync
Sync with http://localhost:8080/
Round-trips: 1   Artifacts sent: 0  received: 0
Sync done, sent: 417  received: 406  ip: 127.0.0.1

Now, let's set remote-url to include a username and try again:

$ fossil remote-url http://amb@localhost:8080/
password for amb: 
remember password (Y/n)? y
http://amb@localhost:8080/
$ fossil sync
Sync with http://amb@localhost:8080/
Round-trips: 2   Artifacts sent: 2  received: 0
Sync done, sent: 1053  received: 830  ip: 127.0.0.1

Notice that now it pushed.

What  allowed  this to  happen  is  that  during  the sync,  the  client
requested a  push/pull and announced  artifacts that it has  in ``igot''
cards. It got  a response that indicated the client  isn't authorized to
push. (I believe this is not necessarily considered an error because the
sync was anonymous.) Then after getting authorization in the remote-url,
the client again announced the unsent content as ``igot'' and the server
requested them.

Notice that an error is ignored on the first round-trip:

http://www.fossil-scm.org/index.html/artifact/7d011291275f5e5a82a06df1fcc5bde9554a75ea?txt=1&ln=2313


> Hope my feedback doesn't look rude.

Not at all, I  think it's fine feedback. In the  case of autosync, there
are actually two operations happening, and the error message is actually
printed at  the end of the  first operation (the push),  perhaps it just
wasn't ugly enough to be noticed?

Does this clarify?

Thanks,

Andy
-- 
TAI64 timestamp: 4000000057e6ceee


_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to