← Back to context

Comment by osener

5 days ago

This is cool, except I don’t want to run multiple copies of my dev stack.

GitButler does this cool thing where you can work on multiple branches at the same time, applied to the same working directory. For example you can work on the css while an agent works on the admin panel on a separate branch. It would be cool to have this with a tool like FleetCode.

I couldn't figure out this part of GitButler. I downloaded it and tried it (since I respect Scott Chacon and remember learning so much about Git from his well-written git guides).

But it was just a bit too much cognitive dissonance for me to try it.

It seems like the next big thing is parallel coding... I've tried GitButler, Spectator, Vibe-Kanban, and Conductor in the past week. And there is now FleetCode.

I liked Spectator's idea (use a separate docker container for each) but it didn't quite work right. So back to worktrees which seem to work just fine.

At some point, we will probably consolidate on 2-3 dominant tools in this space.

I wonder if even work trees will be needed if we can do a "create a copy-on-write version of my code folder" which would result in nearly zero-cost copies of the repo.

  • Somehow the GitButler workflow works great for me and it is the first VC software that made me drop Magit after a decade of daily use.

    I do not use it collaboratively. I use it to continuously ship smaller things while working on bigger pieces and I constantly move independent changes around to different “lanes” to ship frequently as parts of my work mature.

    With Magit I used staging area and amended commits continuously. With GitButler I “assign” files or chunks by dragging them into lanes as I am happy with the changes, and when I have a logical unit I commit it. Having this multiple staging areas has been a great workflow improvement as well.

can you elaborate why you don't want to run multiple copies of your dev stack? is it because you want to run your app from one place but be able to test multiple changes, vs having to install deps and start it from multiple folders?

  • Former. Otherwise I would need to have multiple database instances running, each with its own data and migrations to keep in sync. Plus I would need to re-do local env vars to hook all of this up for each worktree etc. And I often want to know how these branches play together, with GitButler I can bring these branches in and out with a single “apply to workspace” click.

    • How would having migrations in sync work when each parallel agent is (in principle) making changes to the database schema?