Что такое стеллажи в TFS?

317

Является ли откладывание в TFS простой проверкой, чтобы другие члены команды могли видеть исходный код?

т.е. отложенный код не будет скомпилирован правильно?

Мэтью Лок
источник

Ответы:

453

Стеллажи имеют много применений. Основными из них являются:

  1. Переключение контекста : сохранение работы над текущей задачей, чтобы вы могли переключиться на другую задачу с высоким приоритетом. Скажем, вы работаете над новой функцией, занимаясь своим собственным делом, когда ваш начальник врывается и говорит: «Аааа! Баг Баг Баг!» и вы должны отбросить текущие изменения в функции и исправить ошибку. Вы можете отложить работу над этой функцией, исправить ошибку, а затем вернуться и отказаться от нее, чтобы работать над изменениями позже.
  2. Совместное использование наборов изменений : если вы хотите поделиться набором изменений кода, не регистрируя его, вы можете упростить доступ для других, отложив его на полки. Это может быть использовано, когда вы передаете незавершенное задание кому-то другому (бедняга) или если у вас есть какой-то код для тестирования, вы НИКОГДА не проверяете, что кому-то еще нужно было выполнить. h / t к другим ответам об использовании этого для обзоров, это очень хорошая идея.
  3. Сохранение вашего прогресса . Пока вы работаете над сложной функцией, вы можете оказаться в «хорошей точке», где вы хотели бы сохранить свой прогресс. Это идеальное время для хранения вашего кода. Скажем, вы взломали CSS / HTML, чтобы исправить ошибки рендеринга. Обычно вы стучите по нему, повторяя каждый возможный клудж, который можете придумать, пока он не будет выглядеть правильно. Однако, если все выглядит правильно, вы можете попытаться вернуться и очистить свою разметку, чтобы кто-то еще мог понять, что вы сделали, прежде чем ее зарегистрировать. В этом случае вы можете отложить код, когда все будет правильно , тогда вы можете пойти и реорганизовать свою разметку, зная, что если вы случайно ее сломаете, вы всегда можете вернуться и получить набор изменений.

Любое другое использование?

TJB
источник
16
При
отложении набора
2
Документация Visual Studio по стеллажам имеет дополнительный контекст и информацию.
Целостный разработчик
1
Он также используется сборкой Gated для хранения изменений до тех пор, пока не будет выполнена окончательная фиксация.
Торе Эстергаард
Одна вещь, которую я заметил, состоит в том, что изменения Shelving не обязательно возвращают код и не изменяют состояние файлов для регистрации. Так что, пока вы работаете над этими, например, изменениями ошибок, как избежать фиксации кода изменения ошибок вместе с ваш отложенный код?
Жак
Просто понял, что файлы остаются извлечены, когда вы выбираете вариант, чтобы сохранить набор изменений локально.
Жак
105

Стеллажи - это способ сохранить все изменения на вашем ящике без регистрации. Изменения сохраняются на сервере. В любое время вы или кто-либо из ваших товарищей по команде можете «убрать» их обратно на любую из ваших машин.

Это также отлично подходит для обзора. В моей команде для регистрации мы отложим наши изменения и отправим электронное письмо с описанием изменений и названием набора изменений. Люди в команде могут затем просмотреть набор изменений и оставить отзыв.

К вашему сведению: лучший способ просмотреть набор полок с помощью следующей команды

tfpt обзор / shelveset: shelvesetName; имя пользователя

tfpt является частью Team Foundation Power Tools

JaredPar
источник
6
Следует отметить, что сегодня не было бы никакой причины вручную откладывать изменения и отправлять информацию по электронной почте. Современный процесс заключается в запросе обзора кода.
ChiefTwoPencils
34

Это правильно. Если вы создадите полку, другие люди, делающие последние обновления, не увидят ваш код.

Он помещает ваши изменения кода на сервер, который, вероятно, лучше защищен, чем ваш рабочий ПК.

