git-tfs локальный репозиторий Git для TFVC

Я тестирую git-tfs с локальным экземпляром TFS (работает ли он и с VSO?) и пытаюсь использовать rcheckin, чтобы передать мои коммиты Git до TFVC. Однако, когда я пытаюсь использовать rcheckin, я получаю сообщение об ошибке, что родители TFS не найдены. Репозиторий TFVC, который я отправляю, пуст, и я хочу перенести свои изменения из Git в TFVC. Вот что я сделал:

C:\git add remote tfs http://localhost:8080/tfs/DefaultCollection/TeamProject
C:\git tfs rcheckin -master
Working with tfs remote: default
No TFS parents found!

Что мне не хватает? Запускаю ли я эту команду для других своих ветвей (например, feature1, feature2 и т. д.)? Я новичок в Git-TFS, но мне кажется, что это очень удобный инструмент.


person m00nbeam360    schedule 04.05.2015    source источник


Ответы (1)


Отказ от ответственности: я один из разработчиков git-tfs...

с VSO тоже работает?

Да!

Что мне не хватает?

Прежде чем вы сможете работать с git-tfs (и использовать команду rcheckin), вы ДОЛЖНЫ клонировать ваш репозиторий tfs.

Не стесняйтесь читать и другие документы. Использование rcheckin - хорошая идея ;-)

Как использовать существующий репозиторий Git (отдельный) для внесения изменений в репозиторий TFS? Я клонировал репозиторий TFS, и похоже, что он находится в отдельной папке со своей собственной папкой .git.

Git-tfs не предназначен для этого. Но существует (сложное!) решение с использованием rebase.

  1. Добавьте существующее репо как удаленное в новое репо, клонированное из TFS, и извлеките
  2. Используйте git rebase --into для перебазирования ваших старых существующих коммитов в тот, который был получен из tfs.
  3. Используйте rcheckin для отправки коммитов
  4. Делайте это снова и снова, если у вас есть ветки (с большим количеством тонкостей. Надеюсь, у вас их нет!!!)

изменить: я написал сценарий оболочки, чтобы заменить первые 2 шага и сделать его проще и быстрее.

person Philippe    schedule 04.05.2015
comment
Это потрясающе, спасибо! Как использовать существующий репозиторий Git (отдельный) для внесения изменений в репозиторий TFS? Я клонировал репозиторий TFS, и похоже, что он находится в отдельной папке со своей собственной папкой .git. - person m00nbeam360; 05.05.2015
comment
Git-tfs не предназначен для этого. Но существует (сложное!) решение с использованием rebase. 1. Добавьте существующий репозиторий как удаленный в новый репо, клонированный из TFS, и извлеките его. 2. Используйте git rebase --into, чтобы перебазировать старые существующие коммиты в тот, который был получен из tfs. 3. Используйте rcheckin, чтобы отправить коммиты. 4. Делайте это снова и снова, если вы иметь ветки (с большим количеством тонкостей. Надеюсь, у вас их нет!!!) - person Philippe; 06.05.2015
comment
Отлично, отличный ответ! К счастью, мне не пришлось идти по этому пути, но теперь я знаю! :) - person m00nbeam360; 06.05.2015
comment
Есть смысл сделать так. Было бы неплохо иметь это как команду «git-tfs add-tfs», которая в основном делает то же, что и команда clone, за исключением того, что она не выполняет действия git. ;) - person Rubenisme; 29.09.2016
comment
Что касается отдельного репозитория GIT (repoA) и того, как передать изменения из него в TFS, то в итоге я клонировал репозиторий TFS в репозиторий GIT (repoB) с помощью git-tfs, а затем объединил изменения из repoA в repoB (локально) и их коммит из repoB в TFS. Описанный здесь скрипт у меня не работал. - person user1713059; 06.12.2018