(ОБНОВЛЕНИЕ: TFS теперь поддерживает git для управления версиями, поэтому остальная часть этого ответа больше не применяется)
Я бы гуглил ветвь за функцию.
Основное преимущество ветвления - эточто вы можете работать над функцией и не быть прерванным чужой работой.Когда вы будете готовы, вы можете объединить и посмотреть, работают ли многие функции вместе или нет.Обычно это делается по мере разработки функции, но для небольших функций ее можно выполнить после ее завершения.
Преимущество состоит в том, что у вас есть четкая история того, что вы сделали для реализации чего-либо.Без веток у вас было бы много коммитов, смешанных с коммитами других функций.Если QA не передает определенную функцию, у вас есть работа, чтобы собрать другую сборку, используя только коммиты для других функций.Другой альтернативой является попытка исправить вашу функцию, чтобы QA прошел.Это может быть невозможно в пятницу днем.
Переключатели функций - это еще один способ пропустить работу, но это увеличивает сложность кода, и сами переключатели могут содержать ошибки.Это что-то очень утомительное, и вы увидите, как это стало «приемлемым» обходным путем.
Ветви также используются для отслеживания изменений в нескольких версиях выпусков.Продукты, которые потребляются несколькими клиентами, могут быть в ситуации, когда один набор клиентов использует 1.0 продукта, в то время как другие уже используют 2.0.Если вы поддерживаете оба варианта, вы должны отслеживать изменения каждого из них по назначенным им ветвям.Предыдущие пункты все еще относятся к разработке для этих отраслей.
Сказав это, TFS не идеален для ветвления на функцию по ряду причин.Самым большим является то, что он не поддерживает трехсторонние слияния - он имеет только то, что называется безосновательным слиянием.Отслеживая историю, TFS не может показать вам общего предка между ветвью объектов и местом, где вы пытаетесь слить ее.Это оставляет вас потенциально разрешающим множество конфликтов.В целом, многие люди, которые используют TFS, избегают разветвления по этой причине.
Трехсторонние слияния - это здорово, потому что они покажут вам, каков общий предок, каковы ваши изменения и каковы изменения вдругая ветвь есть.Это позволит вам принять очень взвешенное решение о том, как разрешить конфликт.
Если вам нужно использовать TFS, я бы предложил использовать git-tfs, чтобы использовать преимущества трехсторонних слияний и многих других.другие преимущества.Некоторые из них включают в себя: rerere, ребазинг, отключенную модель, локальную историю, деление на части и многое другое.
Rebase очень полезен, так как позволяет изменять функцию, основываясь на другой отправной точке, опуститекоммиты, сквош коммиты вместе, разделение коммитов и т. д. Когда они будут готовы, вы можете объединить их в ветку интеграции или выпуска, в зависимости от рабочего процесса, который вы выбрали.
Mercurial также может быть проще в использовании,но в долгосрочной перспективе оно не будет таким мощным.
Если у вас есть такая возможность, я бы настоятельно рекомендовал отойти от TFS для контроля источников из-за множества ограничений по сравнению с современными DVCS.
Вот хороший набор рекомендаций, которым необходимо следовать, если вы хотите эффективно управлять ветвлением / объединением:
http://dymitruk.com/blog/2012/02/05/branch-per-feature/
Надеюсь, это поможет.