Я ищу некоторые отзывы о преимуществах и недостатках методов, доступных для создания отдельных ветвей развития в департаменте Perforce. Если я правильно понимаю, есть два способа справиться с этим. Во-первых, необходимо создать частный филиал, который является полной копией ветки, над которым вы работаете. Филиал полностью встанет на свои места и полностью изолирует ваши изменения от целевой ветки.
Другим методом, который я слышал, является разветвление Sparse. Это описано в Практическое занятие (глава 9, с .242). Это создает ветку, но только с файлами, которые вам нужно будет отредактировать. Затем вы перекрываете представление клиента целевой ветки с помощью этого разреженного клиента.
Оба метода потребуют от программиста выполнить некоторую интеграционную работу, чтобы получить свои изменения в целевой ветке. Метод Private Branch кажется, что для создания копии всей ветки потребуется гораздо больше дополнительной памяти. Однако в документации Perforce указано, что она выполняет "ленивую копию" в этой ситуации.
Интеграция также позволяет Perforce выполнять "ленивую копию" файлов. Когда вы файлов, на самом деле сервер не хранит две копии файлов - он просто хранит исходный файл, а указатель в базе данных записывает тот факт, что произошла ветка в целевом файле. Ленивые копии делают ветвление низкозатратной операцией; сервер не должен отслеживать дубликаты копий файлов.
Это похоже на то, что метод Sparse branch просто добавляет возможность человеческой ошибки к процессу, поскольку, например, разработчик может начать работу над файлом, который они не добавили в разреженный филиал, а затем случайно обновить изменение целевой ветки, которая разбивает сборку. Но функциональность разветвленного разветвления существует по какой-то причине. Любая обратная связь о том, почему она существует и почему я должен использовать ее в полной частной ветке (или наоборот), будет с благодарностью.