Yesterday I tried Fossil for the first time. Using 1.29: # fossil clone https://www.fossil-scm.org/ fossil-src.fossil Round-trips: 2 Artifacts sent: 0 received: 3073 Clone finished with 3113 bytes sent, 1850717 bytes received Rebuilding repository meta-data... 100.0% complete... project-id: admin-user: root (password is "ea8bc6")
# fossil clone https://www.fossil-scm.org/ fossil-src-1.fossil Round-trips: 2 Artifacts sent: 0 received: 2895 Clone finished with 2990 bytes sent, 1760605 bytes received Rebuilding repository meta-data... 100.0% complete... project-id: admin-user: root (password is "1ee887") # fossil clone https://www.fossil-scm.org/ fossil-src-2.fossil Round-trips: 2 Artifacts sent: 0 received: 7790 Clone finished with 4355 bytes sent, 4848989 bytes received Rebuilding repository meta-data... 100.0% complete... project-id: admin-user: root (password is "0173ad") # echo 'select count(*) from blob;' | sqlite3 fossil-src.fossil 3076 # echo 'select count(*) from blob;' | sqlite3 fossil-src-1.fossil 2893 # echo 'select count(*) from blob;' | sqlite3 fossil-src-2.fossil 7843 The three tries were all done within a few minutes of each other. Each time, Fossil reported that the clone finished, but produced different results. Today I tried again, and got a more plausible amount of data: # fossil clone https://www.fossil-scm.org/ fossil-src-3.fossil Round-trips: 7 Artifacts sent: 0 received: 28536 Clone finished with 1678 bytes sent, 23157937 bytes received Rebuilding repository meta-data... 100.0% complete... project-id: CE59BB9F186226D80E49D1FA2DB29F935CCA0333 admin-user: root (password is "a86ba5") # echo 'select count(*) from blob;' | sqlite3 fossil-src-3.fossil 28435 This time, I learned that a blank project-id apparently means the clone didn't actually finish, which means all three downloads yesterday failed. Yesterday, the network probably dropped some packets. But it's misleading, at least for a new user, for Fossil to report that the clone finished when it actually didn't. It would be useful for the server to send a top-level hash of all the data, before sending the data, so the client can verify it after the download, and not report that the clone finished if the hash doesn't verify. Since Fossil already treehashes everything, and the file format spec says repository synchronization uses a ‟cluster” with a top-level hash of all the data, I don't see why the cluster wouldn't be sent first, and the full tree verified after the download. BTW it would be useful to send the total size in advance too, so the client can show a progress report. _______________________________________________ fossil-users mailing list [email protected] http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

