Можем ли мы установить сервер SVN на локальном компьютере без доступа к сети?

25

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

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

Поэтому мне было интересно, могу ли я установить локальный сервер на моей машине с Windows XP, к которому у меня есть доступ, даже если у меня нет подключения к интернету?

Айтезаз Абдулла
источник
15
Я настоятельно рекомендую использовать git для чего-то вроде svn для описанного вами рабочего процесса
Daenyth
7
Вы, конечно, можете установить SVN локально и использовать его. Никаких проблем с этим. visualsvn.com/server/download
Алекс
8
Или ртутный; "hg init" создает хранилище в каталоге, в котором вы находитесь ... не может быть намного проще, чем это?
Perp
8
Я не вижу ничего в этом вопросе, чтобы предложить DVCS необходимо. Subversion идеально подходит для описанного сценария. Давайте не будем размывать наши ответы рекомендациями по альтернативам, когда для этого нет технической причины.
RichardM
3
@RichardM: Нет ничего плохого в том, чтобы предлагать другое решение, если оно проще в настройке и более ориентировано на будущее. DVCS предоставляет множество других преимуществ, если OP хочет сотрудничать с другими людьми в один прекрасный день.
Марко-Фисет

Ответы:

31

Самый простой способ настроить локальный сервер - это использовать svnserve :

В Subversion входит Svnserve - легкий автономный сервер, который использует собственный протокол через обычное соединение TCP / IP. Это идеально для небольших установок, или когда невозможно использовать полноценный сервер Apache.

На самом деле вам не нужен сервер Subversion, если все, что вам нужно сделать, это получить доступ к хранилищу локально, поскольку вы можете получить доступ к хранилищу Subversion через URL-адрес файла, как описано в этом ответе. :

Вы можете получить доступ к хранилищу, используя протокол file: //, поэтому вам потребуется только установленный Tortoise SVN и ничего больше. Смотрите этот вопрос в FAQ: Возможно ли использовать TortoiseSVN без сервера?

Вы даже можете иметь репозиторий на USB-устройстве, чтобы вы могли взять источник с собой и продолжить работу с других компьютеров.

Если вы используете TortoiseSVN , вы можете найти инструкции в разделе Создание репозитория с помощью TortoiseSVN :

  1. Откройте проводник Windows

  2. Создайте новую папку и назовите ее, например, SVNRepository

  3. Щелкните правой кнопкой мыши по вновь созданной папке и выберите TortoiseSVN → Создать репозиторий здесь ....

Сразу выше на этой странице также описано, как создать репозиторий из командной строки .


Сказав это, я бы порекомендовал вам взглянуть на Mercurial или Git как альтернативу svn. Если вы знакомы с TortoiseSvn, то вы найдете TortoiseHg и TortoiseGit простым переходом, плюс он дает вам гибкость для работы распределенным способом позже, если вам это нужно. Например, в прошлом я использовал карты памяти для передачи hgрепозиториев между компьютерами без доступа к сети, и когда вы работаете таким образом, вы получаете бесплатную резервную копию в сделке.

Марк Бут
источник
Какой отличный ответ!
Стив
9

Самый простой (и самый быстрый) сервер, который вы можете использовать для работы с локальным репозиторием, встроен в каждый svn-клиент . Это сервер для доступа к любому хранилищу и любому количеству хранилищ , существующих в локальной файловой системе, используя файл протокола: ///. Он не предоставляет никаких методов авторизации или аутентификации, предоставляет только полный неограниченный доступ к контролируемому репозиторию, но, с другой стороны, он позволяет использовать и предоставляет все возможности VCS-системы как таковой.

Чтобы использовать этот сервер, у вас есть в любом пустом каталоге в любом месте вызов CLI-команды svnadmin с соответствующей подкомандой и параметрами (я не могу вспомнить, есть ли административные программы в комплекте CLI-клиента или нет, и не может проверьте это - я не установил CLI svn-client, только TortoiseSVN, в котором есть эти программы в установщике в версии 1.7) - надеюсь, вы сможете найти его.

svnadmin help покажите нам все доступные подкоманды, теперь мы заинтересованы в подкоманде create .

svnadmin help create предоставить все необходимые нам детали

create: usage: svnadmin create REPOS_PATH

Create a new, empty repository at REPOS_PATH.

Valid options:
...

В начальной точке первого репо мы можем игнорировать все параметры точной настройки и помнить только основную форму svnadmin create REPOS_PATH, там REPOS_PATH - это абсолютный или относительный путь к пустому каталогу, запланированный для репо. Поскольку в большинстве случаев обычные пользователи Windows для кросс-платформенного приложения могут запутаться, какую нотацию (прямую или обратную косую черту) использовать в пути (metoo), самый безопасный способ - cdэто местоположение, из которого наш каталог виден без длинного пути. - родитель будущего репо-каталога или самого каталога. Для запланированного репо z:\Main до svnadmin create

Z:
cd \Main

и, наконец,

svnadmin create .

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

RepoFolder

Теперь каждый раз, когда нужен этот репозиторий , мы используем обычные SVN-команды, там URL-часть или параметры выглядят какfile:///Z:/Main

c:\>svn ls file:///Z:/Main
branches/
tags/
trunk/

(Я добавил стандартное дерево репозитория в репо).

Давайте рассмотрим этот странный URL:

  • file:///, как и для любого URL, означает протокол доступа, в нашем случае протокол является специальным и имеет три, а не две косые черты.
  • Z:/Main полный путь к репо с диском и путь внутри диска, там все обратные косые черты Windows заменены на «классические» прямые косые черты

