2016-06-09 3 views
2

Я не хочу знать различия между двумя VCS, но у меня есть один репозиторий CVS с кучей модулей и один git-репозиторий с другим набором эквивалентных подмодулей.определить различия CVS/git

Для каждого из этих модулей: Я хочу, чтобы создать список различий в файл между двумя хранилищами (или модулей/подмодулями)

Если оба мерзавцем и CVS доли точно таким же контент этого список должен быть пустым , но в других случаях я ищу список с соответствующими дельтами. Что изменилось с одной стороны, а что с другой? Какие файлы были удалены ... и т.д.

Каков наилучший способ достичь этого?

ответ

1

Если путь каждого субмодуля то же самое в CVS и мерзавца репо, вы можете использовать git --work-tree=... status или git --work-tree=... diff быстро увидеть разницу между:

  • индекс мерзавец
  • Сорта путь, используемый в качестве дерево джиттов.

Что-то вроде:

git submodule foreach 'git --work-tree=/path/to/cvs/repo/$path diff` 

ВИДЕТЬ git submodule foreach команду

foreach 

Оценивает произвольная команда оболочки в каждом Выдана подмодуль.
Команда имеет доступ к переменным $name, $path, $sha1 и $toplevel

$path это имя каталога подмодуль относительно суперпроекте

1
  1. контроль мерзавец репо в папку с
  2. проверку cvs repo в папку b
  3. удалить все файлы из папки a
  4. копирование всех файлов из папки б к
  5. мерзавца дифф
+1

Вот почему я предлагаю 'GIT --work дерево =/...' подход: не нужно копировать файлы из одного хранилища, другой. – VonC

Смежные вопросы