Я делаю что-то подобное все время. Я использую GIT для отслеживания нескольких выпусков и нескольких ветвей из большого проекта SVN. Проект имеет ~ 200 модулей SVN каждый в подкаталоге 'src'. Когда я запустил репозиторий GIT, я проверил v9.4.4 проекта, добавил «git init» .gitignore и .gitattributes, сделал «git add -A» и «git commit -m» v9.4.4 ». Затем I переместил. Вышла из проекта и создала символическую ссылку . Когда вышла версия v9.4.5, я проверил ее, добавив символическую ссылку на теперь общий .git-каталог, добавленный .gitignore и .gitattributes, сделал «git add -A» и «git commit -m» v9. 4.5. На данный момент у меня есть один репозиторий GIT, символически связанный с двумя каталогами.
С помощью этой настройки вы можете выполнять любые операции git, которые не касаются рабочего каталога. Итак, для моего приложения «git diff v9.4.4..v9.4.5» отлично работает. Конечно, вы также можете выполнять операции git, которые касаются индекса и рабочего каталога, но тогда вам нужно быть осторожным, чтобы этот репозиторий находился в правом фиксации для выпуска, в котором вы находитесь.
Я также использовал это для нескольких ветвей. В этом случае крайне важно использовать «git symbolic-ref HEAD refs/heads/a-branch», чтобы изменить ветвь без, касаясь рабочего каталога. Поэтому, когда моя версия проекта s3 появилась, я сделал «git branch s3 v9.4.4», создал мою символическую ссылку .git, сделал «git symbolic-ref HEAD refs/heads/s3» и последовал за ней с помощью «add» и «совершить».
Я считаю, что это то же самое, что удаление всех файлов из рабочей копии Git и вставка файлов из репозитория CVS. Это должно работать и показывать все изменения, которые были сделаны. – Tadeck