У меня есть скомпилированная статическая библиотека (с расширением "a" ), которую я хочу включить в мой SVN-репозиторий, но добавление никогда не работает (без проблем с добавлением других типов элементов). Если я изменил расширение (например, "library.a" → "library.b" ), добавление работает. Почему "а" не работает? Есть ли способ обойти это без переименования файла?
SVN не будет импортировать *.a библиотеку
Ответ 1
Вы проверили свои глобальные параметры игнорирования. В linux они хранятся в ~/.subversion/config
По умолчанию на моей машине есть:
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
поэтому он игнорирует файлы *.a
подробнее здесь
Вы можете добавить файл с помощью
svn add "file" --no-ignore
чтобы обойти любой набор правил игнорирования.
Если команда:
svn status --no-ignore
возвращается с I, перед вами есть локальный Игнорировать. Run:
svn propedit svn:ignore
Ответ 2
Итак, я предлагаю на самом деле отредактировать этот файл ~/.subversion/config, чтобы снова разрешить файлы .a:
global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.pyc *.pyo
#global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
Потому что в моих проектах у меня много файлов .a.
Ответ 3
В Mac OSX (Lion) я использую SCPlugin (http://scplugin.tigris.org/).
Это добавляет приятное всплывающее окно с SVN-командами на нем, и оно позволяет мне добавлять *.a файлы, когда svnx или xcode не позволяют это.
Я подозреваю, что это на самом деле ошибка, так как она явно игнорирует правильные параметры игнорирования (по иронии судьбы), но для тех, кто не хочет связываться с терминалом, это доказывает удобство.
EDIT: SmartSVN также позволяет просматривать проигнорированные файлы, чтобы их можно было добавить как обычный файл. Просто проверьте опции "проигнорированные файлы" в меню просмотра.
Ответ 4
Кстати, если вы используете импорт SVN (т.е. не рабочую копию), вы можете переопределить глобальные игнорирования с помощью:
--config-option=config:miscellany:global-ignores=[new ignores]
Ответ 5
Мы можем добавить библиотеку на svn:
svn add library.a --no-ignore
После добавления svn необходимо обновить:
svn update
Заменить изменения в svn, используя:
svn commit -m "library.a added on svn"
Ответ 6
Я недавно встретил этот вопрос, это мой способ:
svn import --no-ignore --force svn://destination