Это позволяет вам забрать свои изменения на другой машине, если вы чувствуете желание работать из дома.

Другие могут видеть ваши полки (хотя я думаю, что это может быть необязательным), поэтому они могут просмотреть ваш код до регистрации.

teedyay
источник
Это правильно. Если вы создадите полку, другие люди, делающие последние обновления, не увидят ваш код. Это означает: 1) когда я проверю код в TFS, член моей команды увидит код в своей системе, если он получит последнюю версию? 2) То есть, с какой учетной записи мы отложили код, только с той же учетной записи мы увидим отложенный код? Пожалуйста, поправьте меня, если я ошибаюсь
Криш
Вы можете увидеть полки других людей, если хотите.
teedyay
3
Чтобы быть более точным, «другие люди, делающие последние, не будут загружать ваш код»
sergiol
18

Во многих из этих обсуждений упущен один момент: как вы вернетесь на тот же компьютер, на котором отложили свои изменения. Возможно, очевидно для большинства, но не для меня. Я полагаю, что вы выполняете отмену ожидающих изменений - это правильно?

Я понимаю, процесс должен быть следующим:

  1. Чтобы отложить текущие ожидающие изменения, щелкните правой кнопкой мыши проект Shelve, добавьте имя полки
  2. Это сохранит (или отложит) изменения на сервере (никто их не увидит)
  3. Затем вы делаете Отмену отложенных изменений, чтобы вернуть свой код обратно к последней точке регистрации
  4. Затем вы можете делать то, что вам нужно, с помощью исходного кода с обращенным кодом
  5. Вы можете отменить изменения в любое время (может потребоваться конфликт слияния)

Итак, если вы хотите начать какую-то работу, которая может потребоваться для полки, убедитесь, что вы зарегистрировались до начала, так как точка регистрации - это то место, к которому вы вернетесь, выполняя шаг отмены отложенных изменений выше.

Ник Райт
источник
8
Вы можете пропустить шаг отмены отложенных изменений, если снимите флажок «Сохранить ожидающие изменения локально» при создании набора полок.
Майкл Дж.
14

Я сталкиваюсь с этим все время, поэтому дополнительную информацию о филиалах:

Если вы работаете с несколькими ветвями, наборы полок привязаны к конкретной ветви, в которой вы их создали. Таким образом, если вы слишком долго ржавеете с помощью набора изменений и вынуждены переходить на другую ветвь, то вам придется делать это с выпуском электроинструментов в июле.

tfpt unshelve /migrate
joshua.ewer
источник
Не по теме, но факт :-)
Торе Эстергаард
2
Этот комментарий настолько старый, что был добавлен до того, как был создан ответ переполнения стека :-)
joshua.ewer
2

Стеллажи, как будто ваши изменения были сохранены в системе контроля версий, не влияя на существующие изменения. Означает, что если вы зарегистрируете файл в системе контроля версий, он изменит существующий файл, но откладывание будет похоже на сохранение ваших изменений в системе контроля версий, но без изменения фактических изменений.

Г-н дас
источник
1

@JaredPar: Да, вы можете использовать наборы полок для обзоров, но имейте в виду, что наборы полок могут быть перезаписаны вами / другими людьми и, следовательно, не являются стабильными в долгосрочной перспективе. Поэтому для нормативно-правовых обзоров вы никогда не должны использовать Shelveset в качестве базы, а вместо проверки (Changeset). Для неформального обзора это нормально, но не для официального (например, FTA) обзора!

Даниил
источник
0

Если вы используете сборки Gated, при запуске сборки создается набор полок вашего рабочего пространства, который передается для сборки. Если сборка не удалась, набор полок отклоняется. Если сборка прошла успешно, набор изменений создается и фиксируется в TFS. В любом случае человек, выполняющий эту регистрацию / сборку, должен будет согласовать рабочее пространство, что так же просто, как выполнить Get Latest.

Джим Рот
источник