I have several projects on my development system – some projects are open source, and (herein lies the ‘problem’), use their own revision control system (RCS).
At last count, the different RCSs on my development machine are:
- CVS
- SVN
- mercurial
- git
- …
Its difficult enough, trying to remember and master the commands for a single system – so I am considering ‘ditching’ them all and settling for one – well not quite ditching them all, I’ll explain further.
Ideally, I would like to:
-
have ONE system which I use for everything – i.e. checking in my code changes and running diffs against previous versions stored in MY repository. I call this my MASTER RCS
-
still be able to update the code in a specific project – using whatever revision control system its authors are using (mercurial, git or whatever), after I have resolved any conflicts etc and made sure that the updated code builds, then I want to check the updated code into my MASTER RCS. This will of course mean that I will need to keep around the different RCS which I will call the SLAVE RCS.
In terms of backing up stuff, its only the data stored in the MASTER RCS that I will back up.
Now for my question:
Is the scheme I propose possibly? (I can’t see why not) – but there may be gotchas that I may not be aware of – I will appreciate any tips on what to be aware of and what to avoid.
BTW, I am thinking of using SVN as the MASTER RCS. If you can think of reasons of not using SVN (i.e. choosing another MASTER RCS) I’d be interested in hearing your reasons.
Your idea of using SVN as the MASTER RCS sounds good to me too. Given that there are tools like git-svn (allows using git and svn together) and HgSubversion (https://www.mercurial-scm.org/wiki/WorkingWithSubversion) available, you should be able to get this setup done.