Клонировать GIT в TFS (AzureDevOps) с помощью git-tfs - PullRequest
1 голос
/ 29 октября 2019

у нас есть локальный DevOps Server 2019 с нашими старыми проектами, и я могу клонировать эти проекты с помощью git-tfs в локальные репозитории Git. Все в порядке. После этого я могу отправить эти репозитории в наши репозитории AzureDevOps Git. Все в порядке.

Теперь у нас есть несколько проектов и коллег, которые хотят использовать TFVC для этих специальных проектов. Поэтому моя идея состояла в том, чтобы клонировать эти проекты из локальной TFS в Git, а затем использовать git-tfs rcheckin для передачи его в наш проект AzureDevOps.

Но когда я использую «git-fts rcheckin --remote azuretfs», я получаю«ошибка: последний коммит TFS должен быть родителем коммитов, которые проверяются в«

Когда я использую «git-tfs checin --remote azuretfs», все файлы загружаются в проект AzureDevOps, но без истории.

Так может кто-нибудь описать, что я должен делать?

Примечание: я не хочу использовать MigrationTool, предлагаемый Microsoft, из-за большого количества ошибок при проверке шаблонов рабочих элементов и т. Д. (Мы не делаемиспользуй это ...)

Ответы [ 2 ]

2 голосов
/ 04 ноября 2019

Для тех, кто ищет то же самое:

С помощью «старого» инструмента git tf (https://archive.codeplex.com/?p=gittf) вы можете перенести старый проект TFVC в Azure DevOps (TVFC).

Если вы хотите перенести старые проекты TFVC в AzureDevOps (GIT), вам следует использовать git tfs (http://git -tfs.com / )

1 голос
/ 30 октября 2019

Что вы можете попробовать без гарантии успеха ...

Примечание. Как я уже сказал, вы сможете перенести историю только из одной ветви.

  1. Создайтепапка / проект в TFVC, куда вы хотите поместить исходный код.
  2. Перенесите эту папку с помощью git tfs clone (чтобы сделать git commit с метаданными git-tfs, необходимыми для rcheckin)
  3. Добавьте уже перенесенный репозиторий истории (назовем его RepoWithHistory) в качестве локального пульта в этом новом репозитории (назовем его NewRepo). И git fetch
  4. Очистите метаданные только для коммита, поступающего из RepoWithHistory, с чем-то похожим на: git filter-branch -f --msg-filter "sed 's/^git-tfs-id:.*$//g'" -- --all. Но будьте осторожны, чтобы метаданные коммитов приходили с NewRepo.
  5. . Используйте git replace --graft <sha1_of_first_commit_of_RepoWithHistory> <sha1_of_last_commit_of_NewRepo>, чтобы привить 2 истории (история должна быть поверх одной из новой)
  6. Используйте git rcheckin --no-merge для переноса истории в TFVC (это будет долго ...)

Надеюсь, это поможет.

PS: возможно, вам следует попытаться сделатьон на небольшом подмножестве коммитов, чтобы убедиться, что он работает, прежде чем делать это в реальном проекте TFVC.

...