Hello,

It  isn't possible  to  do fossil  sync/pull/push  --once anymore  after
cloning a  repository if the Fossil  user does not match  the local user
due to this change:

http://www.fossil-scm.org/index.html/info/64aa75260f48781c

This is what happens...

Here, the new URL is properly parsed and stored in g.url:

http://www.fossil-scm.org/index.html/artifact/912d6a207a3e070b?ln=123

Then a few lines later it calls user_select():

http://www.fossil-scm.org/index.html/artifact/912d6a207a3e070b?ln=130

Because the user  that is now setup  in the database does  not match the
local user, and no other checks in user_select() match, it falls through
to attempting to load the URL calling url_parse(0,0)

http://www.fossil-scm.org/index.html/artifact/58a793626f84fb38?ln=379

which gets  parsed and then overwrites  g.url with the stored  URL. This
results in a failure to sync to the desired URL.

Notice here  that it  tried to sync  to 8080 when  it should  have tried
8081:

$ fossil sync --once http://remote:8081/
cannot connect to host remote:8080
Sync finished with 0 bytes sent, 0 bytes received

This is  because it wasn't able  to identify the user---the  user in the
database does not match my local  login, so user_select() tries to parse
the  URL  stored  in  the  database  to  use  that  instead).  Prior  to
[64aa75260f48781c] it was possible to sync to any remote URL.

I actually would like to  revert [64aa75260f48781c] but there are others
that prefer this behavior. :-)

Thoughts for a fix?

It  seems onerous  to  require people  to add  an  additional user  that
matches their local login  to be able to sync to  other instances of the
same project.

Perhaps when cloning both a default user that matches the URL user *and*
a user that matches the local login should be created?

Thanks,

Andy
-- 
TAI64 timestamp: 400000005345ae91


_______________________________________________
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