Fossil Forum

danshearer 1 week, 1 day ago

Post: libfossil can now do a network clone of the fossil repo!

Congratulations to Stephan Beal, whose years of work on libfossil have resulted in a very complete, independent implementation of Fossil. By reading Stephan's extensive comments in the code I was able to tidy up a couple of bugs and voila, as of today the f-clone command works:

fsl_msg INFO: Sync URL: https://fossil-scm.org/home
fsl_msg CONNECT: starting trip #1
fsl_msg INFO: Remote fossil version is 22900 20260701 163431
fsl_msg INFO: Got new project code: CE59BB9F186226D80E49D1FA2DB29F935CCA0333
fsl_msg CONNECT: starting trip #2
fsl_msg CONNECT: starting trip #3
fsl_msg CONNECT: starting trip #4
fsl_msg CONNECT: starting trip #5
fsl_msg CONNECT: starting trip #6
fsl_msg CONNECT: starting trip #7
fsl_msg CONNECT: starting trip #8
fsl_msg CONNECT: starting trip #9
fsl_msg CONNECT: starting trip #10
fsl_msg CONNECT: starting trip #11
fsl_msg CONNECT: starting trip #12
fsl_msg CONNECT: starting trip #13
Rebuild complete in 67542 steps.  
fsl_xfer metrics:
Cards read:      67,574
    cfile        67,451
    clone_seqno  13
    igot         84
    pragma       13
    push         13

Cards written:   27
    clone        13
    pragma       27
    pull         12

Bytes written:           2,242
Bytes read uncompressed: 47,402,691
Largest card payload:    2,459,404

fsl_xfer timers (ms):
    Purpose            Wall       CPU        User       System  
    fsl_sc::submit()   37717.092  480.579    250.103    230.476  
    fsl_sc::read()     250.270    229.215    207.206    22.009  
    processing         4588.857   4549.279   4118.018   431.261  
    --------------------------------------------------------------------------------
                     = 42556.219  5259.073   4575.327   683.746  

libfossil is about correctness, massively so. That is why Stephan has discovered oddities and corner cases over the years about Fossil cards, the delta process etc, and why he has authored a lot of the documentation about Fossil internals. It is libfossil that inspired the current experiments creating IETF RFCs for Fossil, and as of today this extends to the network protocol too.

--
Dan Shearer
[email protected] / https://shearer.org/

stephan 1 week, 1 day ago

I was able to tidy up a couple of bugs and voila, as of today the f-clone command works:

i cannot overstate what a milestone that is for the project. Sync has been the "last major missing piece" for more than a decade. To be clear for those reading along, sync isn't 100% working, but Dan getting clone to work solves the issues which have been roadblocks for sync since about a year. We've still some work to do on the sync support, but the path forward is clear and, fingers crossed, free of further major whack-a-moles in the post-sync processing of blobs.

My many thanks to Dan for his whacking of the offending moles!

He also, in his spare time, added a proper HTTP(S) transport binding via libssl, whereas the prototype code was shelling out to curl for that.

Keyboard Shortcuts

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