0

I am developing a software using Qt in Ubuntu 14.04. It is big project and I do it on leisure time. I have a single laptop and though I connect to internet, I don't like to store my code files in the cloud.

Is there a Linux (preferably installable in Ubuntu) software that performs version controlling without needing to connect to a server (i.e. the VCS repository is on the device itself)?

If possible add whether a GUI component exists for that software.

  • 2
    ⓐ Do you confuse ‘SVN’ (that is proper name of specific software) with ‘VCS’ (version control system in general)? – Dmitry Alexandrov Sep 30 '14 at 10:00
  • 1
    ⓑ If you do, then any version control system: SVN, GNU Bazaar, Git, Mercurial, etc. If you do not, then SVN, its repository can be local as well. – Dmitry Alexandrov Sep 30 '14 at 10:08
  • Sorry I didn't know VCS is the idea and SVN is a specific software that employs it. I will give SVN/GNU Bazaar a try. Does GIT has local repository? – Sathish Sep 30 '14 at 11:17
  • Yes, all of VCS, I know, can store repository in local FS; Git and Hg actually can not work without doing it, afaik, they are pure DVCS. – Dmitry Alexandrov Sep 30 '14 at 11:35
6

I think for your project Git is fitted best. Especially on Linux, it is...

  • easy to install: apt-get install git / yum install git
  • easy to get started with (just change into your projects top directory and run git init creates your local repository (a single sub-directory named .git inside the main directory)) and easy to maintain
  • powerful, but nobody forces you to use all the power
  • a simple GUI comes along (gitk), for a beginner I recommend to install an additional tool like gitcola
  • to get started, there's a nice free and open source book available in multiple languages: Pro Git
  • in case you want to have the repository backed up, or decide to work together with other people, you can easily setup a "remote master" later on, be it on a hosted server or just another of your machines reachable via network

Though it sounds a bit overwhelming, it's not too hard to start with (especially when following up the linked book). I did that a while ago, and am glad about it. For a starter, you can concentrate on a handful of commands (or simply use the GUIs to guide you), such as git init (creating a repo), git add (adding files to your "staging area" whenever they've been modified), git commit (to commit staged changes), git status (obviously to check the current status of your working directory), and git checkout (to retrieve files from your repository). Then, along the lines of your work, always peek a little deeper in the parameters to those commands, to get more out of it.

gitk gitcola
gitk ships with Git itself / gitcola is available as separate package with most distributions (click images for larger variants)

Git is pretty wide-spread, so in case you need help with it, that should be easy to find. It's also pretty well supported, so you'll find plenty of tools to enhance your setup. Many more arguments I could list up here – but then you wouldn't read my answer as it would get too long :)

  • 1
    Plus, all technical merits aside, Github is probably the most popular code-sharing site right now. So if you learn git, you can play well with others. – Kevin Krumwiede Nov 25 '15 at 6:25

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.