Handmade Network»abec

Recent Activity

I've worked my way through TypeScript and especially the Visual Studio Code Extension API the past week to build such an extension for Darke Files.
It populates the Source Control menu with the status of the files in your repository and clicking on them brings up the diff view you're probably familiar with. Additionally the extension colors filenames in the editor tabs according to the file's status and adds colored gutters in a text editor to show you which lines have changed.
Replacing the CLI is explicitly a non-goal for the extension, so you'll still be using the CLI to commit changes but the extension will help you stay on top of the status of your repository and let you review changes easily before committing.
All this - and more - in the next release. &darke

Finished up work on improving Git interoperability in Darke Files today. I've rewritten the Git importer from the ground up which fixed a few bugs and uncool edge cases that were still hiding in the code. I've added a command to export a Darke Files repository to Git so you're not stuck with this version control system and can mirror your code to public software forges. And additionally both commands now support delta operations, ie. the option to only im-/export the data that changed since the last im-/export. All this - and more - in the next release. &darke

I've just released version 0.4.0 of Darke Files. The big new feature is the Scalable Repository. It lets you select exactly which older files should be saved on your computer and which should only be available on the server. Learn more in the thread.

The screenshot shows how you would configure your repository to exclude all files older than 30 days and all assets older than 7 days from your computer.

https://darke.handmade.network/ | &darke

In the next version of Darke Files you'll be able to decide exactly what files and commits to keep on your local machine. When trying to access something you don't have downloaded the CLI will let you know and helpfully spit out the command you can use to get it. In this example I've decided I only want to keep one commit in my local repository and so daf log ends up pretty short. &darke

I've just released version 0.3.2 of Darke Files. It comes with two improvements to ignoring files:
First, an all-new daf ignores command for easy viewing and editing of all file patterns you ignored (see screenshot).
Second, a rewritten-from-scratch pattern matching algorithm which now also supports patterns with ** wildcards.

https://darke.handmade.network | &darke

I added support for two-factor authentication with TOTP to Darke Files (0.3.1 just released) so if that's something you want in your security model the new release is for you. Simply get started with darke account register-mfa.

https://darke.handmade.network/ | &darke

I've released version 0.3.0 of Darke Files, my version control system. Key new features in 0.3.0 are registering accounts on a server, login and permission management for repos. Find the full changelog on the project page. Download: https://darkedev.itch.io/darke-files | Project page: https://darke.handmade.network/ | &darke

I'm currently working on repository permissions for Darke. With the next release you - as the owner of a repository - will be able to choose who may write to your repository. When write access is enforced you need to be logged-in when writing to the repo. &darke

I've released version 0.2.1 of Darke, my version control system. It's a bit of an incremental update containing fixes and additions suggested by y'all. I've also made changes to make the inner workings clearer, for example with the new /admin page on the server, pictured below. Find more info, the complete changelog, and download link over at https://darke.handmade.network/ &darke

I've just released the new version of my version control system Darke Files.

Darke Files' goal - if you haven't heard - is to scale seamlessly between a full-featured version control system and an easy-to-use file synchronization tool in a single repository. You can find more info about the programs features on the project page.

Since the first release I've done a bunch of clean-up and bug fixes, but more importantly major improvements. I've completely rewritten daf sync which gets your changes to the server easily in a single command. I've also upgraded the algorithm for merging changes to a three-way merge which allows it to deal with a few more situations automatically. The big new feature is daf info which I've already teased a week ago (see snippets on project page); with it you can process a template file (written in Go template syntax) with access to the info contained in a repository to extract whatever output you want from the repository. A list of all changes is available in the changelog file in the download package.

Download: https://darkedev.itch.io/darke-files

More info: https://handmade.network/p/213/darke/


This is probably the single most important / powerful feature in Darke. Even with everything else I have planned. &darke

With the amount of tasks in the 0.2.0 milestone for Darke actually going down I've spent the last few days unifying and improving the design system. Therefore I have finally produced something visual to show again. Below are "covers" so that the Darke products can look good on the virtual shelf. &darke

I love my beta testers for being able to put a whole bug report into a single screenshot. I'll have to make a pass over errors, not just this one but all of them. &darke

And that's a wrap. The Darke CLI is officially self-version-controlling. (if that's a word.) Bye, Git 👋

renaming a ref is really easy to do

Well, seems like this'll be a tiny rename everyone will have to make...

Importing a Git repository into Darke is done!

As already hinted at in the introduction, the differences in user identity handling between Git and Darke is a key point in this integration.

Git uses a user name and an email address to uniquely identity the person who committed a change. Darke replaces that with a Darke identity which specifies your username and Darke server in the same way an email address does. (Darke in general tries to stay away from using email for anything.)

I have implemented the options to generate such a mapping file and use it during the import process. By default darke.invalid is used as the Darke server. (That host will be handled specially in the UI.)

And that's a dry-run of the entire fast-export file done. I'm not doing anything with the data yet, just reading enough that I can skip over almost everything. Next up: Actually using some of this data, starting with the author and committer fields.

Every line read before this thing crashes is a win in my book. Let's get going!

I've been working on a version control system for the last few months. The goal is to have a system that can handle small text files as well as huge binary files while being as full-featured as Git if you want it to or as easy to use as Dropbox if you don't.

Recently I've added a few web pages to the server so I finally have something pretty to show off that isn't just the screenshot of a terminal. The image shows the history of one of my testing repositories. &darke