Система синхронизации и система контроля версий - это две разные вещи, отвечающие различным потребностям.
Как программист, вы хотите иметь контроль над своим кодом. Если вам не нужно синхронизировать что-либо еще, не беспокойтесь о синхронизации, так как она, очевидно, не обеспечит контроль версий (который сам может использоваться для синхронизации). В этом случае вы можете просто перейти на контроль версий. И если вам нужно синхронизировать другие вещи, вам все равно понадобится контроль версий. Поэтому я настоятельно рекомендую сначала настроить некоторые версии кода, а затем подумать о синхронизации. Код без контроля версий ... совершенно неверный.
Теперь, если вы используете централизованное управление версиями, вам придется выбрать сервер. Затем вам придется сделать резервную копию этого сервера, потому что у вас будет только текущая версия кода на другом компьютере. Вот почему я бы посоветовал вам поискать распределенный контроль версий. Git или Hg (Mercurial) подойдет. Таким образом, у вас есть полная история версий кода на обоих компьютерах. Если кто-то умирает, вы ничего не теряете (по крайней мере, кода!).
НО, если вы хотите синхронизировать ВСЕГДА, использование централизованной системы контроля версий не так уж и плохо, поскольку вы можете просто синхронизировать ее файлы с другим компьютером. Таким образом, у вас есть централизованное + автоматическое резервное копирование. Все еще распределенный будет иметь больше гибкости, когда вы передумаете.
Это ваш вызов. Я предлагаю распределенную систему (Git или Hg ... они очень похожи, и у них есть системы хеширования, которые усложняют повреждение их кодовых баз), а затем посмотрите, что вы делаете с синхронизацией, если она вам действительно нужна.