2013-04-08 6 views
0

Решено перейти от CVS к SVN.Подзаголовок SVN сначала фиксирует игнорирование некоторых каталогов

Я устанавливаю новый репозиторий в подзаймы для моего проекта. Когда я перехожу к «Готово» к настройке, он хочет выполнить начальную фиксацию и представляет мне плоский список файлов, чтобы выбрать файлы для контроля версий.

Проблема: у меня есть тысячи сгенерированных двоичных файлов, которые я не хочу комментировать.

Так что я нажимаю на отмену, потому что мне понадобится целый день, чтобы пройти и отменить выбор всех нежелательных файлов. Раздражающе, когда я нажимаю на родительскую категорию для файлов, которые я хочу игнорировать, это не рекурсивно!

Поэтому я нажимаю Отменить, затем перейдите в структуру каталога eclipse для проекта и вручную установите svn: ignore во всех каталогах, которые я хочу игнорировать. Затем я снова пытаюсь совершить фиксацию, и все файлы снова представлены - игнорировать, похоже, ничего не сделали.

Может ли кто-нибудь указать, что я могу делать неправильно?

ответ

1

Для первого фиксации я рекомендую записать небольшой скрипт для удаления (конечно, у вас будет резервная копия) все файлы, которые не предназначены для фиксации.

Затем, если вы обнаружили, что случайно совершил файл, вы можете

svn delete file 

После первой проверки, скопируйте обратно (или, еще лучше, регенерировать) все бинарные файлы. Это заставит svn заметить, что ваш локальный репозиторий не синхронизирован с удаленным репозиторием.

cd <Root of local repository> 
svn status 

Вы увидите много предметов, которые будут добавлены. Перейдите в родительский каталог и добавьте свойства svn:ignore для каждого из сгенерированных объектов.

cd build 
svn propedit svn:ignore . 

который откроется редактор (если нет, то вам необходимо установить SVN_EDITOR переменную окружения в подходящем редакторе). Затем вы можете добавить записи, которые будут знать svn, не отслеживаются.

(in the ignore property editor) 

target 
build 
image* 
*.o 

(and so on) 

Сохраните файл, и он будет поставил для следующей фиксации. Последующие прогоны svn status больше не будут показывать эти файлы как «необходимые для добавления», но они покажут, что каталог «необходимо выполнить» (это ревизия в каталоге) »

+0

Спасибо за это предложение. Я удалил все сгенерированные файлы и сохранил их родительские каталоги. Затем я совершил проект и не выбрал несколько каталогов, содержащих двоичные файлы. Как только коммит был закончен, я мог вернуться и svn: игнорировать родительские каталоги, которые я не хотел использовать svn для версии. Затем при следующем полном обновлении эти файлы не были включены и не нуждались в повторном выборе. Я немного удивлен, что нет возможности просто снижать каталоги при первом импорте, хотя .. – someuser

+0

@l_t Похоже, вы хорошо на своем пути. Просто имейте в виду, что если вы создаете каталоги в дополнение к файлам, лучше всего не проверять сгенерированные каталоги, или система svn будет постоянно жаловаться, если ваша сборка удалит и воссоздает их. Если они уже проверены, это не имеет большого значения, вы всегда можете 'svn удалить их. Что до удивления, чем больше вы об этом думаете, тем меньше сюрприз. Параметры для перечисления всех «нежелательных» каталогов будут столь же плохими, как и варианты перечисления только «желаемых» каталогов. –

Смежные вопросы