đź“ŁPostmark has been acquired by ActiveCampaign
x

Refined Repository Export in Beanstalk

Hi there. My name is Ilya Sabanin and I’m the lead Beanstalk developer. This is my first blog post here, even though I have worked at Wildbit since April (and really enjoying it). I plan to post some more stuff about our development process, improvements and new features in Beanstalk, and other interesting stuff.

Today I want to introduce the refined repository export in Beanstalk.

Initially the repo export was implemented as plain link that started file downloading immediately after you click it. This means that the export file (that is a compressed tarball) was generated at the time of the request.

That solution worked fine, while Beanstalk was young, repositories were small and export was used rarely. But now, while we grow faster than we could imagine and have tens of thousands of repositories, that solution appeared to be a problem. Large exports require more time than HTTP request timeout could allow, so sometimes exports failed.

Well, not anymore!

Starting from today we have a special export daemon running in background on our server, watching for new exports every ten seconds or so.

When you request a new export, the daemon will handle the export operation for you and save the result to your account storage. Then you can just click a link and download the file to your computer. Works like a charm!

We especially love how user gets notified on the “export in progress” page when export finishes. The page updates automatically with a green check-mark icon, saying that your export finished. It’s like a “ding!” in your microwave oven :)

Successful repository export

Now try exporting your repository too!