2013-03-12 7 views
3

У меня есть рабочий репозиторий, который я создал давно, и теперь я пытаюсь настроить другое, но у меня большие трудности. Вот что я сделал, чтобы создать вторую; и я ожидаю, что это работает:Как настроить простой SVN-сервер?

U:\repos>svnadmin create repo1 
U:\repos>echo password-db = passwd >> repo1/conf/svnserve.conf 
U:\repos>echo auth-access = write >> repo1/conf/svnserve.conf 
U:\repos>echo user1 = user >> repo1/conf/passwd 
U:\repos>cd repo1 
U:\repos\repo1>svnserve -d 

И в другом терминале:

U:\>mkdir wc 
U:\>cd wc 
U:\wc>svn co svn://localhost/repo1 
svn: E210005: Unable to connect to a repository at URL 'svn://localhost/repo1' 
svn: E210005: No repository found in 'svn://localhost/repo1' 
U:\wc> 

Другой репозиторий настроен таким же образом на u:\repo. Что происходит?

+2

Возможно, стоит рассмотреть альтернативы, такие как http://visualsvn.com/, которые очень легки в использовании, настройка выполняется за несколько кликов, а также создание и управление репозиториями. Я знаю, что это немного от вашего вопроса, но все же в качестве комментария он не может обидеть много, чтобы добавить его. :) – Viezevingertjes

+1

@MrMichael Отличный комментарий, и добро пожаловать. Я собирался только для командной строки (и только svn-tools-only, то есть стороннего), потому что мне нужно что-то очень портативное, маленькое, без установки, _etc_. –

+2

@MrMichael * Portable? Маленький? Нет установки? * Знаете ли вы, что вы можете получить доступ к репозиторию Subversion без какого-либо сервера? То есть вы можете получить доступ к репозиторию непосредственно на диске с помощью 'file: /// URL'. http://svnbook.red-bean.com/en/1.7/svn.serverconfig.multimethod.html – bahrep

ответ

3

Во-первых, cd repo1 является излишним: svnserve не заботится о рабочем каталоге в этом случае.

Чтобы сделать ваш пример работы, измените -d на -d -r \repos.

Кроме того, вы можете изменить команду co на номер svn co svn://localhost/repos/repo1.

Когда svn co запущен, он использует URL-адрес, чтобы сообщить svnserve, где искать репо. По умолчанию этот путь относится к /, а не к рабочему каталогу, где был запущен svnserve! Существующий репозиторий работает, потому что репо находится в /, а не потому, что svnserve был запущен с /repo. Если вы хотите, чтобы на пути вашего репо указывалось где-то, кроме /, используйте -r [--root] вариант svnserve.

Это означает, что хранилище хранится в u:\repos\repo1, при запуске с svnserve -r u:\repos должны быть ссылки на URL /repo1 (svn://localhost/repo'), а не /repos/repo1. Capish?

+0

@Mawg Спасибо за предложение. Принято. –