I'm looking at ways to sync my code across computers, so it can be used and edited on either.

I currently code in:

  • R
  • python
  • sql developer

What would be the best way to do this. I was looking at using Git Kraken, as I have a used it a small amount before.



In general the best way to develop any code is to use a Version Control System. As long as the version control system is hosted in a shared resource, such as online, then any computers with access to that shared resource will have access to the latest changes that have been committed (and in some cases pushed) to that resource and can make changes, commit (and possibly push) those changes to a) preserve those changes & b) make them available to other computers &/or developers.

That said you next need to distinguish between:

  • The Version Control System Software
  • The hosting service &
  • The client software.

Popular examples of the Version Control Software include:

  • git
  • mercurial
  • Bazaar
  • Subversion
  • Many more

Issues to consider include:

  1. Personal Preferences
  2. Usability & Support
  3. Cost although many are available free some others are very pricey
  4. Available hosting solutions

But consideration needs to be made on the basis of:

  1. Cost e.g. While GitHub is free for public repositories there are charges for private ones.
  2. Availability & Accessibility (e.g. Can you access it from all of the locations that you might need to access it from)
  3. Security & Privacy
  4. Support for your preferred version control software

The hosting service can be any of:

  • A shared computer or your own server
  • Services such as GitHub, GitLab & many others
  • In the case of distributed version control systems such as git, mercurial, etc. you can simply use shared media or even email to pass the changes around as well as or instead of a central server.

Your client software is what you use to commit your changes, etc., GitKracken is one example for git. You need to consider:

  • Support for your chosen VCS
  • Cost (lots of free options available)
  • Usability
  • Availability on the platform(s) that you are developing on and may need to develop on in the future.

It is also worth noting that many IDEs and even some editors include clients for one or more of the popular VCS systems.

If you are developing this software as a part of your work there may be other constraints to consider.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.