subversion


alexu аватар

Как удалить файлы из Subversion (SVN) репозитория

Файлы из SVN репозитория нельзя удалить подобно файлам из CVS. Для удаления могут быть разные причины, включая случайный commit или разделение одного репозитория на несколько. На будущее разработчики запланировали опцию 'obfuscate', но в настоящее время единственным способом является следующий:

svnadmin dump /путь/к/репозиторию > myrepo.dump
cat myrepo.dump | svndumpfilter exclude /путь/к/ненужным/файлам/репозитория >myrepo.clean
mv /путь/к/репозиторию /путь/к/репозиторию.bkp
svnadmin create --fs-type fsfs /путь/к/репозиторию
svnadmin load myrepo.clean

Пояснения к коду ниже:

0
Ваша оценка: Ничего
ramok аватар

Права на запуск на файлах в репозиториях subversion

Для того то бы хранить в репозитории исполняемые скрипты с правами на запуск, svn предоставляет специальное property svn:executable. Обычно при коммите, если файл имеет права на исполение, svn автоматически устанавливает это property. Но если вам надо уборать права на исполение, то надо удалить svn:executable напрямую.

ramok@~work/stable-1-3/ds/scripts/ svn proplist header.gif
Properties on 'header.gif':
  svn:executable
  svn:mime-type
ramok@~work/stable-1-3/ds/scripts/ svn propdel svn:executable header.gif Logo.jpg
property 'svn:executable' deleted from 'header.gif'.
property 'svn:executable' deleted from 'Logo.jpg'.
ramok@~work/stable-1-3/ds/scripts/ svn commit -m "fix permission on header.gif Logo.jpg"
0
Ваша оценка: Ничего

Git и Subversion могут жить вместе

Предположим, что у вас есть централизованный сервер с svn репозиторием, но вы хотите использовать git локально, делать commit'ы, ветки и другие прелести децентрализованной системы контроля версий. С помощью git-svn это довольно просто.

0
Ваша оценка: Ничего
ramok аватар

Как бороться с mime property в svn

SVN при добавлении файла в репозиторий автоматически определяет бинарный это файл или нет. В зависимости от этого SVN будет вести себя с файлом по разному
(в частности не будет выводить diff для таких файлов).

Но бывает так что файл является текстовым, но править его как текст вы вряд ли будете.
Например ps, eps, xpm. И правке таких файлов получаются мегабайтные diff между commit, в которых трудно ориентироваться.

Для исправления этого недоразумения для файлов которые уже в репозитории можно указать напрямую MIME этого файла. Все что будет отличатся от text/* не будет интерпретироваться как текст. Например в директории img дадим всем .eps файлам правильный MIME и закомитим изменения.

$ svn propset svn:mime-type application/postscript img/*.eps
$ svn commit -m "fix mime for .eps"

Какие mime какому типу файла соответствуют можно подсмотреть в /etc/mailcap. и man mime незабудьте
прочесть Ж:-)

В долгосрочной перспективе рекомендую добавить в ~/.subversion/config этот текст
что бы все нужные propertis устанавливались автоматически.

0
Ваша оценка: Ничего