Я бы сказал, что шаги, которые необходимо предпринять в описываемом вами сценарии, на 100% зависят от среды разработки и инструментов, которые вы настроили.
Используя Perforce для контроля версий исходного кода, мы настроиливетвящаяся система, в которой выпуски отделены от работы по разработке, а все ветви разработки происходят из одной «приемочной» ветви.Каждая ветвь используется для одной проблемы или для набора очень тесно связанных проблем.Никакие другие проблемы не могут быть решены в ветви, пока изменения не будут интегрированы в ветку принятия.
Да, это означает, что у нас много филиалов.Да, мы делаем много синхронизации (принятие до рабочей ветви) и интеграции (рабочая ветка до принятия).Но его ценность неисчислима, когда речь идет о простом переключении с одной задачи на другую, возвращении к тестовой сборке, обнаружении двух проблем, кусающих друг друга, и т. Д.
После того, как разработка сделала свое дело (включая свою собственную)тесты), проблема проверяется командой QA.Сначала в изоляции в собственной ветке.После этого он интегрируется в ветку принятия и проводится регрессионный тест, чтобы найти любые проблемы с независимыми проблемами, кусающими друг друга.Когда все проблемы для выпуска, таким образом, интегрированы в принятие, команда QA выполняет полный регресс и новый тест функциональности.
Таким образом, ветвь принятия всегда является "последним" состоянием разработки приложения.
В этой настройке сценарий, который вы описываете, будет проигрываться следующим образом:
Оставьте мою текущую задачу такой, какая она есть, возможно, отметьте все ожидающие изменения, чтобы непотерять их при сбое моего компьютера.Если это означает нарушение ежедневной сборки этой ветки, я бы не стал регистрироваться, если бы не было легко исправить ошибки компиляции.(Обратите внимание, что в нашем наборе приложений есть много приложений, и, хотя мои изменения могут компилироваться в приложении, над которым я работаю, они все равно могут нарушать компиляцию других приложений в нашем наборе.) Наше правило: каждая отправка может нарушать функциональность, ноне должен нарушать процесс сборки.
Найти «пустую» ветвь - ветвь, которая в настоящее время не используется для какой-либо разработки, или, если все ветки заняты, создать новуюone.
Принудительная синхронизация ветви принятия и выбранной рабочей ветви, поэтому на моей машине гарантированно будет самое последнее состояние для обеих ветвей.
Синхронизируйте (принудительно при необходимости) последнее состояние ветви принятия с рабочей ветвью, чтобы выбранная рабочая ветвь совпадала с веткой принятия.
Откройте набор приложений этой ветви вIDE, отладить и решить.Отправьте в рабочую ветвь.
Скажите QA, чтобы взглянуть на это в рабочей ветке.Если они удовлетворены этим, интегрируйте изменения до принятия, чтобы они могли продолжить тестирование.
Верните IDE обратно для работы над набором приложений в той ветви, над которой я работал ранее..
Сполосните и повторите.