Мы хотели бы уменьшить размер репозитория, удалив все двоичные файлы, обычно zip-файлы, которые не предназначены для разработки. Есть какой-нибудь простой способ их удалить?
Я предполагаю, что вы хотите уменьшить размер репозитория [на сервере], а не только извлеченный контент.
насколько я знаю единственный способ удалить что-либо из svn навсегда - это:
таким образом вы сохраните историю и все метаданные, но избавитесь от ненужных файлов [например, двоичных файлов].
К сожалению нет.
В настоящее время нет простого способа полностью удалить файлы из репозитория SVN. Эта функция (обычно называется стереть), запрашивается с 2001 года, но еще не реализован. Увидеть отчет об ошибке для всех деталей.
На данный момент временным решением является сброс репозитория, фильтрация дампа и повторный импорт. Это объяснено в стандартной книге, Контроль версий с помощью Subversion.
Лучший способ запретить людям проверять файлы, которые вам не нужны, - это использовать ловушку предварительной фиксации. Отклонить (т.е. вернуть значение, отличное от 0), если какой-либо из файлов в фиксации соответствует шаблону. Пользователь получит сообщение, когда попытается выполнить фиксацию. Вы можете установить global-ignores, но это применимо только к клиенту, если клиент установлен без установки игнорирования, они с радостью попытаются проверить все, что им нравится.
например. (используя командные файлы Windows, вам будет лучше с perl), чтобы ограничить определенные расширения файлов и вернуть плохие файлы с сообщением пользователю:
@echo off
svnlook log -t "%2" "%1" | d:\tools\grep -c "[a-zA-z0-9]" > nul
if %ERRORLEVEL% NEQ 1 goto DISALLOWED
echo Please enter a check-in comment 1>&2
exit 1
:DISALLOWED
svnlook changed -t %2 %1 > c:\temp\pre-commit.txt
rem ** remember to set the TruncatedExtensions registry setting to 0 **
rem ** or .resx will be matched as if it was .res **
findstr /G:"%1\hooks\ignore-matches.txt" c:\temp\pre-commit.txt > c:\temp\precommit-bad.txt
if %ERRORLEVEL% NEQ 0 exit /b 0
echo disallowed file extension >> c:\temp\precommit-bad.txt
type c:\temp\precommit-bad.txt 1>&2
exit 1
Где ignore-match.txt:
^[^D].*\.aps$
^[^D].*\.vbw$
^[^D].*\.obj$
^[^D].*\.ncb$
^[^D].*\.plg$
^[^D].*\.bsc$
^[^D].*\.ilk$
^[^D].*\.exp$
^[^D].*\.sbr$
^[^D].*\.opt$
^[^D].*\.pdb$
^[^D].*\.idb$
^[^D].*\.pch$
^[^D].*\.res$
^[^D].*\.suo$
^[^D].*\..*scc$
^[^D].*\\Debug
^[^D].*\.user$
Вы также можете запретить пользователям добавлять двоичные файлы, игнорируя их, вам нужно отредактировать ~ / .subversion / config и искать global-ignores. Если строка закомментирована, удалите символ решетки.
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store ._* *.log *.bak
поэтому вы можете добавить то, что хотите, я использовал его, чтобы очистить свой репозиторий от временных файлов Mac OS.
Надеюсь, это вам поможет.