удалить .svn при сборке пакетов Debian

При сборке пакета Debian мы используем файл debian/mypackagename.install, чтобы указать инструменту упаковки debhelper, куда копировать файлы и папку.

Проблема в том, что папки содержат папку .svn, которая копируется в дерево пакетов и, наконец, отправляется на целевую машину! есть ли стандартный способ исключить папки .svn при сборке пакета?


person amin    schedule 26.02.2012    source источник
comment
Я не знаю о debian и упаковке, но вы можете использовать svn export для экспорта рабочей копии (за исключением файлов .svn), а затем упаковать экспортированный каталог.   -  person JB Nizet    schedule 26.02.2012
comment
спасибо, вы правы, использование svn export - это стандартный способ, я забыл об этом.   -  person amin    schedule 26.02.2012
comment
Кроме того, вы можете создать сценарий bash для удаления всех папок .svn из папки проекта и подпапок.   -  person ecle    schedule 26.02.2012


Ответы (2)


Я не знаю, как выглядит ваша система сборки в деталях, но чтобы исключить .svn (CVS, .git и т. д.), вы можете использовать опцию -X для dh_install:

$ dh_install -X .svn

или экспортируйте переменную DH_ALWAYS_EXCLUDE в файл debian/rules:

$ cat debian/rules 
#!/usr/bin/make -f
# -*- makefile -*-
# Sample debian/rules that uses debhelper.
# This file was originally written by Joey Hess and Craig Small.
# As a special exception, when this file is copied by dh-make into a
# dh-make output file, you may use that output file without restriction.
# This special exception was added by Craig Small in version 0.37 of dh-make.

# Uncomment this to turn on verbose mode.
# export DH_VERBOSE=1

export DH_ALWAYS_EXCLUDE=CVS:.svn

%:
    dh  $@
person Bartosz Moczulski    schedule 26.02.2012
comment
Кроме того, $ debuild -I будет игнорировать каталоги VCS при сборке .tar.gz с вашими исходными кодами. Этот параметр -I не упоминается в man, но вы найдете его в исходниках debuild. - person Bartosz Moczulski; 26.02.2012
comment
Я проверил, debuild -I работает и для .git Спасибо! - person Sergey Ponomarev; 02.06.2019

Как правильно написал @JB_Nizet, вы можете использовать svn export для получения каталога без всех папок .svn. Если вы не можете использовать экспорт, вы можете использовать find -name .svn -and -type d -exec rm -rf {} + для рекурсивного удаления всех папок .svn в каталоге.

person Rudi    schedule 26.02.2012