клонирование центрального репозитория git-tfs и сокрытие TFS - PullRequest
4 голосов
/ 20 января 2012

У меня есть хранилище кода в TFS (Microsoft Team Foundation Server).Я могу использовать git-tfs для преобразования этого в git-репозиторий.

Но я хочу создать одно центральное git-репо, которое выдвигает в TFS, и заставить всех разработчиков клонировать этот git-репо и не быть в состоянии нажать на TFS.Что касается любого «нисходящего» потока из центрального репо, я не хочу никаких указаний на то, что репозиторий TFS вообще.

Поскольку информация о сервере TFS включена в репозиторий, создаваемый git-tfs, какя могу сделать это?

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Есть несколько проблем, которые нужно решить, чтобы это работало. Наиболее заметным является сопоставление пользователей git с учетными данными TFS, которые будут использоваться при возвращении изменений в TFS.

И еще одна неприятная вещь - возможный конфликт с другими пользователями TFS (т. Е. Если кто-то решит перенести вещи в TFS напрямую).

Поэтому я считаю, что он не был разработан как часть git-tfs (по крайней мере, поэтому я не добавил эту функцию несколько месяцев назад).

Если вы согласны с наличием пар логина / пароля TFS в текстовом файле и можете обеспечить бесперебойный рабочий процесс (например, запретить регистрацию в TFS любым другим способом, кроме как через ваш git центральный репозиторий) - вы можете реализовать что вам нужно с обработчиками коммитов или даже с простым планировщиком (таким образом, отправка будет не немедленной, а отложенной и асинхронной, что значительно ускоряет отправку в центральный репозиторий git).

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

0 голосов
/ 04 июня 2013

Во-первых, удалите метаданные TFS из ваших коммитов, используя флаг --no-metadata. Затем используйте флаг --authors="path-to-authors.txt", чтобы сопоставить пользователей TFS с текущими.

git tfs clone http://tfs:8080/tfs/DefaultCollection $/Project1 --authors="c:\project1\authors.txt" --no-metadata

В своем файле author.txt сопоставьте идентификатор пользователя TFS с его адресом электронной почты следующим образом:

TFSDOMAIN\peter.pan = Peter Pan <peter.pan@disney.com>

После клонирования репозитория запустите git tfs bootstrap и удалите конфигурацию TFS из файла .git/config. Теперь вы не должны иметь возможность зарегистрироваться в TFS, но все же сможете делиться репо с вашими разработчиками.

Подробнее о git tfs clone https://github.com/git-tfs/git-tfs/blob/master/doc/commands/clone.md

...