Как клонировать репозиторий 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-нет). Я ничего не знаю об этом инструменте, но, возможно, есть опция, которую вы можете передать, чтобы она автоматически обрабатывала добавление пустых каталогов.