Subversion (svn) для начинающих - PullRequest
5 голосов
/ 16 апреля 2010

Вот что я пытаюсь сделать. У меня есть проект в / var / www / project. Я хотел бы использовать SVN для этого проекта. Для этого я установил SVN на свой сервер Debian, но я не понимаю, как его использовать, и поиск в Google еще больше запутал меня. Я хотел бы создать репозиторий / var / svn / project и использовать его. После того, как произошли некоторые изменения, я хотел бы экспортировать весь код обратно в / var / www / project. Теперь вот что я сделал:

  • Я создал хранилище: svnadmin create / var / svn / project
  • Я импортировал код: svn import / var / www / project file: /// var / svn / project -m "Начальный импорт"
  • Я проверил код с клиентом "Версии"

Кажется, все работает нормально, но ... Если я захожу в / var / svn / project, там нет никаких исходных файлов из моего проекта или в любом подкаталоге. Хотя клиент SVN может извлекать все эти файлы. Итак, я прочитал, что в SVN файлы не хранятся отдельно ни в Berkley DB, ни в файловых системах fsfs. Тогда возникает вопрос ... как мне экспортировать исходный код обратно в / var / www / project? Если я выполняю команду экспорта SVN в каталоге / var / svn / project, он говорит, что я не в рабочей копии: (

Ответы [ 7 ]

3 голосов
/ 16 апреля 2010

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

После того, как вы создали хранилище, вам почти никогда не нужно ничего делать в этом каталоге, кроме как для настройки (например, авторизация пользователя).

Вся ваша работа должна продолжаться в каталогах рабочих копий.

Чтобы получить код в папку www, введите:

cd /var/www/project
svn checkout /var/svn/project

Теперь вы можете редактировать код в этом рабочем каталоге (/var/www/project) по своему усмотрению. Если вы хотите зафиксировать эти изменения, наберите

svm commit -m "Commit message"

И изменения вернутся в хранилище.

1 голос
/ 16 апреля 2010

Во-первых, я рекомендую http://svnbook.red -bean.com / в качестве справки.

Вы хотите экспортировать из вашего репо в ваше местоположение. Вы можете достичь этого с помощью:

svn export file:///var/svn/project /var/www/project

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

0 голосов
/ 16 апреля 2010

Вы можете рассмотреть возможность использования распределенной системы контроля версий, такой как Mercurial .

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

Информацию о Mercurial смотрите по этой ссылке ниже. Жаль, что я никогда не беспокоился о SVN.

http://hgbook.red -bean.com / чтения /

0 голосов
/ 16 апреля 2010

Svn сохраняет файлы в своей собственной системе баз данных. Если вы хотите заменить код в / var / www / project на экспортированную версию, вы должны вызвать export для рабочей копии. Вы должны удалить / var / www / project (сначала сделайте резервную копию!) И заменить его копией wokring.

0 голосов
/ 16 апреля 2010

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

0 голосов
/ 16 апреля 2010

Убедитесь, что файлы не помещены в /var/www/project/project.

0 голосов
/ 16 апреля 2010

вы бы запустили команду svn export со стороны клиента, чтобы экспортировать чистое дерево по другому пути на вашем клиентском компьютере или в другом хранилище. похоже, что / var / svn / project - это ваш репозиторий (сервер)

если вы хотите экспортировать напрямую из вашего хранилища, используйте файл экспорта svn: /// tmp / repos my-export

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...