Я переношу старый репозиторий из 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.)
git filter-branch
, но это в лучшем случае болезненно. - person torek   schedule 04.07.2018201806/a.txt
будет изменен только в июне 2018 года; как только наступит июль, этот файл будет скопирован в201807/a.txt
, и с этого момента любые изменения будут применяться к последнему файлу. Это глупая система, поэтому я собираюсь избавиться от него) - person Andrzej Doyle   schedule 05.07.2018