Как объединить историю нескольких файлов в Git / SVN - PullRequest
0 голосов
/ 04 июля 2018

Я переношу старый репозиторий из SVN в Git. Этот репозиторий содержит несколько файлов, но по историческим причинам они существуют в подкаталоге для каждого месяца. Например:

Номинальные файлы

a.txt
b.txt
c.txt

Фактическая раскладка

/
|-201601
|  |- a.txt
|  |- b.txt
|  |- c.txt
|-201602
|  |- a.txt
|  |- b.txt
|  |- c.txt
|  
...
|-201807
   |- a.txt
   |- b.txt
   |- c.txt

(note no files at top level)

В рамках миграции я собираюсь удалить эти устаревшие подкаталоги, и у нас будут только файлы верхнего уровня. Тем не менее, в идеале я хотел бы объединить историю всех «версий» файла в одну, то есть при запуске git log a.txt в новом репо будут показаны все изменения, которые ранее были зафиксированы в 201807/a.txt, 201806/a.txt, и т.д.

Существует ли команда Git (или набор команд), которая позволит мне объединить истории / коммиты из нескольких файлов в один файл?

(Если это проще в Subversion, это тоже вариант; я могу изменить старый репозиторий перед импортом в Git.)

1 Ответ

0 голосов
/ 07 сентября 2018

Во-первых, что касается импорта из SVN в Git, используемым инструментом будет SubGit (бесплатно для одноразового импорта)

Во-вторых, вы можете рассматривать каждую папку с датами как «ветви» в SVN (с их собственной историей), и вы можете следовать « Макет, измененный по истории », чтобы указать SubGit, как обрабатывать эти папки.
Если это не применимо здесь (потому что ссылка, о которой я упоминаю, относится к одной ветви, которая переименована в его истории SVN), то вам необходимо сопоставить каждую папку / ветку с веткой Git.

...