2008-11-30 7 views
3

Вы знаете, как Subversion хранит копию каждого файла, извлеченного в скрытых папках .svn? Сайт, который я создаю, довольно большой (имеет более 1Gig файлов PDF). Эти файлы PDF очень редко меняются в течение всего существования веб-сайта.Файлы скрытой ревизии Subversion

Мне было интересно, есть ли способ сообщить Subversion о том, что он не должен хранить локальную копию ревизии определенного набора файлов (мои файлы PDF), а просто синхронизировать с сервером всякий раз, когда происходит изменение любого из эти файлы?

ответ

3

Subversion использует версию в папках .svn, чтобы иметь возможность отличать новый файл от старого файла и отправлять только различия с сервером subversion.

Так нет, нет никакого способа, чтобы не иметь файлы внутри папок .svn, которые до сих пор позволяет совершать эти файлы

1

Возможно, вам стоит рассмотреть возможность управления «живой» копией вашего сайта с помощью svn export вместо оформления заказа. Это полностью исключало бы проблему с большими файлами в папках .svn.

Ваш рабочий процесс может выглядеть так:

  1. Редактирование файлов локально, тест в тестовом развёртывании
  2. Фиксировать изменения в хранилище
  3. Выполнить svn export из хранилища в живой системе

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

На самом деле мне приходит в голову, что я не знаю, беспокоитесь ли вы об этих скрытых PDF-файлах в своей рабочей проверке или развертывании сервера. Если это в вашей рабочей проверке, то я не знаю, как избежать этих файлов с помощью Subversion. Однако, если вы используете Git с git-svn, тогда Git будет управлять собственной сжатой историей без полных копий всех файлов.

+0

Полное развертывание моего сайта работает через обновление svn. Экспортирование через концерт из репозитория svn, размещенного за пределами площадки, для меня не кажется хорошей идеей. Спасибо, что ответили. – Luke 2008-11-30 23:02:08

2

Идея в другом ключе: если вы используете Bazaar + bzr-svn или Git + git-svn, они сохраняют гораздо более экономичную рабочую копию, и вы все равно можете обновлять ее непосредственно из своего репозитория.

+0

Не вариант для меня на данный момент. – Luke 2008-11-30 23:03:39

1

Как говорит Грег, использовать экспорт SVN - но сделать экспорт SVN в локальный каталог, а затем rsync этот локальный каталог на удаленный сайт.

Это дает вам комбинацию (a), не имеющую каталогов .svn, и (b) только отправку изменений из локальной системы на удаленный.

Если это не так, как предложили Грег и Орип, сделайте удаленный контроль, используя 'git-svn'. Он по-прежнему имеет некоторые накладные расходы на пространство, затрачиваемое на экспорт svn, но он будет меньше полной рабочей копии svn.

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