2015-03-04 2 views
0

Официальный SCM здесь на работе - TFS. Я использую git-tfs, чтобы иметь возможность работать. Другие разработчики здесь, в местном филиале нашей компании, используют StarTeam для местных ветвей развития (да, там SCM там хуже, чем TFS). Теперь некоторые из нас думают о переходе от StarTeam к Git для нашего местного развития.Используйте git-tfs с несколькими Git-пользователями

Каков наилучший способ использования git в сочетании с tfs для нескольких пользователей?

Лучшая идея у меня была:

  1. Один центральный сервер имеет 1: 1 копию хранилища TFS (через мерзавца-ТПО, синхронизированные в сценарии каждый час или около того)
  2. Dev вытащить из этого сервер.
  3. Dev создает ветку для реализации функции.
  4. Когда закончите, dev совершает транзакцию через TFS и удаляет ветвь.
  5. Дев вытаскивает свои изменения через первый шаг в свою магическую ветку.

Возможно, этот рабочий процесс работает? У кого-нибудь есть опыт, как что-то подобное можно настроить?

ответ

0

Текущее решение в основном такое же, как описано выше. Основные ограничения:

  • Мои коллеги не используются для консоли и стараются избегать их как можно больше.CLI-приложения являются не не идти (к сожалению)
  • TFS по-прежнему «вверх» (это не процесс сборки я хочу сохранить в живых)
  • История должны быть правильными (кто совершил что и когда)
  • Каждый разработчик должен иметь возможность совершать каждый раз

Итак ...:

  • Главное хранилище синхронизируется через каждые 10 минут на git tfs fetch и ветви сбрасываются tfs/branchname
  • Заключительный договор запрещены филиалы (копии филиалов tfs).
  • Проверка в TFS осуществляется с помощью git tfs rcheckin --no-merge (завернутый в плагин для GitExtensions).
  • :%s/tfs/TFVC/g

Мы бежим эту установку на несколько месяцев для 3 хранилищ и нескольких филиалов. Мои коллеги привыкают к этому документу в течение короткого времени - вопрос то и дело, но он становится все меньше и меньше. Я смущенно удивлен, насколько хорошо это сработало.

+0

> Планируемая функция: gitextension-plugin с рабочим процессом git tfs checkin --no-merge; git reset --soft tfs/default Не нужно! Используйте git aliases, 'GitEstensions scripts' и' git tfs rcheckin' вместо ... – Philippe

+0

Спасибо - обычно я нахожу новые функции в GitExtensions случайным щелчком: D. Но плагин немного более удобен ('fetch',' checkintool', 'rcheckin', cancel и' cleanup-workspaces' с правильным текстовым выходом - возможно, 2 часа работы) –

+0

Я разработал 5 плагинов для gitextensions, и я могу уверяю вас, что требуется больше двух часов ;-). В то время вам просто удалось создать решение \ o / – Philippe

1

Первый TFS не является SCM, это платформа ALM. Он предоставляет два основных варианта SCM, TFVC и Git.

Лучше всего было бы создать новый Team Project на вашем сервере TFS, и когда вас спросят, какой поставщик SCM использовать Git. Это даст вам нечто похожее на GitHub или Bitbucket, но на предприятии, готовом к аудиту предприятия. Затем вы можете добавить новый TFS Git repo в качестве источника и нажать.

Если вам все еще нужно использовать TFVC, я бы предложил, чтобы в дополнение к вышесказанному вы можете ежедневно нажимать Git-tfs между этим сервером Git repo и TFVC.

  1. Создание проекта MyProject-Git команды с Git как SCM
  2. клонировать MyProject-TFVC с GIT-TF
  3. Добавить MyProject-ГИТ в качестве пульта дистанционного управления для вашей локальной Гит копии MyProject-TFVC
  4. Нажмите на MyProject-Гит

Теперь есть и Git и TFVC копию одного и того же кода со всеми истории нетронутыми. Каждый из ваших кодеров может затем клонировать MyProject-Git и успешно работать в Git.

Затем вы можете настроить автоматический и запланированный процесс для синхронизации MyProject-Git и MyProject-TFVC с обычной каденцией. Все, что вам нужно, - это конфликты, но поскольку все серверная сторона и резервное копирование, вы можете сделать это на досуге.

+0

Большинство блогов, которые я читал, использовали TFS как синоним для TFVC. Это может быть неправильно, но все знают, что это значит. Мы должны использовать существующее TFVC-репо и хотим, чтобы история TFVC была правильной. Кроме того, я хочу сохранить историю Git. Это не будет работать в предполагаемом рабочем процессе. –

+0

Да, будет. Вы сохранили бы всю историю как в Git, так и в TFVC. Вам просто нужно нажимать с вашего кода-git на yourcode-tfvc на регулярной основе (надеюсь, каждый день). –

+0

Выполнение коммитов на центральном месте один раз в день будет сохранять историю за фиксацию, но либо каждый разработчик должен сохранять свои пароли на сервере, либо коммитер будет потерян. Я понял, как использовать git tfs на dev-pc. Как только я получу это, я отправлю его в качестве ответа. Тем не менее, спасибо за ваш ответ и комментарии. –

 Смежные вопросы

  • Нет связанных вопросов^_^