Стратегии очистки после создания исходного кода с использованием, например. Гит - PullRequest
2 голосов
/ 30 сентября 2010

Я (в основном) использую git для загрузки и компиляции различных проектов из их исходного кода, сохраняя мой исходный код в /usr/local/src и устанавливая двоичные файлы в /usr/local/bin.

Следуя процедуре сборки, обычно с ./configure && make && make install, у меня остаётся много беспорядка, который заканчивается как «новые» файлы в моем локальном репозитории git.

Насколько я понимаю, make clean, make distclean и, возможно, также (?) ./configure clean - мыслимые процедуры для удаления большинства оставшихся файлов. Но в определенных сценариях (см. Пример ниже) я ничего не понимаю, что нужно сделать, чтобы «остаться чистым», как я это делал до установки ...

Недавний пример - установка jscoverage (через git svn ) из http://svn.siliconforks.com/jscoverage/trunk jscoverage:

Инструкции по сборке для этого проекта побудили меня использовать . / Bootstrap.sh && make && make install. В этом случае после завершения компиляции и установки я попробовал все вышеупомянутые команды очистки (случайным образом), но не смог избавиться от всего.

В заключение мой вопрос: есть ли какая-то мощная, превосходящая стратегия очистки, которую я не понял? Как вы подходите к этой проблеме очистки при использовании VCS, такой как git, в типичном рабочем процессе, где вы: 1.) скачиваете - 2.) собираете - 3.) извлекаете обновления из вышестоящего репозитория - 4.) собираете еще раз - и так далее

Ответы [ 2 ]

4 голосов
/ 30 сентября 2010

Существует также git clean («Удалить неотслеживаемые файлы из рабочего дерева»).Это простая команда с относительно небольшим количеством опций командной строки.См. Справочную страницу git-clean .

4 голосов
/ 30 сентября 2010

Для проекта с автоматическим набором символов (т. Е. Большинства из тех, которые используют ./configure && make && make install), make distclean приведет вас в состояние нетронутого дистрибутива дистрибутива.Они не будут удалять все автоматически, потому что это приведет к зависимости от дополнительных инструментов для конечного пользователя.

Многие пакеты предоставляют make maintainer-clean, который удаляет как можно больше, но все равно будетДержите вокруг достаточно, чтобы построить проект (если у вас есть правильные инструменты разработчика).Это все равно не удалит файлы типа Makefile.in, которые необходимы для создания Makefile.Идея здесь в том, что ./configure && make должно быть достаточно для сборки всего (при условии, что установлены все зависимости).

Тем не менее, я думаю, что вы, возможно, задаете здесь неправильный вопрос.Если я не собираюсь хранить исходный код, я просто удалил каталог с исходным кодом после установки.Если я планирую получать обновления и перестраивать, я бы даже не стал беспокоиться о make clean: весь смысл инструментов, подобных make, заключается в том, что они восстанавливают только измененные части проекта, и одержимая очистка побеждает это.1015 *

Когда я разрабатываю свои собственные проекты, я помечаю любой автоматически сгенерированный файл как игнорируемый VCS, поэтому он не появляется постоянно.SVN имеет свойство svn:ignore, mercurial имеет файл .hgignore, а git имеет файл .gitignore, например.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...