2016-01-08 2 views
3

Я пытаюсь выполнить миграцию из TFVC (Visual Studio Team Services) в git (размещенную через службы Visual Studio Team Services). Я смог построить скрипт, который переносит все вещи, ветки, делает некоторую очистку и т. Д. Я использовал git tfs (https://github.com/git-tfs/git-tfs/blob/master/doc/usecases/migrate_tfs_to_git.md) и несколько сообщений в блоге в Интернете.git filter branch фатальная ревизия

Все работает как шарм, за исключением, когда я пытаюсь очистки совершить сообщения, которые я получаю «Fatal: плохо Revision S/^ ГИТ-TFS-ID:. * $ // г» с помощью команды из док git filter-branch -f --msg-filter 'sed "s/^git-tfs-id:.*$//g"' -- --all

Я пытался играть с регулярным выражением, это не решает проблему. После многократного копания в Интернете я все еще не понимаю, почему он работает неправильно. Я использую git для командной строки Windows (последняя версия), и мои знания о git довольно просты, но я не мог найти альтернативы для достижения того, что я хочу делать.

Благодарим за помощь!

ответ

2

Наконец нашел то, что фактический вопрос был ... Цитирую вопрос git filter-branch -f --msg-filter 'sed "s/git-tfs-id:.*//gm"' -- --all
не работает git filter-branch -f --msg-filter "sed 's/git-tfs-id:.*//gm'" -- --all работы

Я предполагаю, что есть проблема совместимости между интерпретацией цитат из командной строки окна и Гит виртуальный баш.

Независимо от благодарности @Giuseppe Ricupero за вашу помощь!

+0

FYI Я сделал PR, который слился, чтобы исправить проблему в официальной документации https://github.com/git-tfs/git-tfs/pull/903 – baywet

+0

Вы только что сделали мой день! –

0

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

Получить версию sedwindows-compatible от одного из этих инструментов Unix-связки:

  1. UnxUtils (последнее обновление 2013, средний размер)
  2. Cygwin (постоянно обновляется, выбор по умолчанию, если вы не помните о размере)
  3. GnuWin32 (последнем обновления 2010)

Надеются, что это помогает!

+0

Спасибо за ответ. Я думал, что установка Git для Windows принесет некоторые из этих инструментов (возможно, я проверил что-то неправильно во время процесса установки?) Означает ли это, что я могу технически заменить это с помощью эквивалентного PowerShell? – baywet

+0

@baywet: Это может работать, но не проверено: '' git filter-branch -f -msg-filter '% {$ _ -replace "^ git-tfs-id:. * $", ""}' - --all'' –