С любого другого момента этот репозиторий не имеет никаких отличий от «Больших братьев» со специальными Subversion-серверами.

RepoBrower для файла: /// репо

Ленивый Барсук
источник
1
@ Ленивый барсук ОП четко спросил, как настроить сервер SVN. Вы сказали ему избегать использования какого-либо сервера вообще. Это позволяет избежать ответа на вопрос, как указано.
альтернатива
5
@mathepic - на самом деле OP спрашивает, как настроить SVN- репозиторий, а не сервер - огромная разница.
Murph
5

Давайте попробуем ответ, который рекомендует общие решения, а не особенности.

Во-первых, да, вы можете использовать Subversion на автономном компьютере - вы можете установить сервер локально или работать с файлом: //


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

Одним из преимуществ DVCS является то, что после установки инструментов репозитории автономно размещаются в папке, и вы можете синхронизировать содержимое между разными папками, содержащими «одно и то же» хранилище, при условии, что у вас есть доступ на уровне файлов. У вас также есть возможность поговорить с «серверными» версиями этих репозиториев (которые либо размещены в частном порядке, либо доступны в качестве службы). Это делает жизнь намного проще, управляя всем локально.

У DVCS есть и другие преимущества.

Как я уже отмечал, я не думаю, что у вас действительно есть правильное решение VCS, пока ваш код находится как минимум на двух компьютерах (в частности, на двух разных жестких дисках и, в идеале, в нескольких местах), хотя клонировать и нажимать, например, на USB-накопитель или «облачное» хранилище (skydrive, dropbox и др.) - это еще один способ, который также должен работать).

Что касается DVCS - я бы посмотрел на Mercurial (Hg) и Git, а также на Veracity . Я использую Mercurial, потому что его все еще лучше на окнах ...

Если вы согласны с условиями размещенных сервисов, я на самом деле согласен с тем, что Github заслуживает похвалы, но есть много хороших вещей в отношении bitbucket и Fogbugz / Kiln ... и то же самое, вероятно, относится ко многим другим сервисам. который я не перечислил (например, http://beanstalkapp.com/, о котором упоминалось при передаче мне в твиттере ранее сегодня)

Murph
источник
2

Subversion не требует сервера. Он использует централизованное хранилище, но к этому хранилищу можно получить доступ через метод доступа к файлу, что означает, что вам просто необходим доступ к файловой системе, в которой хранится хранилище. Самый простой способ настроить это - создать папку где-нибудь на жестком диске, указать на нее TortoiseSVN (или аналогичный инструмент) и «создать репозиторий здесь». Оттуда вы можете делать все, что вам нужно, чтобы получить свой код в хранилище.

Тем не менее, в долгосрочной перспективе вам, вероятно, будет лучше использовать распределенную SCM, лучшими кандидатами будут git (более мощный, крутой курс обучения, лучше всего работает на * nix) и mercurial (чуть менее мощный, простой в освоении, работающий одинаково хорошо на windows и * nix). С их помощью ваша рабочая копия содержит весь репозиторий, и вы можете сделать столько клонов (удаленных или локальных), сколько пожелаете. Вы можете начать локально, и если вы решите разместить репозиторий извне, вы просто клонируете существующий локальный репозиторий во внешнее местоположение, и вы можете синхронизировать в обоих направлениях в любое время. Еще лучше, поскольку каждый из ваших клонов содержит всю историю проекта, SCM выполняет функцию резервной системы. С Subversion, если ваш сервер умирает, а вы не создали его резервную копию, ваша история исчезает - с помощью git,

http://hginit.com/ имеет отличный учебник по началу работы с Mercurial.

tdammers
источник
1

Есть немало хостинговых компаний SVN которые предлагают бесплатную учетную запись для одного или двух разработчиков и не требуют, чтобы ваш код был общедоступным. Проверьте связанный график для платы за 0 $, Требуемый OSS = НЕТ. Я насчитываю девять поставщиков, которые соответствуют этим критериям прямо сейчас.

Хотя вы, безусловно, можете очень легко разместить свой собственный репозиторий, есть несколько преимуществ, которые дает использование провайдера:

  • Вы можете получить доступ к своему коду из любого места без дополнительных настроек.

  • Хранение кода вне сайта защищает вас от сбоев жесткого диска, пожаров и т. Д.

  • Низкие административные расходы.

Калеб
источник
Я вижу разумную концепцию на стороне OP - он хочет SVN, и хочет это локально (последнее слово - самое важное). Случайный вариант использования. Вы ответили по другому варианту использования , который можно считать «Не ответом» - перечитайте текст с первых слов, пожалуйста! Я не помечал ваши и другие ответы как "не ответ", хотя формально они не являются ответами . HTH
Ленивый Барсук
Перечитайте ПОСЛЕДНЮЮ ОТПРАВЛЕНИЕ ОП: «Могу ли я настроить локальный сервер на моем компьютере с Windows XP, к которому у меня есть доступ, даже если у меня нет подключения к Интернету?» - это вопрос в простом английском тексте. Этот вопрос требует ответа. Ваш ответ как- нибудь соотносится с вопросом ?! Будьте честны хотя бы с собой , признавая ошибки
Lazy Badger
Я не читаю между строк (и показывал это более одного раза ), я читаю именно то, что было написано, и отвечаю на заданный вопрос, не думая об авторе, что он хотел сказать, но не сказал . Вопреки большинству ответов в этой теме, ответы там не коррелируют с вопросом
Lazy Badger