Задать вопрос

Как полностью убрать каталог из истории (NuGet Packages)?

На сколько я смог самостоятельно разобраться в вопросе, это невозможно. Однако всё равно есть надежда, что это сложно, но возможно.


Уже более 4-х месяцев ведется разработка с активным использованием NuGet (в среде Visual Studio), и Mercurial. Весь каталог Packages сохранялся в репозитории. Всё бы ничего, но размер репозитория распух до таких размеров, что история непосредственной разработки там занимает от силы 5-10%, остальное — это новые, удаленные и обновленные пакеты из NuGet. Поэтому было решено отказаться от трекинга этих файлов. Вот и возник вопрос, как полностью удалить папку Packages из истории с самого начала, сохранив при этом всю остальную историю? Должен заметить удаление папки не должно создать никаких конфликтов, если её убрать.


Вопрос к знатокам, как? Где почитать? Просим ткнуть носом. Вся наша скромная команда будет благодарна, так как делать клоны почти полугиговой репы — то ещё удовольствие.
  • Вопрос задан
  • 3909 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanKiLL
@FanKiLL
Добавте в проект .hqignore чтоб всякие логи, скомпилированные файлы не попадали в репозиторий, а только исходники.
Последняя строчка добавляет, чтоб Nuget пакеты игнорировались, вернее вся папка.
# use glob syntax
syntax: glob

*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]humbs.db
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.resharper

# ncrunch files
*.ncrunchsolution
*.ncrunchproject

# NuGet
packages/


Насчёт удаления папки из всей истории, цитата с stackoverflow.com:
Dont' worry, you cannot remove a file from prior history in Mercurial -- the history is generally immutable unless you start using extensions
Ответ написан
Комментировать
RyzhovAlexandr
@RyzhovAlexandr
люблю .NET, интересуюсь также Java, BigData
По поводу удаления истории из репозитория можно попробовать создать новый репозиторий, перенеся нужные файлы с историей, для этого была утилита hg convert. Вот на вскидку, что нашел www.zachburlingame.com/2011/05/extract-directory-f...

Настроив получение пакетов on demand, не забудьте чтобы nuget сервер был доступен при сборке на CI-сервере. Либо как альтернативу можно рассмотреть поднятие локального nuget-сервера, чтобы не зависеть от проблем с интернетом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы