Git и TFS: могу ли я иметь только центральный репо общаться с TFS? - PullRequest
4 голосов
/ 13 января 2012

Я бы хотел перевести мою команду с использования TFS для контроля версий на git.

Есть ли причина, по которой я не должен делать следующее:

  1. Создатьцентральный репозиторий git с использованием git-tfs
  2. Каждый разработчик клонирует центральное репо, извлекает из него и загружает в него
  3. И затем обновляет только tfs из центрального репо?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 13 января 2012

Создание центрального репозитория git с помощью git-tfs

Может быть опасно, так как TFS имеет центральное хранилище с всем в нем.
Результирующее git-репо может в итоге стать огромным (не так просто клонировать)

Я бы порекомендовал сделать несколько git-tfs, чтобы создать несколько меньших репозиториев Git.

1 голос
/ 13 декабря 2012

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

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

Поскольку git-tfs не работает с пустым репозиторием, вы в итоге получите 2 git-репозитория, которые вы должны синхронизировать. Первый, где вы нажимаете (голый), и второй, который взаимодействует с TFS (не тот, где вы используете git-tfs).

Тогда у вас есть 2 варианта: а) вы принимаете только один коммит в TFS, даже если у вас есть несколько коммитов git (используйте команду git-tfs 'checkin') б) вы хотите реплицировать каждый коммит git в TFS (используйте коммит git-tfs 'rcheckin')

Первый случай а) не лучше, но легче решить с помощью некоторых scipts и git-хуков, потому что всегда есть только новый git commit для синхронизации между двумя репозиториями.

Второй случай б) для меня является единственным приемлемым, но решить его гораздо сложнее, потому что, когда вы синхронизируете репозиторий git с командой git-tfs 'rcheckin', для каждого коммита git создается новый и Сценарий синхронизации будет намного сложнее написать (я даже не знаю, можно ли разрешить весь конфликт слияния). Я начал писать эти сценарии, но остановился, потому что это не стоит усилий (особенно теперь, когда Visual Studio 2012 решает проблему перезагрузки, когда каждый раз файлы решения перезагружаются). Если вы хотите сделать это, сценарии в посте ниже - хороший шаг с того, с чего начать ...

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

Но если вы все еще хотите иметь центральный репозиторий Git, вы можете проверить этот пост (http://sparethought.wordpress.com/2012/08/23/my-environment-for-day-to-day-work-with-git-tfs/) гибридным способом (фиксация в TFS и выборка из git), который, кажется, работает.

0 голосов
/ 14 февраля 2014

Team Foundation Server 2013 теперь поддерживает Git в качестве репозитория управления исходным кодом для Team Project, а инструменты Visual Studio для Git обеспечивают доступ к Git, встроенный в Visual Studio ( надстройка для 2012 , поставляется в комплекте с 2013).

...