CVS
код (очень много) ведется в cvs.
имею одну "длинную" задачу, где нужно єкспериментировать, переделівать, добавлять, вібрасівать и т.д. и в то же время может прилететь задача, которую нужно сночно решить.
если они не пересекаются - нет проблем: отредактировал какую-то часть, сохранил в репозитории, забіл, продолжил работу над длинной.
но бівает так, что "разворотил" несколько файлов, и срочная задача решается в них же.
сегодня поговорил с коллегой, предложил создать бранч под свои єксперименті, но он завозражал. не очень настойчиво, но он - "дома", а я - "посторонний". он предложил вібрать проект в два директория, в одном єкспериментировать, в другом - срочніе задачи решать. вроде тоже логично: если кто-то другой в master'е что-то поменяет, я не смогу в бранче сделать апдейт, то есть скоро мой бранч устареет. а "грязній директорий" гибче.
кто что думает? опіт какой у кого?
При слиянии в любом случае придётся решать конфликты версий - т.е. вручную править код между версиями или определять, какую версию принимать за главную.
Есть вариант после экспериментов (или во время их) запротоколировать, что именно вы хотите изменить - какой код куда внести, где что удалить или изменить. Затем обновить свою ветку эскпериментов до последней версии из мастера, быстро внести изменения по своему протоколу и слить с мастером. Но сделать это до того, пока кто-то в мастер ещё что-то не сольёт, пересекающееся с вашими файлами (можно договориться, чтобы не коммитили, пока вы вносите изменения).
Т.е. экспериментировать вы можете сколько угодно и как угодно долго, но когда уже знаете, как и что хотите сделать, то это можно сделать быстрее и вернее - между коммитами других людей.
Не знаю что там в CVS точно. Но с гитом в этих случаях можно пользовать Stash - временное локальное сохранение всех изменений + вариации gitflow https://www.atlassian.com/git/tutorials/comparing-workflow...
что "разворотил" несколько файлов, и срочная задача решается в них же.
Достаточно редкий вариант, без ручного объединения будет сложно.
Для начала, любое изменение стартует в новом бранче из актуальной копии "девелопер"
Нужно срочно переключится - Stash и делаем новый бранч из актуального или девелопер в котором и работаем. Затем мержим его "назад".
В двух каталогах никогда не работать. второй может быть как копия какого то состояния для сравнения https://www.scootersoftware.com/features.php?zz=features_f...
В вопросе прямо описание "зачем нам нужны бранчи". Чтобы бранч с "экспериментом" не оставал от транка, в "эксперимент" надо будет времяот времени мержить состояние транка. И да, будут конфликты, которые надо будет решать. Никуда от этого не денешься.
Достаточно редкий вариант, без ручного объединения будет сложно.
Нет, часто происходит. Даже когда один над проектом работаешь регулярно встречается.
Для гита тут написано правильно.
Для начала, любое изменение стартует в новом бранче из актуальной копии "девелопер"Нужно срочно переключится - Stash и делаем новый бранч из актуального или девелопер в котором и работаем. Затем мержим его "назад".