Как клонировать репозиторий CVS с пустыми каталогами

Я конвертирую репозиторий CVS в репозиторий Git со следующей командой:

$ git cvsimport -vaikd :pserver:thillaiselvan@192.168.1.11:2401/ -C IVR-GUI GIT

однако Git игнорирует пустые каталоги в репозитории CVS. Но я хочу, чтобы репозиторий был клонирован, включая эти пустые репозитории. Как я могу заставить Git сделать это?

1 ответов


Git не может отслеживать пустые каталоги, поэтому они не переносятся в преобразовании CVS-Git. От git FAQ: "каталоги добавляются автоматически при добавлении файлов внутри них."Ваши каталоги не отображаются, потому что Git ничего не отслеживает внутри них.

как отслеживать пустые репозитории в Git

один обходной путь для отслеживания пустых каталогов-разместить пустой файл, например .gitkeep в каждом пустом каталоге (.gitkeep используется по соглашению, но вы можете назвать этот файл как угодно). Отслеживайте файлы, тогда вы сможете клонировать пустые каталоги. Есть несколько других способов добавить пустые директории в репозиторий Git.

вручную скопируйте пустые файлы из уже существующего репозитория CVS

следующая команда скопирует все пустые каталоги в репо cvs в репозиторий Git (замените фиктивные пути к каталогам)

$ find ~/cvs_repo -type d -empty -exec cp -r {} ~/git_repo/ \;

затем вы можете добавить эти пустые каталоги к вашему проекту с вашим обходным путем выбора, и следить за чем-то вроде $git commit -m "Add empty directories to repository".

автоматизация процедуры с cvsimport?

теперь я бы предположил, что cvsimport компенсирует эту разницу в VCS (CVS позволяет отслеживать пустые каталоги, Git-нет). Я ничего не знаю об этом инструменте, но, возможно, есть опция, которую вы можете передать, чтобы она автоматически обрабатывала добавление пустых каталогов.