Я не опытный пользователь инструментов SCM, хотя, конечно, убежден в их полезности.
Я использовал какой-то непонятный коммерческий инструмент на прежней работе, Perforce на текущей, и немного поиграл с TortoiseSVN для своих маленьких личных проектов, но мне не нравилось иметь много папок .svn повсюду, делая поиск, резервное копирование и многое другое. сложно.
Затем я обнаружил интерес к распределенной SCM и решил пойти по-видимому более простым (чем git) Mercurial, но все же для моих личных, индивидуальных потребностей. Я нахожусь в процессе обучения правильному использованию, прочитав часть вики и находясь в середине превосходной книги в формате PDF.
Я вижу часто повторяющиеся, например, в Методы работы Mercurial , ", не стесняйтесь использовать несколько деревьев локально. Mercurial делает это быстро и легко. " и " для каждой функции, над которой вы работаете, создайте новое дерево.".
Это интересные и разумные советы, но они немного мешают моим маленьким привычкам с централизованным SCM, где у нас есть «священный» центральный репозиторий, где ветки тщательно планируются (и обрабатываются администраторами), списки изменений должны проверяться (старшими) коллегами и не должны ломать сборки и т. д. :-) Начало работы над новой веткой занимает довольно много времени ...
Итак, у меня есть два вопроса в свете вышесказанного:
Насколько практично делать много клонов в контексте IDE и тому подобного? Что если в проекте есть файлы конфигурации / настроек, make-файлы или сценарии Ant, сценарии оболочки или что-то еще, требующие обновления пути? (да, вероятно, плохая идея ...) Например, в Eclipse, если я хочу скомпилировать и запустить клон, мне нужно сделать еще один проект, настроить путь сборки Java, цели Run / Debug и т. д. , Если плагин Eclipse не облегчит эту задачу. Я скучаю по чему-то здесь?
Как это масштабируется? Я прочитал Hg в порядке для больших баз кода, но я озадачен. На моей работе у нас есть Java-приложение (ну, несколько вокруг большого общего ядра) примерно в 2 миллиона строк, весом около 110 МБ только для кода. Создание чистой компиляции на моей старой (2004 г.) рабочей станции Windows занимает около 15 минут, чтобы сгенерировать 50 МБ файлов классов! Я не вижу себя клонирующим весь проект, чтобы изменить 3 файла. Так какие здесь практики?
Я еще не видел, чтобы эти вопросы рассматривались в моих чтениях, поэтому я надеюсь, что это создаст полезную тему.