Я працював з сирими латками, RCS, CVS, SS, SVN, Git. Всі вони сумісні між собою, тобто (лінійну) історію якоїсь гілки репозиторію можна перетворити в набір латок і навпаки. Але Git найзручніший з них. З іншого боку, Git дуже незручний коли щось пішло не так, і потрібно розібратися чому так сталося і як виправити проблему, не втрачаючи новостворений код. А в GIT досить легко наступити на граблі. Наприклад, якщо під час коміту була допущена помилка, то можна змінити історію через --amend і пушнути її на сервер, але тоді якщо колеги чи CI встигли стягнути помилкову версію коміта, то у них виникнуть конфлікти при наступній синхронізації через різну історію і потрібне буде ручне втручання. А якщо колеги зробили rebase поверх помилкового коміта чи зробили нову гілку, то вони можуть сильно образитись і навіть дати по сраці, бо вони можуть втратити свої зміни.