Стеллажи против рабочих пространств в TFS
В настоящее время я работаю над проектом, который использует TFS в качестве источника контроля. Я нахожусь в стадии реализации части функциональности, но заблокирован работой, которая должна быть сделана внешними ресурсами. Поскольку функциональность не полностью завершена, я не могу проверить изменения без нарушения сборки. Поэтому вместо того, чтобы ждать пару дней, пока работа по блокировке закончена, я хочу поработать над некоторыми дефектами.
Чтобы выполнить эту работу в отрыве от других моих изменений, я работаю над дефектами во втором только что созданном рабочем пространстве.
После использования второго рабочего пространства для изоляции моих изменений коллега спросил меня, почему я не просто отложил свои изменения. После прочтения стеллажей кажется, что это предпочтительное решение для таких ситуаций, как моя. Мой вопрос: в каких ситуациях, если таковые имеются, вы бы создали несколько рабочих пространств и в каких ситуациях вы должны использовать стеллажи? Есть несколько постов о стеллажах, но я не вижу много на тему рабочих мест.
Кстати, у меня появилась идея создать здесь второе рабочее пространство.
3 ответа
Новый филиал, вероятно, будет лучшим путем. Но, чтобы ответить на ваш вопрос, одно из ключевых отличий между полками и просто использованием другого рабочего пространства в другом состоит в том, что когда вы кладете на полку, вы возвращаете свой код обратно в TFS, поэтому он резервируется. Все, что находится в вашем рабочем пространстве, - это то, что у вас есть на вашем компьютере - если вы потеряете его, оно исчезнет.
В моем магазине мы часто используем разветвления, и в результате я не видел много вариантов использования стеллажей.
Однако я обнаружил один случай, когда он мне очень пригодился: я часто подпрыгиваю между двумя разными машинами разработки (одна в офисе, одна дома, подключенная через VPN). Если я над чем-то работаю и хочу перевести его из дома на работу или наоборот, я часто пользуюсь стеллажами. Я могу снять ее с одной машины и снять с другой. Я делаю это, когда я нахожусь в середине изменений, и регистрация может нарушить сборку или иным образом прервать других разработчиков.
Вы говорите о двух совершенно разных концепциях. Когда вы храните код на полке, вы сохраняете его в TFS, но не регистрируете его в какой-либо конкретной ветке. Создание другого рабочего пространства просто устанавливает новую локальную папку на ваших машинах разработки и сохраняет там файлы в вашей ветке. Когда вы делаете регистрацию, у вас все еще могут быть конфликты.
Почему бы не создать новую ветку вашего кода. Вы можете работать над этой веткой и регистрироваться, не наступая на чьи-либо изменения, потому что вы регистрируетесь в своей собственной ветке кода. Затем, когда вы завершили свои изменения, а другие завершили свои изменения в основной ветке, вы можете объединить свои изменения в основную ветку.
Стеллажи - идеальный вариант. Стеллаж позволяет массово вносить изменения в TFS вне обычной сборки и извлекать их позже по имени. Несколько рабочих пространств не является решением для того, что вы делаете. Многократные рабочие области хороши, если вы поддерживаете разные версии продукта и должны работать с ними, например, допустим, у вас есть продукт 4.0 и 5.0, и вам нужно применить исправление безопасности для обеих версий. Стеллажи хороши, когда вы хотите внести изменения, но не совершать их немедленно.