Improve Uploading Experience
The main goal of the patch is to improve the upload experience of repositories that are larger in size, e.g. 300MB and 3GB.
This is achieved by a series of changes, outlined in each commit, and summarised here:
- Dynamic timeouts for fetching by passing the timeout through the use
Io::FetchandControl::Open. This removes theDEFAULT_CHANNEL_TIMEOUTand we now default toFETCH_TIMEOUTwhen it’s not specified. - The
Emitteris moved to theradiclecrate for re-use inradicle-fetchandradicle-node. - Introduce events for the
upload-packprocess. - Change the
callmethod for the socket stream to usecrossbeam-channelso that events can be subscribed to indefinitely but received with a timeout. - The default value of
FETCH_TIMEOUTis increased to 1 hour to allow the larger repositories to finish announcing and being cloned by seeds when initialised. - Improve
rad initto report theupload-packevents.
The main goal of the patch is to improve the upload experience of repositories that are larger in size, e.g. 300MB and 3GB.
This is achieved by a series of changes, outlined in each commit, and summarised here:
- Dynamic timeouts for fetching by passing the timeout through the use
Io::FetchandControl::Open. This removes theDEFAULT_CHANNEL_TIMEOUTand we now default toFETCH_TIMEOUTwhen it’s not specified. - The
Emitteris moved to theradiclecrate for re-use inradicle-fetchandradicle-node. - Introduce events for the
upload-packprocess. - Change the
callmethod for the socket stream to usecrossbeam-channelso that events can be subscribed to indefinitely but received with a timeout. - The default value of
FETCH_TIMEOUTis increased to 1 hour to allow the larger repositories to finish announcing and being cloned by seeds when initialised. - Improve
rad initto report theupload-packevents.
Changes:
- remove timeout from control frame
Changes:
- Use
LineIterfor streaming semantics - Improve the
Progresstype to be anenum - Minor clean up from other review feedback
Changes:
- Simplify error reporting
- Remove logging of RemoteProgress
- Simplify UploadPack event enum
Changes:
- remove unused upload pack event errors
Changes:
- rebased
- fixed documentation