Keeping my local install of Mycroft up to date

This may be a non-issue, but even though I have been using Linux for many years, the same cannot be said about using git. So my question is, if there are changes to Mycroft, how would I keep my local install up to date with those changes within the git projects? Is there way within github to actually sync up my install to what is current, or do I need to clone and run the makefiles all over again each time there’s a change?

If you’re going to update, normally I’d wait for a release to happen and then ‘git pull’ down a new copy. Might complain about files not being saved, if you’ve got customization in the mycroft directory.

I have two clones of it so I can tinker with one side by side with a known good copy. (git clone URLhere mycroft && git clone URLhere mycroft2). You could also checkout a different branch after cloning, so you can save your own customizations and work (git checkout -B my-local-branch), and then swap back to dev when you want to update (git checkout dev) or something. If you’re planning on developing for mycroft, fork the repo on github (see button on the mycroft-core page), clone that repo, and then go to town.

I think @baconator assumes you are moderately familiar with git, and it’s not clear to me that you are.

“git clone” grabs a brand new copy of a project. So “git clone git@github.com:MycroftAI/mycroft-core.git” would create a new directory “mycroft-core” with the Mycroft core project source code. Then you can cd into that directory and run commands.

To update an existing copy, you can go into the directory with the code and do “git pull”. That updates your local code with all changes from the original source since the last time you did a “git clone” or “git pull”. If you get errors when you run “git pull”, the simplest thing to do is run “git reset --hard ; git clean -fd” and then run “git pull” again. The git reset and git clean commands will destroy all changes you made, but if you’re only copying the original source code and never changing anything that should be fine. Then you can run the makefile again to get the updated copy built.

(Edit: If you’re not sure, just copy the complete directory you had to a second one. That way if something goes wrong with git, you can just delete the copy you’re using and copy the other directory again.)

Good luck. git is amazing, but it’s a complicated tool and time consuming to learn. I spent a lot of time doing web searches on “git how to …” before I got comfortable with it.

1 Like

Thank you all for the responses. Yes, I am not very familiar with git, in general, even though I have been using the 'nix platform since the mid 90’s, just not git.

You have all explained it very well and succinctly, so it makes much more sense and answered my question. Thanks again.

1 Like