2015-11-09 3 views
3

Я пытаюсь клонировать весь репозиторий TFVC размещенного в Visual Studio онлайн с филиалами с помощью следующей команды:Git-tfs Clone Hangs Fetching от зависимого пульта TFS - бесконечная петля?

мерзавец ТФС клон --with-ветви --export-работа-элемент-отображение =»{картирование путь к файлу} "https: // {имя проекта} .visualstudio.com/DefaultCollection "$/{проект}/{ветвь}"

Это работает для меня до сих пор существует несколько проектов, но в прошлый уик-энд я столкнулся с проблемой ...

Начало процесса выглядит так же, как и для других проектов, но затем примерно через 3 часа выход на консоль продолжает повторяться следующие две строки каждые 20 минут или так:

=> Working on TFS branch : $/{source project}/{main branch} 
    Fetching from dependent TFS remote '{branch}'... 

Я позволил ему сделать это примерно 40 часов, и он просто продолжал делать то же самое.

Я снова побежал клон с --debug опции и последней строкой, чтобы получить выходной сигнал, прежде чем он просто висит там выглядит следующим образом:

get [c4002]$/{project}/{branch}/{file location}/{file name with extension} 

Там нет ничего особенного в этом файл, который я могу видеть, но глядя на changeet 4002, я вижу, что там был source rename. Я видел проблемы, связанные с переименованием с git tfs, но они, похоже, все решаются в соответствии с потоками github.

Кто-нибудь сталкивался с этим? Там нет выхода ошибки, это только кажется, что повторные попытки снова и снова ...

мерзавец TFS Версия: 0.23.0.0 (клиентская библиотека TFS 12.0.0.0 (MS)) (64-разрядная версия)

git version 1.9.5.msysgit.1

ответ

1

В этом файле нет ничего особенного, но я смотрю на changeet 4002, я вижу, что там было исходное переименование. Я видел проблемы, связанные с переименованием с git tfs, но они, похоже, все решаются в соответствии с потоками github.

В самом деле, я добавил переименовывать поддержку в ГИТ-TFS, но это, кажется, что сценарий (я не знаю, какой именно один) переименовани не очень хорошо поддерживается :-(

Плохая новость что я не знаю, как его копировать, и у меня нет времени и желания потратить на это время (для других, потому что это такая боль, чтобы понять и поддержать TFVC!)

Неплохие новости что вы можете:

  • либо клонировать после неудачный набор изменений с использованием опции «-c»
  • сложный и не протестированный: быстро клонировать сбойный набор изменений в другом репозитории, извлекать его в текущем репозитории, использовать «трансплантат» или «замену git» и «фильтр-ветвь» на исправить историю и продолжить «git tfs fetch». Жесткий, скучный, длинный, но должен работать.
1

Я подтверждаю, что «трудный и не проверенный» вариант на самом деле не так уж сложный и, кроме того, фактически протестирован.

Когда git-tfs зависает, просто остановите его с помощью Ctrl-C и перейдите в новую папку и продолжите клон из соединительной линии, используя опцию -c.

Когда клон будет сделан, вы просто должны прививать репозитории вместе, используя инструкцию здесь: How to rebase one Git repository onto another one?

Легко и испытан! Конец связи!

+1

Я использовал версию git-tfs 0.24.2.0 и git версии 2.6.4 (обе 64-разрядные). И я ссылаюсь на второе решение, предложенное @Philippe – xJom