Anyone Interested in Storing Your Macros in a VCS (Version Control System)?

If any of you know what a (local) Version Control System is, and would like to start using one with your Keyboard Maestro macros, let me know.

For those of you who don't know what I'm talking about, this topic is not for you. At least not now - I'll explain the details at another time.

Right now I'm looking for people who have used VCS's before, and would like to be able to store all your macros, individually, in a VCS so you can keep track of changes to individual macros, roll back undesired changes, find macros you deleted, etc.

If this doesn't make sense to you, or you don't see the usefulness of this, or you think I'm talking about sharing your macros with other people, or something like that, then this is not for you.

Right now, I'm looking for those individuals who understand the usefulness of a VCS in general, have probably used them before, and can understand how it would be useful with Keyboard Maestro macros.

If this is you, and you'd be willing to help test, debug, offer constructive criticism, suggest features, etc., then please let me know.


1 Like

Updated the original post to hopefully reflect what I’m looking for.

I assume you’re talking about a communal Git? I have my personal github account (for my KM work and other stuff) and I repo interesting public gits. What would be the benefit of a communal VCS?

Yeah, my macros belong to me :astonished:

No, seriously.

I don’t have many complex macros where I’ve thought version control would be necessary. However, I have to admit, sometimes I toyed with the idea to put a macro file under version control. (Sometimes I feel the strange desire to put everything under VC, usually giving it up after a couple of weeks/days :wink:)

So yes, if you are working on something to make this more convenient for KM macros, I would be happy to test it. I know a bit Git and Fossil.

No, I’m talking about a local repository on your own computer, for your use only.

Same here. Before this, I only put JXA scripts under version control, because when I work on them, I constantly check them into VC. It’s an ingrained habit, and very useful when working on scripts. If it’s something I publish, I also export the macro(s) and put them under VC, so I know exactly what I published, and what I changed with new versions.

Not ideal, but it worked.

(Sometimes I feel the strange desire to put everything under VC…)

This is exactly my point. As a retired professional developer, I’m so used to having a VCS that being without it makes my skin crawl. It’s almost like I may not really need it, but life isn’t right without it.

Also, a while ago, I somehow lost an entire group of macros for working with HandBrake (which I still haven’t recreated), and ever since then, I’ve been jonesing to prevent future possible occurrences of that.

…usually giving it up after a couple of weeks/days

Yep, me too. Until now. :slight_smile:

I know a bit Git and Fossil.

Ultimately, which VCS you use isn’t relevant, as long as it’s file/folder-based. I use Git (note to readers: I’m talking about Git, not

Also, extensive knowledge is NOT required, which is a good thing, because I don’t possess it! (At least, not for Git.)

I also happen to use GitHub Desktop (note to readers: This is a GUI front-end which, for this situation, I use for working with local Git repositories). Only because I usually prefer working in GUIs.

So thank you for being interested. I’ll be ready to start testing this soon, and I’ll let you know.

In theory, this should be relatively easy to use. Time will tell.

Thanks again.

Anyone else?

@peternlewis - I assume you use a VCS. I know you’re really busy, but this shouldn’t take up much of your time (minutes, unless I’m mistaken), so you might find this interesting.

If you’re interested, you can PM me if you prefer. If you’re not interested, no response is necessary. I know this isn’t for everyone, and I also know all about priorities, and trying not to go down rabbit holes - not that I’m usually successful at avoiding them… :slight_smile:

Hey Dan,

This topic does interest me, because I need to break down and finally implement a VCS.

I’ve been waiting until I buy a new system, since the old MacBook Pro is so memory-poor (limited to 8GB).


Cool. I've found Git (the local version) to work really well. And for someone like you who doesn't mind the command line, you'd probably be right at home.

If you haven't tried it, it's as simple as this:

  1. Install it on your system.
  2. Pick a folder you want under version control, and open a terminal window in that folder.
  3. Type "git -init".


The rest is just learning the tools, which most of the time just means seeing what hasn't been committed, perhaps comparing to see the differences, and committing the changes.

Git doesn't use a server, or a database, or anything like that. I doubt that available memory makes much of a difference. The repository is stored in the same folder, in a hidden sub-folder:

Of course, you never need to look at these files, but it's interesting to know where it stores stuff.

What I like about GitHub Desktop (which works with local Git repositories), as opposed to the command line, is that it shows the files that have changed, and the changes in a file (with context), like this:

Pretty simple.

Anyway, I'll let you know when I'm ready.


Hey Dan,

I didn’t realize it was so easy to set up a local repository with Git, or I’d have done it already.

I too prefer a visual GUI client, and that does use my precious memory.

Maybe I’ll fool with the command-line tools for the time being.



You're welcome.

I didn't realize it was so easy to set up a local repository with Git

It's one of the main reasons it's so popular.

I too prefer a visual GUI client, and that does use my precious memory.

But only when you run it. Also, if you use Atom, it has packages that offer Git support. In fact, I just noticed this on the status line, which probably came about after the last package upgrade:

There are couple of good Git GUI clients for the Mac:

  • Atlassian’s SourceTree [free]: Overall quite good. (The client I’m using most of the time)
  • Tower [$79]: I tested the trial version for a month; it’s a tad nicer than SourceTree, but I really couldn’t justify the $. In some things SourceTree is even better.
  • GitUp [free]: Very interesting, has a special, but nice and fast UI, if you like it. Has also a “Snapshots” feature, which basically is a meta-undo on top of the Git VC.
  • GitHub Desktop [free]: The official GUI app from Github (Github is a cloud for remote Git repos). Nothing special, but works.
  • Fork [free]: A smallfootprintish GUI client, still in beta, but very promising. Nice and clean UI. Last time I used it I had some issues, but probably this is fixed now.

Ooh, I like what I see so far. I’ll continue using this and see how I like it.

Funny, I had an old version of this. I remember I was going to start working on git a few years back, so it must have been left over from then.

Tips welcome.


In SourceTree, I have to have a separate window open for each repository?

I’m regularly switching from one repository to another (Libraries, etc), and I’m not thrilled to have to open multiple windows…

OTOH, I do like that I can use Beyond Compare as my external diff tool.

You have the “master” window. You can open the repos from that window:

Right, but each repo is in a separate window.

However, I see some advantages to this, so I won’t write it off just yet.

Yes. Are you looking for tabs? You can also have your repos in tabs:

  1. Open two windows.
  2. Menu bar > Windows > Merge All Windows

Yeb, that’s what I’m looking for. Thanks.

What’s “Staging” (he asks, showing his ignorance).

In GitUp you can also use Beyond Compare:

1 Like

I don’t see this, when I have two repository windows open.