8-900-374-94-44
[email protected]
Slide Image
Меню

Svn windows: Visual Studio integration · TortoiseSVN

Содержание

Установка и настройка SVN (сервер+клиент) / Хабр

По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.

С самого начала сообщаю, что для SVN есть подробное руководство. Называется оно svn-book и доступно на сайте и идет вместе с CollabNet Subversion-server. Так же про установку и настройку svnserv с Apache есть описание в учебнике по TortioseSVN (довольно хорошая подробная помощь на русском).

На самом деле SVN-клиент может отлично работать и без сервера. Репозиторий (хранилище кода) можно создать в любом каталоге на собственном HDD, или в сетевом каталоге. Сервер требуется лишь для удаленного доступа к репозиторию, не больше. Локальный репозиторий годится, если над проектом работает один человек и ему просто нужна система контроля версий своего приложения и бэкапы.

Если работа ведется в команде или требуется удаленный доступ к репозиторию (через Интернет, например), нужно устанавливать SVN-сервер. Он может работать самостоятельно, либо через веб-сервер Apache. В первом случае доступ к репозиториям будет по протоколу svn://, во втором — http(s)://. Доступ через веб-сервер нужен при проблемах с файрволом, когда он пропускает только HTTP-трафик, а так же для работы некоторых утилит-примочек к SVN-серверу.

Установка сервера

Самую свежую версию svn-cервера всегда можно найти на сайте subversion.tigris.org. Чистый svn-сервер без Apache в комплекте, и без визуальных примочек доступен только для версии 1.4.6, в то время как текущая версия 1.5.0. Для версии 1.5.0 есть выбор между CollabNet Subversion-server-1.5.0 (~11 MB) и VisualSVN Server (~5 MB). Первый идет в комплекте с Apache, второй — с Apache и плагином для Windows Management Console. Так же для VisualSVN есть платная возможность интеграции с Visual Studio.

A. Установка и настройка сервера VisualSVN (svn-сервер + Apache + консоль управления) самая простая. Эту версию нельзя установить без Apache.

1) Скачиваем файл VisualSVN-Server-1.5.1.msi или новее. Запускаем установку.
2) В мастере установки указываем, использовать ли для доступа HTTPS, либо просто HTTP. Указываем порт для прослушивания по выбранному протоколу и способ аутентификации. Так же указываем каталог, в котором будут храниться репозитории.
3) После установки открываем Management Console (через Пуск, например) и создаем пользователей и репозитории.

Теперь ваши репозитории доступны через выбранный протокол (HTTP или HTTPS) по указанному при установке хосту: порту (например, localhost:8443/svn/). Их можно просматривать как из браузера (через xsl), так и из SVN-клиета.

Работа с сервером VisualSVNбезусловно самая простая.

B. Установка CollabNet Subversion Server (svn-сервер + Apache опционально).

1) Скачиваем файл CollabNetSubversion-server-1.5.0-23.win32.exe или версию новее. Запускаем его на установку.
2) Шаг Choose Components. Устанавливаем флажок SVNSERVE в любом случае. Если требуется установить так же Apache для SVN, устанавливаем флажок напротив него.
3) На шаге sunserve Configuration устанавливаем порт для sunserve (по умолчанию 3690, менять его смысла нет, если он не занят) и путь к репозиториям (каталог, где вы будете создавать отдельные репозитории в виде подкаталогов).
4) Затем настраивается Apache: хост/порт, путь к репозиториям (тот же, что и для svnserve) и префикс для URL (http://host:port/prefix). Префикс нужен на случай, если Apache будет использоваться не только для обслуживания SVN.

После установки появятся две новых службы Windows: Subversion Server (наш svnserv.exe) и Apache2.2 (если он был включен при установке). Чтобы все заработало их нужно запустить.

С. Установка svnserve 1.4.6 (чистый svn-сервер).

1) Скачиваем файл svn-1.4.6-setup.exe. Запускаем его на установку. При установке ничего кроме целевого каталога указывать не надо. После установки этот каталог надо добавить в переменную среды PATH (не помню, возможно это делается автоматически).
2) Создаем репозитории командой: svnadmin create c:\repositories\example-repository
3) Создаем сервис. Команда в консоли: sc create svn_svr binpath= «c:\Program Files\Subversion\bin\svnserve.exe —service -r C:\repositories\» displayname= «Subversion Svr»
Здесь -r C:\repositories — адрес каталога с репозиториями, т.е. от него потом будут вычисляться пути. Например, если есть 2 репозитория: C:\repositories\proj1 и C:\repositories\proj2, то указав параметром -r C:\repositories потом пути к репозиториям будут: svn://localhost:3690/proj1 и svn://localhost:3690/proj2 соответственно. Порт 3690 устанавливается по умолчанию, но его можно поменять (подробности в svn book).4) Запускается сервис автоматически при старте Windows или из списка служб.

Именно эту работу (если не считать установку Apache) сделал за вас установщик CollabNet Subversion Server. В случае установки svnserve 1.4.6 доступ к репозиторию будет только по протоколу svn://.

D. Создание репозитория. Выделяю этот пункт отдельным разделом. Если в VisualSVN создание репозитория производится кликом мыши, то для svnserve (в том числе в версии от CollabNet) репозиторий создается из консоли. В поставке snv-сервера есть файл snv-install-folder\bin\svnadmin.exe. Если путь к snv-install-folder\bin еще не прописан в PATH, сделайте это.

Чтобы создать репозиторий, откройте консоль (cmd) и перейдите в каталог для хранения репозиториев, который вы указывали при установке (CollabNet) или создании сервиса (svnserve 1.4.6). Создайте новый пустой подкаталог (например,

example-repository). В консоли выполните команду: svnadmin create example-repository. В только что созданном каталоге появится структура файлов svn. В них есть много полезных «штук», о которых можно почитать в svn-book и учебнике.

В подкаталоге conf можно настроить основные параметры репозитория. Прежде всего требуется закрыть доступ в репозиторий кому-попало. В файле svnserve.conf раскомментируем строки
# anon-access = read
# auth-access = write

Не забудьте убрать так же пробел после #, т.к. иначе будет ошибка чтения конфига. anon-access определяет доступ анонимным пользователям, auth-access — зарегистрированным. Они могут принимать значения «write», «read» и «none». Обычно anon-access = none и auth-access = write.

Далее надо раскомментировать # password-db = passwd, а в файл passwd в этом же каталоге добавить строку user = password.

Для начала такое определение доступа годится, но в последствии конечно пароли надо шифровать (читаем svn-book).

На этом установка сервера закончена и можно установить клиент.

Установка клиента.

Некоторые профессионалы предпочитают работать с консолью. Наверное это не самый удобный способ, особенно для новичков, поэтому рассматривать его не будем. Другие работают с SVN через плагины к своим IDE. Это самый лучший способ, но поскольку разных IDE много и плагинов к ним тоже, в этой статье работу с ними не описываем.

Самым популярным и признанным клиентом SVN под Windows является TortoiseSVN. После его установки вы не получите отдельной программы, которую можно «классически запустить», клиент встраивается в проводник Windows, а команды для него доступны из контекстного меню файла (в т.ч. и в Total Commander).

Описывать установку клиента нет никакого смысла, там все элементарно просто.

О том, как работать с TortoiseSVN, подробно расписано в руководстве TortoiseSVN Клиент Subversion для Windows.

Дублировать это подробное руководство, конечно, желания нет, но все же super-fast-start work with tsvn опишу.

1) Для просмотра любого репозитория после установки TortoiseSVN вызовите контекствное меню на любом файле в системе, выберите меню TortoiseSVN→Repo-browser.  В открывшемся окошке введите адрес репозитория с протоколом (например, localhost:8443/svn/test или svn://someserver:3690/proj1/trunc). Откроется окно просмотра репозитория (с помощью кнопки напротив строки адреса можно выбрать, какую ревизию просмотреть; HEAD — это последняя ревизия).

2) Для создания локального репозитория (не используя сервер) запускается пункт меню TortoiseSVN→Create repository here… на нужном каталоге. В Repo-browser такой репозиторий доступен по протоколу file:///.

3) Для скачки себе версии из существующего репозитория запускается пункт меню TortoiseSVN→SVN Checkout на каталоге, в который сольется версия.

4) Если вы еще не использовали SVN и хотите залить на сервер свою текущую версию исходников, запустите пункт меню

TortoiseSVN→Import… на каталоге, в котором лежит версия (при этом не забудьте, что разрабатываемую ветку надо лить в trunk).

5) TortoiseSVN→Export… используется для получения чистой версии исходников из репозитория (без служебных файлов контроля версий).

6) Если контекстное меню вызвать на каталоге, который является локальной (рабочей) копией репозитория, контекстное меню значительно расшириться. Например, появятся пункты Update (слить последние изменения с сервера) и Commit (закачать ваши изменения на сервер).

На последок рекомендую почитать интересную серию статей Работа с Tortoise SVN.

Установка и настройка SVN-сервера под Windows — Официальный сайт EasyCoding Team

Введение

В данном HOWTO я подробно опишу как установить и настроить SVN (subversion) сервер под ОС Windows.

Статья о настройке прав доступа SVN-сервера доступна здесь.

Внимание! CollabNet прекратили поддержку описанного в данной статье Subversion Server and Client и предлагают вместо него другой проект — Subversion Edge, который в несколько раз хуже и часто работает нестабильно. Если Вам нужен только svnserve (без Apache), перейдите на использование простого  и быстрого SlikSVN (во время установки установите все компоненты и особенно svnserve). Установка и настройка данного проекта описана в другой статье нашего сайта.

Шаг 1. Установка сервера.

Итак, для начала нам будет нужен сам дистрибутив с svn-сервером, который можно бесплатно скачать с официального сайта CollabNet (перед тем как что-то скачать, Вы должны пройти бесплатную регистрацию на этом сайте (зачем так сделано не очень понятно)). Вы должны скачать CollabNet Subversion Server and Client v1.6.9 (for Windows) (версия 1.6.9 — последняя на момент написания данного HOWTO).

После скачивания файла CollabNetSubversion-server-1.6.9-1.win32.exe (18,44 МБ), запускайте его и следуйте указаниям мастера. Мастер выполнит несколько шагов. Рассмотрим все шаги мастера по порядку:

  1. Приветствие мастера. Сразу жмите «Next«.
  2. Предложение прочитать онлайновый ReadMe. Жмите «Next«.
  3. Выберите компоненты, которые нужно установить: svnserve (собственно svn-сервер (устанавливать обязательно)) и Apache (устанавливайте только если хотите разрешить доступ к своим репозиториям из Интернета через обычные браузеры). Выбрав нужные компоненты, переходите к следующему шагу.
  4. На этом шаге предлагается выбрать порт для svn-сервера (настоятельно рекомендуется использовать стандартный 3690) и указать путь, где будут храниться репозитории (рекомендуется стандартное значение c:\svn_repository). Флажок в строке «Install svnserve to run as Windows service» позволит автоматически запускаться svn-серверу при запуске Windows (рекомендуется не снимать отсюда флажок). Внимание! Этого шага не будет, если на шаге 3 Вы не выбрали компонент svnserve.
  5. Теперь предлагается настроить Apache если Вы его выбрали на третьем шаге мастера установки.
    • Host/Server name — имя сервера. Рекомендуется оставить localhost.
    • Host Port — порт, на котором будет находиться Apache. Рекомендуется либо стандартный 80, либо 8080.
    • Install Apache to run as Windows service — позволяет Apache запускаться вместе с Windows.
    • Repository Path — путь к svn-репозиторию. Укажите то же значение, что Вы указывали на шаге 4. Рекомендуется стандартное значение C:\svn_repository.
    • Repository Location Prefix — префикс, по которому будет доступен svn-репозиторий. Пример: http://localhost:80/svn/. Если Вы будете использовать установленный Apache только для репозиториев svn, установите в этом поле лишь слэш «/«, в противном случае оставьте стандартное значение /svn.
  6. Выберите каталог для установки набора серверов и нажмите «Install«.
  7. На этом шаге предлагается включить уведомления о новых версиях программы. Рекомендуется снять все флажки.
  8. Нажмите «Finish«. Установка завершена.

Шаг 2. Установка клиента.

В качестве SVN-клиента мы будем использовать TortoiseSVN, подробнее о котором можно почитать в HOWTO.

Скачать программу можно на её официальном сайте программы на странице Downloads: http://tortoisesvn.net/downloads. Там же можно скачать пакет локализации, содержащий помимо перевода интерфейса программы, ещё и словарь проверки орфографии (применяется при коммите изменений).

Установка программы стандартна и не должна вызвать никаких сложностей.

Шаг 3. Настройка svnserve.

Настройку начнём с того, что создадим новый репозиторий со стандартными настройками, которые и будем редактировать. Для этого зайдём в Проводнике Windows в каталог, указанный в качестве «Repository path» во время установки сервера (стандартное значение — С:\svn_repository\), нажмём правой кнопкой по пустому месту в нём и выберем «TortoiseSVN» — «Create repository here«. Через несколько мгновений внутри каталога появятся файлы и подкаталоги, а также будет выведено сообщение об успешном создании репозитория. В дальнейшем путь к репозиторию я буду заменять на ПУТЬ_К_РЕПОЗИТАРИЮ.

Теперь мы должны создать пользователей, которые будут работать с репозиторием. Для этого мы должны открыть файл «ПУТЬ_К_РЕПОЗИТАРИЮ\conf\svnserve.conf» в любом текстовом редакторе, например Блокноте Windows или Notepad++. Здесь Вы должны раскомментировать (убрать перед строкой символ(ы) «#«) следующие строки:

anon-access = none
auth-access = write

Строка «anon-access = none» означает, что анонимы не смогут получить доступ к репозиторию вообще (сделано из соображений безопасности), а «auth-access = write» означает, что авторизованные пользователи получат полный доступ в пределах их ограничений, заданных в файле authz (если такая функция включена). Если Вы хотите, чтобы анонимы могли получить доступ только для чтения (например, разрабатываете OpenSource-проект), то установите «anon-access = read«.

Теперь Вы должны раскомментировать строку:

password-db = passwd

Эта строка указывает в каком файле будут находиться логины и пароли пользователей для авторизации на svn-сервере. Теперь откройте файл «ПУТЬ_К_РЕПОЗИТАРИЮ\conf\passwd» в любом текстовом редакторе и впишите в нём «логин_пользователя = пароль_пользователя» (разделителем служит знак равенства). Пример правильного файла passwd:

### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.

[users]
# harry = harryssecret
# sally = sallyssecret
vova = kjkj345K
anton = Gh74oJId
dima = ir9895498
katya = o894584578
sergey = 985kdfjdfk


Убираем символ комментария из строки:

realm = My First Repository

В ней указывается имя Вашего репозитория. После знака равенства вместо My First Repository Вы можете указать любое другое имя. Оно выводится при запросе логина и пароля.

Настройка сервера с простой (simple) авторизацией завершена. Пример правильного файла конфигурации сервера:

### This file controls the configuration of the svnserve daemon, if you
### use it to allow access to this repository.  (If you only allow
### access through http: and/or file: URLs, then this file is
### irrelevant.)

### Visit http://subversion.tigris.org/ for more information.

[general]
### These options control access to the repository for unauthenticated
### and authenticated users.  Valid values are "write", "read",
### and "none".  The sample settings below are the defaults.
anon-access = none
auth-access = write
### The password-db option controls the location of the password
### database file.  Unless you specify a path starting with a /,
### the file's location is relative to the directory containing
### this configuration file.
### If SASL is enabled (see below), this file will NOT be used.
### Uncomment the line below to use the default password file.
password-db = passwd
### The authz-db option controls the location of the authorization
### rules for path-based access control.  Unless you specify a path
### starting with a /, the file's location is relative to the the
### directory containing this file.  If you don't specify an
### authz-db, no path-based access control is done.
### Uncomment the line below to use the default authorization file.
#authz-db = authz
### This option specifies the authentication realm of the repository.
### If two repositories have the same authentication realm, they should
### have the same password database, and vice versa.  The default realm
### is repository's uuid.
realm = Test Repository

[sasl]
### This option specifies whether you want to use the Cyrus SASL
### library for authentication. Default is false.
### This section will be ignored if svnserve is not built with Cyrus
### SASL support; to check, run 'svnserve --version' and look for a line
### reading 'Cyrus SASL authentication is available.'
# use-sasl = true
### These options specify the desired strength of the security layer
### that you want SASL to provide. 0 means no encryption, 1 means
### integrity-checking only, values larger than 1 are correlated
### to the effective key length for encryption (e.g. 128 means 128-bit
### encryption). The values below are the defaults.
# min-encryption = 0
# max-encryption = 256


Теперь пора проверить созданный нами svn-сервер, но сначала мы должны перезапустить его чтобы он смог считать изменённые конфигурационные файлы. Для этого набираем «Windows+R» — «cmd.exe«. В открывшейся командной строке пишем слелующие команды (по порядку):

net stop CSVNsvnserve
net start CSVNsvnserve

Открываем TortoiseSVN Repository Browser из контекстного меню любой папки и в качестве URL вводим: svn://127.0.0.1/. Сервер запросит указать логин и пароль, заданные в файле passwd и при успешной авторизации отобразит корневой каталог. Сервер успешно настроен и готов к управлению проектами.

Шаг 4. Настройка Apache.

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

Откройте в любом текстовом редакторе файл «%PROGRAMFILES%\CollabNet\Subversion Server\httpd\conf\httpd.conf«, где «%PROGRAMFILES%\CollabNet\Subversion Server\» — это путь установки svn-серверов. В конце файла httpd.conf найдите следующие строки:

DAV svn
SVNParentPath C:\svn_repository

и замените на такие:

DAV svn
SVNPath C:\svn_repository

AuthType Basic
AuthName "Subversion repository"
AuthUserFile C:\svn_repository\conf\appswd
Require valid-user

Здесь с:\svn_repository — путь к репозиторию svn. Измените в соответствии с Вашими настройками.

Теперь нужно создать файл паролей Apache. Для этого откройте командную строку Windows («Win+R» — «cmd.exe«) и выполните следующие команды:

cd "%PROGRAMFILES%\CollabNet\Subversion Server\httpd\bin"
htpasswd -cmb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_1 ПАРОЛЬ
htpasswd -mb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_2 ПАРОЛЬ
...
htpasswd -mb C:\svn_repository\conf\appswd ЛОГИН_ПОЛЬЗОВАТЕЛЯ_N ПАРОЛЬ

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

В качестве ЛОГИН_ПОЛЬЗОВАТЕЛЯ нужно указать все логины пользователей, указанные в файле passwd. Пароли также должны быть идентичны.

Настройка SVN over Apache 2 была успешно завершена. Теперь нужно перезапустить сервер командами консоли Windows:

net stop CollabNetSubversionApache
net start CollabNetSubversionApache

Протестировать сервер можно так: http://127.0.0.1:ПОРТ/ в любом веб-браузере. Будет запрошен логин и пароль для доступа к репозиторию.

Установите и используйте Tortoise SVN

1- Что такое Tortoise SVN?

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

Это модель работы между Tortoise SVN и SVN Repository:

2- Требуемые установки

Чтобы получить SVN Repository вам нужно установить SVN Server. Например Visual SVN на каком-нибудь компьютере будет SVN Server. Вы можете посмотреть руководство по установке и конфигурации Visual SVN по ссылке:

В случае если у вас нет SVN Server. Вы можете зарегистрировать аккаунт XP-DEV чтобы получить бесплатный SVN Repository с объемом до 1.5G хватает для использования группы для работы. Смотрите инструкцию регистрации и использования XP-DEV по ссылке:

Заметка: Новые версии Tortoise при установке на старых операционных системах (Win XP,..) обычно происходит ошибка, вам нужно сначала установить самый новый «Windows Installer», или установить старую версию Tortoise SVN.

Скачайте новейший Windows Installer по ссылке:
(Смотрите аппендикс руководство по скачиванию/установке в конце статьи) 

Или найдите старую версию Tortoise SVN по ссылке:
(Смотрите так же в аппендиксе).

3.1- Download the latest Tortoise SVN

В зависимости от вашей операционной системы, 64 или 32 bit для правильного скачивания.

4- Установка Tortoise SVN

При успешном скачивании, вам нужно перезагрузить компьютер. 

5- Начать с Tortoise SVN

5.1- Import данных в Repository

Сначала, нужно чтобы член команды поделился исходными данными в SVN Repository. Если нет данных, то этот шаг может быть пропущен. 

Предположим я import (импортирую) файлы данных из папки Documents в SVN Repository:

На Visual SVN создан Repository с названием WorkingDatas.

See more:

Copy URL:

Скопируйте URL содержащий название сервера SVN.
  • https://TRAN-VMWARE/svn/WorkingDatas/
Вы можете изменить название сервера используя адрес IP.

Нажмите на правую мышь в папку Documents, выберите:

Введите URL в SVN Repository.

  • https://TRAN-VMWARE/svn/WorkingDatas/

Данные import (имопртированы) в SVN Repository.

Смотрите в Visual SVN:

Все члены команды сделают checkout данных из SVN Repository в свой компьютер, включая человека, который сделал import исходных данных в SVN Repository.

На компьютере членов команды, создать пустую папку и сделать checkout данных из SVN Repository в ту папку. Данная папка будет рабочей папкой каждого члена команды на его компьютере. 

Данные получены.

Checkout это извлечение всех общих данных в Repository в локальный компьютер в первый раз. Потом данные изменены на локальном компьютере. Передача модифицированных данных в  Repository называется Commit. И обновление измененных данных называется Update.

Теперь мы изменим (или добавим) файл в папку и используем функцию Commit.

Например я изменю файл TeamNote.txt и сохраняю, тогда изменится знак SVN этого файла, оповещая, что файл был изменен.

Далее я создаю новый файл TeamTodo.txt. Символ нового файла содержит знак вопроса (?), оповещая, что это новый файл и не управляется в SVN.

Файл SVN, который содержит измененные данные так же изменит свой знак. 

Чтобы Commit данные в SVN Repository, нажмите на правую мышь на файл или папку, выберите SVN Commit…

Выберите файл для commit в списке.
  • По умолчанию Tortoise SVN автоматически выбирает измененные файлы.

Update:

Другие члены команды могут Update (обновлять) новейшие данные из SVN Repository.

6- Другие функции Tortoise SVN

В Tortoise SVN, большего всего используются 2 функции, это Commit и Update. Помимо этого имеются многие другие функции. 

В случае когда у вас есть папка или файл, который вы хотите чтобы SVN пропустил, и не передал в SVN Repository. Вы можете использовать функцию:

Нажмите на правую мышь на файл или папку, которую вы хотите чтобы SVN пропустил. Выберите:

Потом Commit родительскую папку:

Иногда вы получаете сообщение ошибки«Out of date». В том случае, вам нужно использовать функцию Update перед Commit.

Tortoise SVN предлагает вам сначала использовать Update.

Затем, вы можете продолжать Commit.

Функция Revert использует для возврата исходных данных. Например, когда вы меняете данные файлов, revert помогает возвратить файл в исходный вид.

6.3- Get Lock & Release Lock

Вы меняете файлы в локальном компьютере. И процессе изменения вы не хотите, чтобы кто-либо в группе сделал Commit данные тех файлов в Repository, вы можете использовать функцию «Get Lock» для блока. После завершения изменения, вы можете Commit и использовать функцию«Release Lock» чтобы разблокировать.

Get Lock:

Release Lock:

7- Аппендикс: Скачать Windows Intaller

Если вы используете Win XP, для установки последних версий Tortoise SVN вам нужно сначала установить новейшую версию Windows Installer.

Здесь имеются установки соответствующие разным системам Windows. Можете найти и скачать правильно. 

8- Аппендикс: Скачать Tortoise SVN старой версии

В некоторых случаях установка Tortoise SVN в Window XP не удается. Вы можете установить последний Window Installer (Следуйте руководству в аппендиксе выше), или найти старую версию Tortoise SVN по ссылке:

С XP Service Pack 2: Установите версию

Установка Subversion (SVN) на Windows

Subversion (SVN) — свободная централизованная система управления версиями. Необходимый инструмент программиста.

Статья о Subversion в Википедии.

Веб-сайт проекта: http://subversion.apache.org/

Подготовка к установке

  1. Предварительно необходимо установить Apache (отдельно или в составе Zend Server).
  2. Скачать последнюю версию  Subversion для Windows: http://sourceforge.net/projects/win32svn/files/latest/ (на момент написания статьи – версия 1.7.6)

Установка

  1. Запускаем установщик. Здесь все очень просто и прямолинейно. Единственное значимое действие – выбор пути установки. В моем случае это c:\Program Files (x86)\Subversion\.
  2. Добавляем папку c:\Program Files (x86)\Subversion\bin в SYSTEM PATH.
    Открываем Пуск -> Компьютер -> Свойства -> Дополнительные параметры системы ->вкладка Дополнительно -> Кнопка Переменные среды.
    В разделе “Системные переменные” находим переменную Path и нажимаем кнопку Изменить. В конец строки дописываем путь к папке bin. Разделитель путей – точка с запятой “;”.
    Кстати, установщик справился с этим заданием сам, так что мне осталось только проконтролировать 🙂
  3. Из папки c:\Program Files (x86)\Subversion\bin копируем файлы mod_dav_svn.so и mod_authz_svn.so в папку c:\Program Files (x86)\Zend\Apache2\modules, здесь c:\Program Files (x86)\Zend\Apache2 – папка установки Apache.
  4. Далее переходим в папку c:\Program Files (x86)\Zend\Apache2\conf и открываем файл httpd.conf. Находим в нем строки:
    #LoadModule dav_fs_module modules/mod_dav_fs.so
    #LoadModule dav_module modules/mod_dav.so

    и активируем их, т.е. убираем решетку (#) в начале обоих строк.

  5.  Там же добавляем две новые строки:
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
  6. В самый конец файла дописываем директиву:
    Include "conf/svn.conf"
  7. Сохраняем httpd.conf.
  8. Теперь необходимо создать папку, в которой будет храниться база данных репозитория. Например E:\_SVN. Создаем ее как обычно через Проводник или любой другой файловый менеджер.
  9. Создаем репозиторий. В командной строке выполняем:
    svnadmin create E:\_SVN
  10. Возвращаемся в папку c:\Program Files (x86)\Zend\Apache2\conf . Создаем в ней новый файл svn.conf (в п.6 мы уже подключили его к httpd.conf) со следующим содержанием:
    <Location /svn>
     DAV svn
     SVNPath E:/_SVN
    </Location>

    В SVNPath указывается путь к папке репозитория.

  11. Чтобы изменения вступили в силу, перезапускаем службу Apache.
  12. Проверяем, что получилось.
    Для этого открываем браузер и вводим в адресную строку: http://localhost/svn/
    Если все правильно, вы должны увидеть надпись:
    svn – Revision 0: /

Выбор структуры.

На этом этапе вы должны решить какой будет структура вашего репозитория. Будет ли в нем хранится несколько проектов или только один. У обоих подходов есть свои плюсы и минусы (подробнее здесь (анг.)). Многопроектный репозиторий легче администрировать, и при этом вы всегда сможете создать отдельный репозиторий для какого-нибудь большого проекта. Лично я предпочитаю хранить проекты в одном репозитории, белее-менее крупная софтверная компания выберет, скорее всего, смешанный вариант.
Чем отличается многопректный вариант от однопроектного? Только структурой папок.
Структура многопроектного репозитория:

/
  project1/
    trunk/
    tags/
    branches/
  project2
    trunk/
    tags/
    branches/
  project3
    trunk/
    tags/
    branches/

Структура однопроектного репозитория:

/
  trunk/
  tags/
  branches/

Подробнее о назначении системных папок:

  • trunk – папка для хранения кода текущего релиза (последняя стабильная версия проекта). Не должна содержать ничего лишнего!
  • tags – папка для хранения версий. Содержит подпапки по номерам версий. Выкладывая новый релиз в trunk всегда делаем копию в tags!
  • branches – папка для работы над новым или экспериментальным кодом (чтобы не затронуть код текущего релиза).

Создаем проект

Вновь открываем командную строку, и выполняем:

svn mkdir -m "Новый проект" http://localhost/svn/project1

Создаем системные папки:

svn mkdir -m "" http://localhost/svn/project1/trunk
svn mkdir -m "" http://localhost/svn/project1/tags
svn mkdir -m "" http://localhost/svn/project1/branches

Проверяем результат из командной строки:

svn list http://localhost/svn/project1

Или открываем в браузере  http://localhost/svn/project1

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

Настройка прав доступа

  1. Первый шаг – создание пользователей.
    Открываем командную строку, переходим в папку установки Apache и далее в папку bin:
    cd "c:\program files (x86)\Zend\Apache2\bin"

    В зависимости от типа аутентификации используются разные команды (для Simple – htpasswd, для Digest – htdigest).
    Создаем первого пользователя:

    htdigest -с "e:\_SVN\auth" SVN Max

    Параметр используется для создания файла e:\_SVN\auth.

    Следующих пользователей создаем без параметра  (иначе файл будет перезаписан и мы потеряем всю введенную ранее информацию):

    htdigest "e:\_SVN\auth" SVN Max

    e:\_SVN\auth – это путь к файлу, в котором будет храниться информация о пользователях. Расположение файла может быть любым, но чтобы не запутаться размещаю его в папку репозитория.
    SVN – область (realm) или группа к которой принадлежит имя пользователя. Значение этого параметра запоминаем, т.к. оно еще понадобится.
    Max – имя пользователя.

    После ввода команды, необходимо ввести пароль пользователя, затем повторно подтвердить его.

  2. Удаление пользователя.
    В отличие от htpasswd, htdigest не может удалять пользователя. Поэтому единственный выход – ручное редактирование файла.
  3. Теперь переходим к настройке прав доступа.
    В папке репозитория (e:\_SVN) создаем еще один файл – acl с примерно таким содержанием (используем Блокнот):
    #
    # Группы пользователей
    #
    [groups]
    team1 = Max, Sergey
    
    #
    # Доступ к корню
    # team1 - чтение и запись
    # все остальные - только чтение
    #
    [/]
    @team1 = rw
    * = r
    
    #
    # Доступ к project1
    # team1 - чтение и запись
    # Ivan - чтение и запись (у него доступ только к этому проекту)
    # Dub - доступ запрещен
    #
    [/project1]
    @team1 = rw
    Ivan = rw
    Dub =
    
  4. Вносим изменения в svn.conf:
    <Location /svn>
      DAV svn
      SVNPath e:/_SVN
    
      AuthName "SVN"
      AuthType Digest
      AuthUserFile e:/_SVN/auth
    
      AuthzSVNAccessFile e:/_SVN/acl
    
      # Authorization: Authenticated users only
      Require valid-user
    </Location>

    Обратите внимание на параметр AuthName, его значение должно совпадать с параметром realm, введенном при создании пользователя.

  5. Чтобы изменения вступили  в силу перезагружаем службу Apache.
  6. Проверяем результат. Теперь при открытии репозитория должны запрашиваться имя пользователя и пароль.

Работать с Subversion из командной строки – страшный анахронизм. В следующей статье я покажу как установить и использовать клиент Subversion в популярной среде разработки Eclipse.

Установка SVN (Subversion) c доступом по http

Статья давно не обновлялась, поэтому информация могла устареть.

В статье рассматривается быстрая установка SVN (Subversion) с доступом по протоколу http(s) в минимальной конфигурации на такие системы, как CentOS, Debian и Ubuntu.

В качестве серверов использовались VDS на 64-битных шаблонах ОС без ISPmanager и любого другого ПО: CentOS, Debian, Ubuntu.

Для работы можете использовать Windows 7 с установленным клиентом TortoiseSVN, Ubuntu с установленным клиентом RabbitVCS. Также для доступа к файлам может использоваться веб-браузер.

Хранятся версии с использованием dav_fs (Native filesystem (FSFS)), тем самым не потребуется пересборка Apache и упростится процесс установки.

Итак, процесс установки:

CentOS-6-amd64

Установка apache

yum install httpd

Сделаем, чтоб он запускался при загрузке системы

chkconfig httpd on

Запускаем

service httpd status

Установка и настройка SVN

yum install mod_dav_svn subversion
  • Создадим директорию, которая и будет репозиторием
mkdir -p /svn/repo && cd /svn/repo

В ней создадим репозитарий myrepo и выставим правильного владельца его директории

svnadmin create myrepo
chown -R apache.apache myrepo
  • Настраиваем веб-сервер для работы с svn. В файле /etc/httpd/conf.d/subversion.conf должно содержаться следующее:
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /myrepo>
DAV svn
SVNPath /svn/repo/myrepo
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/svn-auth
Require valid-user
#   </LimitExcept>
</Location>

Создаем файл web-авторизации и задаем пользователя и пароль:

htpasswd -mbc /etc/svn-auth svn-adm ВАШ_ПАРОЛЬ_ТУТ
  • Проверяем — IP-адрес_сервера/myrepo набираем в браузере

Если не можете подключиться из браузера по адресу IP-адрес_сервера/myrepo, то проверьте iptables

iptables -nL

возможно увидите правила:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

сбросьте их:

iptables -F
  • Полезная информация и примеры для работы с SVN в CentOS здесь

Debian/Ubuntu

1. Устанавливаем на чистый сервер apache

apt-get install apache2

2. Устанавливаем subversion и необходимые библиотеки

apt-get install libsvn1 subversion apache2-utils libapache2-svn

Проверим наличие модуля authz_svn:

apachectl -M | grep 'authz_svn'

Если его нет, то включим и перезапустим apache:

a2enmod authz_svn
/etc/init.d/apache2 restart

3. Указываем локацию репозитория:

svnadmin create /var/lib/svn

3. В файле /etc/apache2/mods-enabled/dav_svn.conf убираем знак # с начала следующих строк:

<Location /svn>
...
  DAV svn
...
  SVNPath /var/lib/svn
...
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd

Здесь ещё добавим строку:

  Require valid-user
...
</Location>

4. Задаем пользователя и пароль для авторизации:

htpasswd -mbc /etc/apache2/dav_svn.passwd svn-user ВАШ_ПАРОЛЬ

5. Перезапускаем apache:

/etc/init.d/apache2 restart

Проверяем, набрав в браузере http://IP-адрес_сервера/svn/. Если все сделано корректно, то увидите:

svn - Revision 0: /

Командная строка svn для Windows?



Существует ли версия svn для Windows, основанная на командной строке? Я знаю, что могу получить TortoiseSVN, но это просто не работает для меня.

windows svn command-line-interface
Поделиться Источник Pieter     26 февраля 2010 в 11:16

10 ответов


  • Windows Командная строка shell для sqlite3

    В документации говорится, что для sqlite3 существует командная строка shell: чтобы запустить программу sqlite3, просто введите sqlite3, а затем имя файла, содержащего базу данных SQLite. Когда я пытаюсь это сделать, в командной строке Windows я получаю сообщение об ошибке ‘sqlite3’ не распознается…

  • svn командная строка из eclipse

    Здравствуйте, есть ли способ использовать командную строку svn из eclipse? В eclipse в моем браузере проекта я могу щелкнуть правой кнопкой мыши, а затем нажать команду, и тогда у меня будет что-то вроде svn. Не уверен, что это за плагин. Но у него нет кнопок, чтобы, например, игнорировать файлы…



233

Более новые версии TortoiseSVN содержат консольный клиент svn,но по умолчанию соответствующий параметр не установлен.

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

После установки вам может потребоваться добавить папку, содержащую svn.exe , в систему PATH , как описано здесь , чтобы она была доступна в вашей консоли. Чтобы проверить, был ли он уже добавлен установщиком, откройте новую консоль и введите echo %PATH% . Используйте set самостоятельно, чтобы увидеть все переменные среды.

Поделиться ccpizza     28 марта 2013 в 15:50



96

Сам клиент subversion доступен на Windows. Смотрите здесь сертифицированные двоичные файлы от CollabNet.

CollabNet Subversion клиент командной строки v1.6.9 (для Windows)

Этот установщик включает только клиент командной строки и компонент автоматического обновления.

Хотя я не могу понять, как можно не любить черепаху! 🙂

Примечание:
Приведенная выше ссылка предназначена для более новых продуктов — вы можете найти версии 1.11.1 — 1.7.19 в более старых выпусках Subversion

Поделиться Pekka     26 февраля 2010 в 11:19



73

Я использовал sliksvn и он отлично работает для меня

Поделиться klennepette     26 февраля 2010 в 11:18


  • Читать Windows Командная Строка STDOUT

    У меня есть приложение командной строки, которое работает на сервере windows. Командная строка остается открытой, когда программа запущена, и сообщения журнала выводятся в окно командной строки по мере работы программы. Мне нужно читать сообщения, которые появляются в командной строке при запуске…

  • Командная строка ffmpeg и windows

    Я пытаюсь использовать ffmpeg для windows для преобразования тысяч изображений и звуков в один видеофайл. ffmpeg -i apples.jpg -i oranges.jpg -i orangessound.wav -i bananas.jpg -vcodec mpeg4 test.avi Моя программа delphi генерирует командную строку в виде строки, и я использую shellexecute для ее…



18

cygwin -это еще один вариант. Он имеет порт svn .

Поделиться Dan Andreatta     26 февраля 2010 в 12:23



15

Вы можете получить инструменты командной строки SVN с TortoiseSVN 1.7 или более поздней версией или получить автономный пакет 6.5mb с VisualSVN .

Начиная с TortoiseSVN 1.7, его установщик предоставляет вам возможность установить инструменты командной строки.

Также имеет смысл проверить страницу Apache подрывной деятельности «Binary Packages» . хD

Поделиться bahrep     12 декабря 2012 в 12:57


Поделиться kaupov     14 февраля 2012 в 23:31



4

Если у вас есть Windows 10, вы можете использовать Bash на Ubuntu на Windows для установки subversion.

Поделиться user2418306     22 октября 2016 в 20:19



4

Вы можете использовать Apache Subversion. Она является собственником подрывной деятельности . Вы можете скачать его здесь . После его установки вам нужно перезагрузить компьютер, чтобы использовать svn из командной строки.

Поделиться hkaraoglu     28 сентября 2016 в 13:40



2

Установите MSYS2, он имеет svn в своем репозитории (помимо множества других Unix лакомств). MSYS2 устанавливается без прав администратора Windows.

$ pacman -S svn

Инструменты можно использовать и с cmd:

C:\>C:\msys64\usr\bin\svn.exe co http://somehost/somerepo/

Поделиться weberjn     05 февраля 2019 в 16:49



2

VisualSVN для Windows имеет исполняемый файл command-line-only (а также плагины Visual Studio). См . https:/ / www.visualsvn.com / загрузки/

Он полностью портативен, поэтому установка не требуется.

Поделиться cowlinator     31 января 2020 в 00:34


Похожие вопросы:


Командная строка для обновления папок SVN

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


Есть ли клиент git-svn windows что-то вроде TortoiseSVN?

Мне нравится интеграция TortoiseSVN Windows. Есть ли что-то подобное для работы с git-svn? Я бы даже пошел с менее интегрированным GUI, если он достаточно быстр для доступа. Чего я не хочу, так это…


Windows Explorer » Командная Строка Здесь»

Я часто оказываюсь с папкой, открытой в Windows, желая, чтобы командная строка была открыта с тем же рабочим каталогом. Я знаю о Power Toys Command Prompt, но это работает только как пункт…


Windows Командная строка shell для sqlite3

В документации говорится, что для sqlite3 существует командная строка shell: чтобы запустить программу sqlite3, просто введите sqlite3, а затем имя файла, содержащего базу данных SQLite. Когда я…


svn командная строка из eclipse

Здравствуйте, есть ли способ использовать командную строку svn из eclipse? В eclipse в моем браузере проекта я могу щелкнуть правой кнопкой мыши, а затем нажать команду, и тогда у меня будет что-то…


Читать Windows Командная Строка STDOUT

У меня есть приложение командной строки, которое работает на сервере windows. Командная строка остается открытой, когда программа запущена, и сообщения журнала выводятся в окно командной строки по…


Командная строка ffmpeg и windows

Я пытаюсь использовать ffmpeg для windows для преобразования тысяч изображений и звуков в один видеофайл. ffmpeg -i apples.jpg -i oranges.jpg -i orangessound.wav -i bananas.jpg -vcodec mpeg4…


Что такое SVN клиент для unix

Друзьям нужна быстрая помощь.. Мой проект имеет репозиторий SVN, и мы проверяем / проверяем код из нашей системы windows. Пока у нас все хорошо. Теперь я должен проверить свой код SVN на коробке…


svn висит на кассе в Windows

Попытка проверить репозиторий с помощью svn checkout svn+ssh://USER@REPO . Я установил свою переменную %SVN_SSH% , чтобы включить флаг -v при вызове plink.exe , и последний журнал, который я…


WIndows командная строка для копирования файлов

Я могу копировать файлы и все их подкаталоги с помощью этой командной строки в cmd xcopy /s c:\users\desktop f:\desktopFiles Однако я не хочу копировать файлы media, такие как mp3 или mp4. Есть ли…

Сервер Subversion для windows (SVN) для клиента Tortoise



Мой вопрос похож на этот: Сервер Subversion для использования на Windows

Единственная проблема в том, что он старый, и я вижу, что Subversion server на windows требует Apache и что-то в этом роде. Я ищу:

  • Windows 7 64x (не Windows сервер)
  • SVN сервер со свободной коммерческой лицензией или GNU
  • Это работает с клиентом Tortoise
  • Это работает без какого-либо сервера или плагина чего-либо, просто приложение или сервис.
  • Вот и есть статистика работы.

Пожалуйста, прежде чем ответить или прокомментировать, проверьте, применимо ли предлагаемое приложение к этому требованию.

svn version-control tortoisesvn
Поделиться Источник Leandro     28 мая 2012 в 06:12

4 ответа


  • Tortoise не будет подключаться к серверу subversion

    Я пытаюсь настроить свой домашний сервер с РЕПО Subversion на нем (после некоторых изменений). Я удалил-переустановил сервер VisualSVN на серверном поле Windows Server 2003, и адрес (т. е. URL) РЕПО- https://server.network.local/svn/ . Я могу перейти через IE по этому адресу и получить список…

  • Полезные инструменты для работы с Subversion

    Существует целый ряд замечательных инструментов, которые интегрируются с Subversion и делают некоторые действительно аккуратные вещи. Я перепробовал несколько из них, но в конечном счете склонен использовать только следующие на регулярной основе: Tortoise (вездесущий плагин Explorer) Visual SVN…



15

Сервер Visual SVN отвечает всем вашим требованиям (за исключением последнего, который я не понимаю).

  • Совместимость с Windows 7 x64
  • Бесплатная коммерческая лицензия (насколько я понимаю)
  • Работает с TortoiseSVN
  • Для этого требуется Apache, я думаю, но он встроен таким образом, что я не могу легко воспринимать. Несмотря ни на что, это сервис Windows, и его очень просто настроить.

И последний раз он обновлялся около двух недель назад (2012-05-18), так что не совсем старый.

Поделиться Michael Petrotta     28 мая 2012 в 06:18



6

Никто не упоминает, вместо гигантских приложений 3-rd party, svnserve для создания репозиториев svn://-based:

  • svnserve является частью любой установки Subverson
  • он маленький
  • он имеет легкий и быстрый старт
  • не требует длительных и сложных шагов настройки
  • может работать как услуга

Поделиться Lazy Badger     02 февраля 2013 в 15:34



5

В зависимости от того, какие требования у вас есть (я не думаю, что ваш список полон), может быть достаточно использовать только TortoiseSVN.

Затем требования должны включать:

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

Затем вы можете сделать следующее:

  • Создайте новый репозиторий subversion на сервере с помощью команды «Create Repository Here» .
  • Проверьте этот репозиторий , указав в качестве URL что-то вроде file:///c:/svn_repos/trunk/ (что, конечно, зависит от местоположения вашего репозитория).

Чтобы получить статистику для вашего репозитория, вы можете использовать StatsSVN , который не зависит от того, как вы управляете своим репозиторием.

Поделиться mliebelt     28 мая 2012 в 09:45


  • Как настроить параметры tortoise svn для всех пользователей проекта?

    Мы используем subversion для хранения всего нашего исходного кода. Мы используем клиент Tortoise SVN для извлечения файлов с сервера subversion. Источником общей проблемы для разработчиков является то, что параметры Global Ignore Pattern не одинаковы на всех машинах разработчиков. Как мы…

  • использование tortoise svn для обновления исходного кода в maven

    я использую scm plugin в maven для обновления кода svn каждый раз, когда беру сборку. Целью, указанной для плагина, является обновление. У меня в системе установлена tortoise svn, но когда я выполняю сборку, она терпит неудачу, говоря, что svn update command not found . Я понял, что мне нужно…



1

uberSVN отвечает всем вашим требованиям, а также еще нескольким битам.

  • Windows 7 64x (не Windows сервер)
  • SVN сервер со свободной коммерческой лицензией или GNU
  • Это работает с клиентом Tortoise
  • Это работает без какого-либо сервера или плагина чего-либо, просто приложение или сервис-SVN нуждается в apache, но это устанавливается и запускается как часть uberSVN
  • Которые имеют статику работы. — вы можете видеть и комментировать работу, проделанную людьми, а также есть некоторые дополнительные социальные функции для команд пользователей

Поделиться Mand Beckett     29 мая 2012 в 09:49


Похожие вопросы:


Не удается подключиться к репозиторию SVN с помощью Tortoise SVN

Мы установили CollabNet Subversion Edge на стандартный сервер Windows 2008 R2, который также работает под управлением IIS 7.0. Весь трафик Subversion был настроен на использование соединения SSL…


проблема subversion и tortoise repositroies

Я установил subversion svn 1.2.3 и tortoise svn 1.6.14 на сервер с svnservice по следующей ссылке http://www.codeproject.com/KB/ архитектура/Subversion_on_Windows.aspx и после этого я установил их…


Настройки экспорта Tortoise SVN

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


Tortoise не будет подключаться к серверу subversion

Я пытаюсь настроить свой домашний сервер с РЕПО Subversion на нем (после некоторых изменений). Я удалил-переустановил сервер VisualSVN на серверном поле Windows Server 2003, и адрес (т. е. URL)…


Полезные инструменты для работы с Subversion

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


Как настроить параметры tortoise svn для всех пользователей проекта?

Мы используем subversion для хранения всего нашего исходного кода. Мы используем клиент Tortoise SVN для извлечения файлов с сервера subversion. Источником общей проблемы для разработчиков является…


использование tortoise svn для обновления исходного кода в maven

я использую scm plugin в maven для обновления кода svn каждый раз, когда беру сборку. Целью, указанной для плагина, является обновление. У меня в системе установлена tortoise svn, но когда я…


проверка кода на сервере Visual SVN с помощью клиента Tortoise svn

Кто-нибудь знает, как проверить код на сервере Visual svn с помощью клиента Tortoise svn?? Я попытался получить доступ к браузеру репо url через tortoise, и он выдает мне ошибку Could not connect to…


Subversion: Доступ запрещен: не удается совершить коммит в окне клиента tortoise svn, когда у меня нет доступа на чтение к root

Я знаю, что subversion этот тип вопроса задавался много раз, но различные решения не работали, и конкретная настройка не была одинаковой. Мы используем Tortoise SVN в качестве клиента. Когда…


Настройка subversion для visual studio

У меня Visual studio 2008 работает на windows-7 (x86). Я установил subversion (сервер+клиент), tortoise svn и ankhsvn в своей системе. Я мог бы добавить свое решение в репозиторий subversion,…

FAQ · TortoiseSVN

Установка и обновление:

Должен ли я сначала удалить существующую версию при обновлении TortoiseSVN?

Нет. Вы можете просто установить новую версию поверх старой. Установщик позаботится об удалении старой версии сначала автоматически. Но вы должны перезагрузить компьютер после завершения установки! Или, по крайней мере, вам нужно выйти и снова войти в систему.

Нужны ли мне права администратора для установки TortoiseSVN?

Да, вам нужны права администратора для установки TortoiseSVN или, по крайней мере, права на установку с правами администратора .

Но после установки TortoiseSVN вы можете использовать его без прав администратора.

Нужно ли мне устанавливать Subversion, прежде чем я смогу использовать TortoiseSVN?

Нет. TortoiseSVN содержит все необходимое для доступа к репозиторию. Только если вы хотите настроить сервер, вам понадобится пакет Subversion.

Как удалить TortoiseSVN?

Просто удалите в «Установка и удаление программ» панели управления Windows. Это никак не влияет на ваши репозитории или рабочие копии.

Установка MSI на моем компьютере отключена. Есть ли установщик .exe?

Установочный файл exe не поможет. Если установка MSI действительно отключена на вашем компьютере, значит, у вас также нет прав ADMIN. И они понадобятся вам для установки TortoiseSVN (для установки расширений оболочки требуются права ADMIN). Но сначала убедитесь, что установка MSI действительно отключена — это может быть только в том случае, если администратор вашего домена отключил ее.

Почему вы используете MSI вместо exe или вообще не используете установщик?

Есть несколько причин, по которым мы используем MSI в качестве установщика вместо чего-то еще:

  • Он открыт.Все могут увидеть, что мы делаем, используя такие инструменты MSI, как Orca.
  • При желании можно легко настроить существующий MSI под свои нужды. Есть инструменты, с помощью которых вы можете редактировать MSI вручную. Вы не можете сделать это с помощью установщика exe.
  • Он работает с привилегиями SYSTEM, а не только как, например, Администратор. Это важно, потому что TortoiseSVN — это расширение оболочки, которое требует от нас создания и изменения ключей реестра, недоступных для учетных записей пользователей (это особенно важно в Vista с включенным UAC).
  • Распространить MSI на несколько компьютеров / пользователей в домене через GPO легко. Всем другим установщикам для этого потребуется, чтобы администратор домена сначала «обернул» этот установщик в MSI.
  • MSI — стандартный и рекомендуемый способ установки приложений Windows. Сейчас даже требуется , чтобы получить логотип «Сертифицировано для Vista» от Microsoft.
  • Есть отличный инструмент с открытым исходным кодом для создания файлов MSI: WiX, который мы используем.
  • MSI заботится о подсчете ссылок установленных модулей, что предотвращает так называемый ад dll.
  • требуется установщик, так как мы должны зарегистрировать TortoiseSVN в оболочке. Простой exe-файл для вас не подойдет.

Программа установки прерывается с сообщением об ошибке

Существует несколько причин, по которым установка не может быть успешной:

  • «Этот установочный пакет не поддерживается этим типом процессора. Обратитесь к поставщику продукта». Это означает, что вы пытаетесь установить 64-битную версию TortoiseSVN в обычной 32-битной операционной системе.Вам необходимо загрузить и использовать правильный файл MSI для вашей ОС. Для нормальной 32-разрядной ОС убедитесь, что в файле MSI нет x64 .
  • «Установка была прервана перед установкой TortoiseSVN. Вам необходимо перезапустить программу установки, чтобы повторить попытку» Тогда пользователь SYSTEM не имеет прав на чтение / выполнение в папке, в которой находится установщик MSI. Либо переместите файл MSI в другое место, либо предоставьте пользователю SYSTEM права на чтение и выполнение.
  • «Невозможно получить доступ к службе установщика Windows» Это может произойти, если вы используете Windows в безопасном режиме или если установщик Windows установлен неправильно.Информацию об этом сообщении об ошибке см. В статье Q315346 базы знаний Майкрософт (в основном, убедитесь, что папка, в которой хранится MSI, не зашифрована и не сжата)
  • «Система не может открыть устройство с указанным файлом» , за которым обычно следует «Программа установки обнаружила непредвиденную ошибку при установке этого пакета. Это может указывать на проблему с этим пакетом. Код ошибки — 2755» . Это может произойти, если:
    • У установки нет доступа к каталогу Temp, или если каталог Temp по умолчанию на машине не чистый или в нем недостаточно места для запуска установки.
    • Установка выполняется через терминальный сервер через подключенный сетевой диск.
    • При установке не удается создать или записать в каталог установщика в системной среде Windows NT.
    • Временная папка и / или файл MSI зашифрованы / сжаты.
    Чтобы решить эту проблему, очистите временную папку, переместите установочный файл MSI на локальный жесткий диск, где пользователь SYSTEM имеет права полного доступа. Могут помочь следующие статьи базы знаний:
    • 220780 OFF2000: ошибка установки 2755 с установленной более ранней версией Office
    • 217714 OFF2000: установка перестает отвечать, за ней следует внутренняя ошибка 2336 или 2755
    • 254841 OFF2000: внутренняя ошибка 2755, когда вы Попробуйте выполнить установку с удаленного клиента терминального сервера Windows
    • 305640 PRJ2000: внутренняя ошибка 2381 или внутренняя ошибка 2755 при установке Microsoft Project
    • 318080 Сообщение об ошибке «Система не может открыть указанное устройство или файл» появляется при попытке установить .NET Framework
  • «Этот установочный пакет не может быть установлен службой установщика Windows. Вы должны установить пакет обновления Windows, который содержит более новую версию службы установщика Windows. Вам потребуется установщик MSI как минимум версии 3.

Наложение значков

После обновления TortoiseSVN все мои наложения значков исчезли

Это известная проблема с некоторыми обновлениями, и, в частности, сообщалось о 1.6.8. Если это произойдет с вами, попробуйте выполнить ремонтную установку (и, конечно, перезагрузить компьютер).

Если это не сработает, попробуйте эти другие записи часто задаваемых вопросов.

Почему не появляются наложения значков?

  • Вы конечно перезагрузили компьютер после установки? Если нет, сделайте это сейчас. TortoiseSVN — это расширение оболочки проводника Windows, которое загружается вместе с проводником.
  • Зайдите в настройки TSVN и активируйте наложения значков хотя бы для фиксированных дисков. Установщик делает это автоматически для текущего пользователя (не может этого сделать для других пользователей…), но поскольку вы используете TSVN как другой пользователь, чем вы его установили, вам необходимо установить это вручную.

Значки наложения появляются, но не все!

Вы можете обнаружить, что не все эти значки используются в вашей системе. Это связано с тем, что количество наложений, разрешенных Windows, ограничено 15. Windows использует 4 из них, а остальные 11 могут использоваться другими приложениями. А если у вас установлен OneDrive, он использует еще 5 слотов. Если затем у вас будет установлен другой инструмент облачного накопителя, эти слоты могут быть использованы.TortoiseSVN пытается быть «Хорошим гражданином (TM)»? и ограничивает использование оверлеев, чтобы дать шанс другим приложениям.

  • Нормальный, Измененный и Конфликтный всегда загружены и видны (если возможно!).
  • Удалено загружается, если возможно, но возвращается к измененному, если не хватает слотов.
  • ReadOnly загружается, если возможно, но возвращается к нормальному режиму, если не хватает слотов.
  • Заблокировано загружается, только если уже загружено менее 13 оверлеев. Он возвращается к нормальному режиму, если не хватает слотов.
  • Добавленное загружается только в том случае, если уже загружено менее 14 оверлеев. Он возвращается к измененному, если не хватает слотов.

Вы можете проверить, какие другие приложения используют оверлеи, с помощью regedit, чтобы просмотреть HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ ShellIconOverlayIdentifiers

Другие приложения, которые, как известно, используют оверлеи:
  • сама Windows. Vista и Win7 используют больше, чем XP.
  • OneDrive
  • GDrive
  • Mega
  • Dropbox
  • многие другие

Если установлено слишком много обработчиков оверлеев и TortoiseSVN не показывает никаких наложений, вы можете попытаться удалить некоторые из установленных обработчиков из реестра.Но будьте осторожны при редактировании реестра!

Почему значки видны только на локальных, а не на сетевых дисках?

Перейдите в Настройки -> Внешний вид -> Наложение значков и отметьте типы дисков, для которых вы хотите видеть значки наложения. Имейте в виду, что включение оверлеев для сетевых дисков замедлит не только TortoiseSVN, но и всю систему.

Почему неправильно отображаются значки наложенных на SUBSTED дисков?

Если ваша рабочая копия находится на диске SUBST, значки могут быть перепутаны.

Проблема возникает из-за того, что кэш пытается получить статус для двух «разных» местоположений одновременно, но эти местоположения на самом деле одинаковы, поэтому для одной и той же рабочей копии одновременно выполняется две выборки статуса.

Есть простой способ решить эту проблему: просто исключить исходный путь из показа наложений (настройки-> наложения значков-> исключить пути).

Например, если вы сопоставили \\ station \ folder \ wc с g: , тогда поместите \\ station \ folder \ wc * в качестве шаблона исключения.

Другой способ заставить наложения работать — установить для параметра «Кэш состояния» значение «По умолчанию» значение «Оболочка».

Почему наложения показывают неправильный статус?

Иногда вы обнаруживаете, что наложения не отражают реальный статус файлов и / или папок. Обычно нажатия клавиши F5 достаточно, чтобы наложения отображались правильно (возможно, вам придется подождать несколько секунд, пока кеш снова не получит статус).

Древовидное изображение в левой части проводника — это совсем другая история.Он не будет обновлять оверлеи, независимо от того, сколько раз вы нажимаете клавишу F5 . Это проблема проводника и вне досягаемости TortoiseSVN.

Краткое объяснение: в древовидной структуре всегда отображается все дерево проводника, включая сетевые диски и другие расширения пространства имен. Поскольку они могут быть очень медленными (например, медленными сетевыми дисками), дерево проводника не запрашивает постоянно обновляемые оверлейные расширения. Даже если вы сообщите проводнику, что папка изменилась и он должен соответствующим образом обновить оверлеи, он этого не сделает.Сначала он проверяет себя, действительно ли папка изменилась, и обновляет оверлеи только в том случае, если считает, что папка действительно изменилась.

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

Есть некоторые уловки и обходные пути, чтобы заставить проводник обновлять наложения даже в левом древовидном представлении, но это уловки и обходные пути, которые, очевидно, не работают все время.

Есть один прием, который обычно работает, но он медленный, и TortoiseSVN не может использовать этот прием на лету — он просто слишком сильно замедлит работу системы. Но вы можете запустить этот трюк вручную, выполнив команду «очистка» в корне вашей рабочей копии. После завершения команды очистки вам нужно подождать несколько секунд, пока древовидная структура обновит значки наложения.

Почему значки наложения иногда меняются на случайную графику?

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

  • Установите Microsoft TweakUI и запустите опцию восстановления значков.
  • Или увеличьте размер кеша значков. Перейдите в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer и добавьте новое строковое значение с именем Max Cached Icons . Значение по умолчанию — 500 — попробуйте увеличить его до 2048 (подробности см. В Q132668 в базе знаний Microsoft).
  • Или удалите файл ShellIconCache в каталоге Windows.И перезагружаемся.
  • В TortoiseSVN 1.3.0 и более поздних версиях вы также можете перестроить кэш значков, вызвав TortoiseProc из командной строки следующим образом: TortoiseProc.exe / command: rebuildiconcache

Почему нет наложения для ‘обновление доступно’ или ‘ заблокирован чужими?

Чтобы показать такое наложение, TortoiseSVN должен будет связываться с репозиторием каждый раз, когда отображается наложение. Это сделало бы Explorer невероятно медленным. Серверы часто отвечают за несколько секунд, иногда минут — вы действительно хотите, чтобы проводник зависал при этом каждый раз, когда вы открываете папку с версией?

Фундаментальная особенность TortoiseSVN заключается в том, что к репозиторию никогда не обращаются, за исключением случаев, когда это явно запрашивается одним из пунктов контекстного меню.Даже с этим ограничением, быстрое реагирование — это тяжелая работа.

Если вы хотите узнать, какие файлы заблокированы в рабочих копиях пользователей или какие файлы нуждаются в обновлении, используйте диалоговое окно «Проверить наличие изменений» и нажмите кнопку «Проверить репозиторий».

Наложение значков

100% ЦП, когда я щелкаю файл правой кнопкой мыши.

Каждый раз, когда я щелкаю файл правой кнопкой мыши, ЦП переходит на 100% (пока отображается меню правой кнопки мыши). Если я выбираю что-то из меню, ЦП возвращается в нормальное состояние.Если я щелкну правой кнопкой мыши на «ничего», то с процессором все в порядке. Что происходит?

XP содержит известную ошибку, из-за которой загрузка ЦП увеличивается до 100 процентов при доступе к контекстному меню в определенных конфигурациях. Эта ошибка приводит к остановке операций копирования файлов, замедлению сетевых подключений и искажению потокового мультимедиа (например, аудио, видео). Чтобы обойти эту ошибку, необходимо отключить эффекты перехода графического интерфейса пользователя, выполнив следующие действия:

  1. Запустите апплет дисплея панели управления.
  2. Выберите вкладку «Внешний вид».
  3. Щелкните «Эффекты», затем снимите флажок «Использовать следующий эффект перехода для меню и всплывающих подсказок».
  4. Нажмите ОК, чтобы закрыть все диалоговые окна.

Другое решение, которое часто работает, — это щелкнуть левой кнопкой мыши файл или папку перед тем, как щелкнуть правой кнопкой мыши, чтобы отобразить контекстное меню.

Могу ли я создать локальный репозиторий в сетевом каталоге?

Вы можете использовать репозиторий в общей сетевой папке, но только как один пользователь, как если бы вы использовали локальный жесткий диск.Следующий пункт часто задаваемых вопросов объясняет, почему совместное использование репозитория таким образом является плохой идеей (TM). Если у вас нет серьезных причин хранить репозиторий в общей сетевой папке, обычно лучше этого не делать.

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

  1. Используйте сопоставление дисков, используя синтаксис ниже:
    Сопоставить // сервер / общий для S:
    файл : /// S: / repos (3 ведущие косые черты перед буквой диска)
  2. Укажите путь UNC напрямую, используя синтаксис ниже:
    Subversion> = 1.2
    file: // server / shared / repos (2 ведущие косые черты)
    Subversion <1.2 (странный синтаксис, мы знаем)
    file: ///// server / shared / repos (5 ведущих косые черты)
    файл: /// \ server / shared / repos (3 косые черты + обратная косая черта)

Но не говорите, что мы вас не предупреждали …

Могу я оставить свой репозиторий включенным сетевой ресурс вместо настройки сервера?

Если вам нужно несколько компьютеров для доступа к репозиторию, теоретически вы можете создать репозиторий в общей сетевой папке и получить к нему доступ по протоколу file: //.На практике это , а не , рекомендованный по четырем очень веским причинам:

  1. Вы предоставляете прямой доступ для записи всем пользователям, чтобы они могли случайно удалить или повредить файловую систему репозитория.
  2. Не все сетевые протоколы обмена файлами поддерживают блокировку, требуемую Subversion. Однажды вы обнаружите, что ваш репозиторий был слегка поврежден.
  3. Вы должны правильно настроить права доступа. Самба в этом отношении особенно сложна.
  4. Если один человек устанавливает более новую версию клиента, которая обновляет формат репозитория, тогда все остальные не смогут получить доступ к репозиторию, пока они также не обновятся до новой версии клиента.

Безусловно, лучший способ — это настроить реальный серверный процесс (такой как Apache или svnserve), сохранить репозиторий в локальной файловой системе, к которой сервер может получить доступ, и сделать сервер репозитория доступным по сети. Это проще, чем вы думаете. Глава 6, Конфигурация сервера в книге Subversion Book, подробно описывает этот процесс.

Могу ли я сохранить рабочую копию в общей сетевой папке?

Это зависит от общего сетевого ресурса. Но мы очень, очень настоятельно призываем вас сделать это , а не ! Даже если вы используете сервер Windows и используете эти общие сетевые ресурсы, блокировка файлов fcntl () не является полностью надежной. А для акций на основе Samba все ставки отключены. Это означает, что вы получите поврежденную рабочую копию, а затем потеряете данные! Может, не сегодня, может, не завтра, но когда-нибудь будешь.

Если вам действительно необходимо сохранить рабочую копию в общей сетевой папке, внимательно ознакомьтесь с соответствующей записью в FAQ проекта SQLite.

Могу ли я использовать разные клиенты Subversion с одной и той же рабочей копией?

Да, вы можете переходить с одного клиента на другого, когда захотите. Клиенты просто контролируют вашу рабочую копию и взаимодействие между вашей рабочей копией и репозиторием. Метаданные внутри рабочих копий, используемых разными клиентами, идентичны.

Но вы можете использовать разные клиенты, только если все они используют одну и ту же версию библиотеки Subversion. Версия библиотеки Subversion, которую использует TortoiseSVN, указывается в имени файла программы установки, другие клиенты имеют аналогичные указания.Вы должны убедиться, что эти версии соответствуют друг другу по первым двум цифрам. Например, все клиенты, использующие Subversion 1.6.x, могут использоваться вместе («x» указывает, что это число не имеет отношения к совместимости).

Вы также должны быть уверены, что все клиенты созданы для одной и той же ОС. Совместимость клиента гарантируется только для определенного типа ОС, и представления метаданных могут отличаться. Вы должны , а не , использовать собственный клиент Windows и клиент Cygwin на одной и той же рабочей копии.И если вы разделяете рабочую копию по сети, вы должны , а не , использовать клиент Linux и Windows на одной и той же рабочей копии.

Может ли TortoiseSVN преобразовывать разрывы строк в текстовых файлах на лету?

Посмотрите книгу о подрывной деятельности о свойстве svn: eol-style здесь. Если вы установите это свойство, например, ‘native’, то в Linux файл будет иметь окончания строки LF, а в Windows — окончания строки CRLF. Чтобы узнать, как вы можете установить эти свойства с помощью TortoiseSVN, прочтите нашу документацию здесь.

Как узнать, в чем конфликт, если он есть в списке свойств каталога?

Внутри папки с конфликтующими свойствами вы найдете файл с именем dir_conflicts.prej . Откройте этот файл в текстовом редакторе, и вы увидите конфликтующие свойства. Выберите тот, который вы хотите сохранить, и замените конфликтующее свойство этим.

Я случайно удалил файл. Как мне его вернуть?

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

Если вы уже зафиксировали удаленный файл, вы можете использовать обозреватель репозитория, перейти к ревизии, в которой файл все еще существовал, а затем использовать команду Копировать в … из контекстного меню. Введите путь к вашей рабочей копии в качестве целевого, и удаленный файл будет скопирован из репозитория в вашу рабочую копию.

Вы также можете восстановить удаленный каталог, используя эту технику.

Если после восстановления файла / папки с помощью этой уловки в диалоговом окне журнала не отображается история этого файла, не беспокойтесь.История все еще существует. Если вы копируете файл в SVN, вы также копируете его историю. Но по умолчанию в ShowLog TSVN установлено значение «Остановить при копировании», что означает, что когда вы смотрите на историю, она возвращается только к точке ветвления. Причина этого в том, что когда вы смотрите на реальную ветку проекта, в основном вы хотите видеть только историю этой ветки. Чтобы увидеть всю историю в ShowLog, вам нужно снять флажок «Остановить при копировании» и нажать «Получить все».

Можно ли использовать «Общие файлы», как в Visual Source Safe?

Да, но с некоторыми ограничениями.Вы можете использовать «Внешние файлы» для извлечения отдельных файлов из другой части того же репозитория, что и ваша рабочая копия, но не из внешнего репозитория. Вы также можете делиться папками, и они могут быть из любого репозитория. Пожалуйста, посмотрите главу «Внешние определения» в книге по Subversion.

Можно ли использовать TortoiseSVN без сервера?

Да, это так. Вы можете использовать протокол file: // для локального доступа к вашему репозиторию. Однако мы настоятельно рекомендуем делать это только для тестирования.Для более подробного объяснения обратитесь к этому разделу часто задаваемых вопросов.

Есть ли способ отправить имя пользователя и пароль при использовании TortoiseProc?

TortoiseSVN — это клиент с графическим интерфейсом, поэтому в случае необходимости он запросит у вас имя пользователя и пароль. Если вы хотите автоматизировать доступ к своему репозиторию без взаимодействия с пользователем (т.е. без необходимости вводить имя пользователя и пароль, если это необходимо), используйте клиент командной строки.

Как работает граф ревизий?

График ревизий немного особенный, он не похож на другие функции TortoiseSVN.Он показывает график файла или папки через историю со всеми ревизиями, в которые файл или папка были скопированы, перемещены, разветвлены или помечены.

Мы часто получаем людей, которые задают вопросы, почему ему нужно получить журнал для корня репозитория или почему ему нужно получить полный журнал от ревизии HEAD до первой ревизии.

Чтобы прояснить: это не потому, что мы ленивые программисты, это действительно необходимо.

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

Если вы посмотрите сообщения журнала для выбранного файла или папки, вы увидите в нижней части диалогового окна журнала все затронутые пути выбранной ревизии. Эту информацию мы используем для графа ревизий. Вы также заметите, что если вы просто покажете журнал, например, / trunk, вы не увидите никаких записей в диалоговом окне журнала для ревизий, которые произошли в теге или ветке. Вы даже не увидите в этом журнале записи, где вы отметили или разветвили / транк.-> вот почему мы должны получить журнал для корня репозитория: только журнал корня репозитория даст нам всю необходимую информацию, в том числе, когда и где путь был скопирован / разветвлен / помечен / перемещен.

Если бы мы извлекали журнал только для определенного диапазона, а не для всех ревизий, мы могли бы пропустить ревизию, в которой (все еще используя приведенный выше пример с / trunk) магистраль была разветвлена ​​или помечена. И хотя в эти ветки и теги есть изменения или они все еще существуют в диапазоне ревизий, граф не может знать, что эти ветки / теги были созданы из / trunk, а не из какого-либо другого пути.Значит, график будет не просто неполным, он будет неправильным.

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

Почему в журналах не отображается «автор», когда я фиксирую изменения через svn + ssh?

Поскольку SSH полностью берет на себя процесс аутентификации, Subversion даже не увидит автора, который делает коммит.Итак, чтобы сообщить Subversion об авторе, вы должны указать автора в самом URL. Например. svn + ssh: // [email protected] Вы должны сделать это при проверке своей рабочей копии.

Почему TortoiseSVN не распознает, что файл был изменен?

Если вы изменили файл, но TortoiseSVN не распознает, что файл был изменен, сначала проверьте, действительно ли файл отличается от того, что есть в вашей рабочей копии.

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

  • дата последней модификации файла изменилась (некоторые инструменты, такие как шестнадцатеричные редакторы, любят сбрасывать в это время)
  • , если свойство svn: eol-style установлено и изменения касаются только новой строки, файл не будет отображаться как измененный, потому что для Subversion он не изменился

Subversion определяет, был ли файл изменен со следующим подходом:

  1. изменилась ли дата «последнего изменения» и / или размер файла?
  2. , если нет: файл не изменен
  3. , если да: сравнить содержимое файла с файлом BASE
  4. остановить на первом различающемся байте, пометить файл как измененный
  5. если ни один байт не отличается относительно BASE, пометьте файл без изменений

Когда я удаляю файл, он исчезает, как мне его зафиксировать?

Легко, вы фиксируете весь каталог! Щелкните правой кнопкой мыши в окне проводника рядом с файлом и выберите зафиксировать .В диалоговом окне фиксации будут отображаться все изменения, а также добавленные или удаленные файлы.

Проблемы с разрешениями рабочих копий на общей папке SAMBA.

После обновления до TortoiseSVN 1.5.x или новее вы получаете множество ошибок типа «Доступ запрещен» для большинства команд Subversion, если ваша рабочая копия хранится в общей папке SAMBA.

Некоторые пользователи сообщили, что проблема исчезла после обновления SAMBA до последней версии. Если это не помогает или вы не можете выполнить обновление, разрешите удаление файлов только для чтения в файле конфигурации SAMBA:

 [global]
delete readonly = yes 
Для более старых версий попробуйте:
 [global]
создать маску = 0644
принудительно создать режим = 0600
маска безопасности = 0555
force security mode = 0600 

Полученная информация говорит о том, что основная проблема исправлена ​​в SAMBA 3.2.3. Существует дополнительная проблема с созданием файлов с помощью свойства svn: needs-lock только для чтения. Сообщается, что это исправлено в SAMBA 3.2.6 или 3.3.0.

Очень медленный просмотр в проводнике и диалоге открытия / открытия файла.

Если у вас есть подключенные сетевые диски, которые не разрешены, либо потому, что диск недоступен, либо вы не вошли в систему, просмотр файлов может перестать отвечать, пока Windows безуспешно пытается получить доступ к диску. Либо отключите диск, либо убедитесь, что к нему можно получить доступ.

Свойства bugtraq: не работают для диалогов, запускаемых из обозревателя хранилища.

Это сделано специально. Браузер репозитория не читает свойства, потому что это очень медленная операция, если она выполняется удаленно. Это достаточно быстро только при чтении из локальной рабочей копии.

Если TortoiseSVN будет читать эти свойства непосредственно из репозитория, их выборка может занять несколько секунд (даже минут!).

Отображение журнала часто вылетает.

Кэш журнала зависит от всех репозиториев, имеющих разные идентификаторы uuid.Подробное объяснение того, почему и что вы можете с этим сделать, находится здесь: https://tortoisesvn.net/logcacheuuids.html.

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

При обновлении рабочей копии новые файлы не добавляются!

Между TortoiseSVN 1.6.0 и 1.6.1 добавлялись папки с глубиной «Только этот элемент».Это привело к так называемой «разреженной проверке» этой части вашей рабочей копии.

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

Чтобы исправить вашу разреженную рабочую копию, вместо «Обновить» используйте команду «Обновить до ревизии …» из подменю TortoiseSVN (щелкните правой кнопкой мыши в проводнике), измените поле со списком «Обновить глубину» на «Полностью рекурсивный» .

Мне сказали, что проблема / ошибка X была исправлена ​​в rXXX, но в последней версии все еще не реализовано / исправлено?

Наша политика выпуска — никогда не вводить новые функции или изменения ресурсов в стабильной ветви.Мы работаем над основной веткой, где исправляем ошибки, вводим новые функции или меняем поведение функций. Только важные исправления ошибок возвращаются в стабильную ветку, а стабильная ветка — это то место, откуда мы создаем наши выпуски.

У нас есть эта политика, чтобы предотвратить попадание новых ошибок в стабильную ветку. В конце концов, это называется стабильной веткой .

Запрошенная вами функция / обнаруженная ошибка, даже если она исправлена ​​/ реализована в магистрали, не была объединена обратно в стабильную ветку из-за этой политики.Вот почему вы не видите изменений в последней версии.

Если вы любите приключения, вы можете использовать ночную сборку: https://nightlybuilds.tortoisesvn.net/latest/

TortoiseSVN плохо работает с Eclipse

Eclipse копирует каталоги как часть своей нормальной работы, а рабочая копия subversion, она также скопирует каталог .svn. Это заставляет TortoiseSVN думать, что в каталоге bin есть файлы с поддержкой версий.

Если вы хотите продолжать использовать TortoiseSVN и просто предотвратить это, вам нужно добавить ‘** /.svn / ‘в список исключения источников Eclipse.

Но Eclipse имеет свой собственный плагин подрывной деятельности под названием Subclipse, который делает Eclipse осведомленным о SVN и устраняет проблему в исходном коде. Вы можете найти его на https://github.com/subclipse/subclipse. После установки Subclipse необходимо произвести новую проверку. Он не будет исправлять проверки, сделанные до его установки.

Предупреждения безопасности при загрузке файлов в Internet Explorer

Когда вы выбираете файлы для загрузки с помощью веб-формы в Internet Explorer, вы можете получить предупреждения системы безопасности о том, что программа пытается открыть веб-контент, идентифицируя TortoiseSVN как виновника.

Не паникуйте! Это (неправильная) особенность модели безопасности Internet Explorer. Поскольку TortoiseSVN является расширением оболочки, оно загружается автоматически при создании диалогового окна открытия файла, чтобы обеспечить наложение значков и контекстные меню.
Есть два способа отключить предупреждения:

  1. В настройках TortoiseSVN перейдите в раздел «Наложение значков» и установите флажок « Показывать наложения и контекстное меню только в Explorer ».
  2. При появлении предупреждения установите флажок Больше никогда не показывать для этого приложения .

Повторяющиеся диалоги для вставки смарт-карты

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

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

Чтобы предотвратить попытки TortoiseSVN получить доступ к хранилищу сертификатов Windows в случае запроса сертификата репозиторием, создайте раздел реестра HKCU \ Software \ TortoiseSVN \ OpenSSLCapi как DWORD и установите для него значение 0 .

Где символы отладки?

Все символы отладки, как для официальных выпусков, так и для ночных сборок, размещены на DrDump.com

Для доступа к символам отладки настройте отладчик на использование сервера символов по адресу http://www.crash-server.com : 8080 / public / tsvn / 71040F62-F78A-4953-B5B3-5C148349FED7 / symsrv

Чтобы понять, как использовать сервер отладочных символов, прочтите эту статью.

Как я могу …

… добавить в мои файлы информацию о ключевых словах, такую ​​как автор, редакция, дата и время фиксации?

Прочтите о свойстве Subversion svn: ключевые слова в книге Subversion.

В TortoiseSVN настройте свойства, как описано здесь.

… изменить регистр имени файла?

Subversion разработана для работы с файловыми системами, чувствительными к регистру, такими как используемые в Linux. Когда дело доходит до файловой системы Windows без учета регистра, все не всегда работает так, как вы могли ожидать. Речь идет о переименовании файла, в котором изменяется только регистр, например переименование Makefile в MAKEFILE. До Subversion 1.7 вы не могли легко сделать это в своей рабочей копии, поскольку Subversion требовала, чтобы оба имени существовали одновременно в течение короткого времени, а Windows не могла это поддерживать.

Самым простым способом является переименование напрямую с помощью обозревателя репозитория:

  1. Зафиксируйте изменения в вашей рабочей копии.
  2. Переименуйте файл с верхнего регистра в верхний регистр прямо в репозитории с помощью обозревателя репозитория.
  3. Обновите вашу рабочую копию.

Начиная с Subversion 1.7 это больше не проблема, так как вся структура рабочей копии была изменена, поэтому файлы можно просто переименовать, используя обычную команду TSVN-> Rename.

… изменить сообщение журнала или автора после фиксации?

Вызовите диалоговое окно журнала и нажмите правой кнопкой мыши на ревизии, которую вы хотите отредактировать. Затем в контекстном меню выберите «сменить автора» или «изменить сообщение журнала». Чтобы сервер принял эти изменения, для репозитория должен быть установлен обработчик pre-revprop-change , который позволяет изменять автора или сообщение. При установке по умолчанию изменения автора и сообщения журнала отклоняются.

… очистить раскрывающиеся списки в TortoiseSVN?

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

Отдельные элементы можно навсегда удалить из раскрывающихся списков, нажав Shift-Delete.

… полностью удалить репозиторий с моего компьютера?

Aehemm: выберите папку и нажмите Удалить (клавиша на клавиатуре может быть обозначена только Del ).

Серьезно, нет никаких скрытых файлов или настроек. Репозиторий полностью содержится в одном дереве папок.

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

… экспортировать логин в текстовый файл?

Используйте диалог журнала. Выделите все нужные записи и нажмите Ctrl + C . Затем используйте Ctrl + V (или вставьте) в свой любимый текстовый редактор.

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

… добавить номер редакции проекта в мой проект?

Если вы хотите, чтобы номер редакции был в номере версии вашей программы, вам понадобится дополнительный инструмент для этого. Вы можете найти инструмент SubWCRev.exe на странице загрузки на нашем веб-сайте или в папке TortoiseSVN в папке bin .

Этот инструмент просматривает всю вашу рабочую копию в поисках самой последней редакции. Как только эта ревизия найдена, она заменяет все вхождения следующих строк:

$ WCREV $
Эта строка будет заменена номером ревизии вашей рабочей копии.
WCMODS? Изменено: Не изменено $
Если у вас есть локальные изменения, будет вставлена ​​строка между вопросительным знаком и двоеточием. Если у вас нет локальных изменений, будет вставлена ​​строка между двоеточием и знаком доллара. В нашем примере выше Изменено или Не изменено .
$ WCDATE $
Будет заменено датой последней редакции в вашей рабочей копии.

В качестве примера посмотрите версию файла в дереве исходных текстов TortoiseSVN. Этот файл используется в TortoiseSVN и его файлах ресурсов. Инструмент SubWCRev.exe вызывается из сценария сборки следующим образом: SubWCRev.exe путь \\ к \\ working \\ copy version.in version.h Это создает новый файл version.h со всеми приведенными выше строками заменены значениями рабочей копии. Затем файл version.h используется в самом проекте и включается в файлы ресурсов для информации о версии.

… запретить Subversion выполнять автоматическое слияние?

Некоторым не нравится тот факт, что Subversion автоматически объединяет изменения, сделанные другими, с изменениями их собственной локальной рабочей копии при обновлении. Вот как заставить эти файлы перейти в конфликтное состояние, чтобы вы могли объединить их вручную по своему усмотрению.

  1. В TortoiseSVN-> Настройки-> Файл конфигурации Subversion нажмите кнопку редактирования.
  2. Измените раздел [helpers], добавив diff-cmd = «C: \\ false.bat» diff3-cmd = «C: \\ false.bat «(обратите внимание на двойную обратную косую черту)
  3. Создайте файл C: \ false.bat, содержащий две строки
     @type% 9
    @exit 1 

Это фактически приводит к сбою автоматического слияния каждый раз, что приводит к конфликту файла.

Причина появления любопытной строки «type% 9» в том, что команда diff3-cmd отправляет объединенный вывод на стандартный вывод. Затем Subversion берет это и перезаписывает ваш локальный файл результатами слияния. Добавление этой строки позволяет избежать пустого локального файла.

… посмотреть, что такое моя текущая песочница / репозиторий?

Щелкните правой кнопкой мыши папку в вашей рабочей копии, выберите «Свойства» в контекстном меню проводника.Затем в диалоговом окне свойств переключитесь на вкладку «Subversion». Там вы можете увидеть всевозможную информацию о выбранной папке, в том числе о том, на какой URL она указывает.

Еще один способ быстро просмотреть эту информацию — выбрать «Переместить» в контекстном меню и просмотреть первый URL-адрес. Поскольку вы не хотите перемещать туалет, просто прервите это диалоговое окно.

… установить TortoiseSVN автоматически / автоматически?

Просто запустите установщик MSI следующим образом:

msiexec / package TortoiseSVN.msi / quiet INSTALLDIR = "path / to / install / dir"

Сообщения об ошибках

Невозможно скопировать / переместить ‘XXX.svn-base’ в ‘XXX.tmp’: система не может найти указанный файл.

Это сообщение об ошибке обычно появляется при попытке обновить рабочую копию. Причина этой ошибки:

  • На самом деле в репозитории есть 2 разных файла, имена которых отличаются только регистром. Этот не может работать с при оформлении заказа Windows, потому что файловая система Windows не чувствительна к регистру.Вполне вероятно, что один из файлов был добавлен по ошибке, поэтому вам нужно выяснить, какой из них, убедиться, что нет изменений, внесенных в неправильный файл, а затем удалить его.
  • Имеется файл с недопустимым (недопустимым в Windows) именем файла. Например, такие имена, как «con», «lpr», «com» ​​и т. Д. Недопустимы в Windows, потому что это имена устройств. И, конечно же, имена с «/ \ * ?: |» и некоторые другие специальные символы в них также невозможны в Windows (NTFS и FAT).

И да, мы знаем, что сообщение об ошибке в этом случае бесполезно.Но сообщение об ошибке исходит из библиотеки Subversion, которую мы не можем изменить самостоятельно.

Есть несколько способов решить проблему и предотвратить ее повторение. Взгляните на эти инструкции.

Невозможно переместить «.svn / tmp / entries» в «.svn / entries»: файл или каталог повреждены и нечитаемы.

Это сообщение об ошибке обычно появляется, когда вы пытаетесь обновить или зафиксировать свою рабочую копию, и, по-видимому, часто встречается в системах Windows 7. Это связано с тем, что другой процесс удерживает дескриптор файла, который Subversion необходимо переместить или изменить.Это может быть антивирусный сканер. Настройте антивирусный сканер так, чтобы ваши рабочие копии и репозитории были исключены из проверки.

Примечание: в Win7 есть ошибка, из-за которой это сообщение об ошибке появляется намного чаще, чем необходимо. Ошибка исправлена ​​в пакете обновления 1. Подробнее см. Этот пост.

Не удается открыть файл ‘XXX \ nnn-n.txn \ changes’: процесс не может получить доступ к файлу, потому что он используется другим процессом

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

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

Подобные ошибки могут возникать и в вашей рабочей копии. Попробуйте игнорировать там папку .svn.

Не удалось добавить «XXX»: объект с таким именем уже существует

Это сообщение об ошибке обычно появляется при попытке обновить рабочую копию. Это происходит потому, что Subversion никогда не удаляет и не перезаписывает существующие локальные данные.Может быть три причины, по которым вы получаете эту ошибку:

  1. У вас есть локальный неверсированный файл с тем же именем, что и файл, который недавно был добавлен кем-то другим. В этом случае решение состоит в том, чтобы переместить локальный файл в другое место (или переименовать его), а затем обновить. Впоследствии вы можете решить, нужно ли каким-либо образом объединить два файла, или, если выбор имени является чисто случайным, вы можете дать своему файлу другое имя.
  2. Файл был переименован в репозитории, но отличается только регистром, например Install.txt с по install.txt , и у вас есть локальные изменения. При обновлении вы попадаете в ситуацию (1), где измененный локальный файл отображается как неверсированный. Переместите его в другое место, обновите и разберитесь с беспорядком.
  3. На самом деле в репозитории 2 разных файла, имена которых отличаются только регистром. Этот не может работать с при оформлении заказа Windows, потому что файловая система Windows не чувствительна к регистру. Вполне вероятно, что один из файлов был добавлен по ошибке, поэтому вам нужно выяснить, какой из них, убедиться, что нет изменений, внесенных в неправильный файл, а затем удалить его.

ВАРИАНТЫ

: 401 Требуется авторизация

При обновлении до версии 1.4.x вы внезапно больше не можете получить доступ к своему репозиторию. Каждая попытка отклоняется с сообщением об ошибке: OPTIONS of ‘path’: 401 Authorization Required ‘url’

Причиной этого является автоматическая аутентификация с SSPI, которая активирована в версии 1.4.x. Это означает, что TortoiseSVN теперь пытается автоматически аутентифицироваться с учетными данными пользователя, вошедшего в систему контроллера домена Windows.

Если вы настроили свой сервер для аутентификации с помощью SSPI на контроллере домена, а на контроллере домена не включена учетная запись пользователя GUEST, все должно быть в порядке. Но если учетная запись пользователя GUEST активна, то вся аутентификация для этого пользователя проходит успешно — и вы обычно не предоставляете пользователю GUEST доступ к своему репозиторию. Вот почему аутентификация проходит успешно, а авторизация не работает.

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

Для решения этой проблемы у вас есть следующие варианты:

  • отключить учетную запись GUEST на контроллере домена
  • использовать те же учетные записи для ваших рабочих станций и получить доступ к репозиторию
  • отключить аутентификацию SSPI для репозитория
  • Проверить случай имен пользователей. Изменение имен пользователей в файлах доступа на нижний регистр также может решить эту проблему.

Этот клиент слишком старый для работы с рабочей копией «XXX»

Полное сообщение об ошибке: Этот клиент слишком старый для работы с рабочей копией ».’; пожалуйста, получите новый клиент Subversion.

Вы получите это сообщение об ошибке, если используете клиент Subversion, связанный с более поздней версией Subversion, а затем попытаетесь выполнить команду с клиентом Subversion, связанным с более старой версией, например, вы использовали клиент 1.4.x на своем компьютере. рабочая копия, и теперь вы пробуете клиент svn 1.3.x на той же рабочей копии.

Причина в том, что Subversion 1.4 и более поздние версии обновляют рабочие копии прозрачно для каждой команды. Но после обновления формата рабочей копии старые клиенты больше не могут получить доступ к рабочей копии, потому что они не знают новый формат.

Единственное решение «исправить» это — обновить любой клиент, который вы используете и который выдал вам это сообщение об ошибке. Или выполните новую проверку со старым клиентом.

Рабочая копия устарела

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

Это означает, что вам нужно использовать команду Update , чтобы обновить вашу рабочую копию до того же уровня, что и репозиторий.

Может быть неочевидно, зачем вам это нужно, особенно если вы, , знаете, что репозиторий не изменился. Ответ прост: ваша рабочая копия не полностью обновляется фиксацией. Автоматически обновляются только измененные файлы и папки. Рассмотрим этот пример во вновь созданном репозитории:

 Добавить папку в редакции 1
Добавьте File1 и File2 в ревизию 2
Измените File1 и зафиксируйте в ревизии 3 

Теперь репозиторий имеет ревизию 3, но в вашей рабочей копии ревизии выглядят так:

 Папка: ревизия 1
Папка / Файл1: редакция 3
Папка / Файл2: версия 2 

Теперь, если вы измените File2 и попытаетесь выполнить фиксацию, это не удастся.Клиент сообщает репозиторию, что File2 имеет версию 2 с локальными изменениями, но репозиторий уже находится в версии 3. Если вы затем выполните обновление, File2 также будет иметь версию 3 (и, конечно, ваши локальные изменения все еще будут там. ).

То же самое может произойти, если вы попытаетесь создать ветку или тег. Ответ всегда один: если ваша рабочая копия устарела, обновите ее!

Невозможно записать в стандартный вывод

TortoisePlink использует стандартный код plink, но скомпилирован как безоконное приложение, поэтому некуда отправлять сообщения об ошибках.В настройках TSVN-> сеть установите в поле клиента SSH использование стандартного канала, где сообщения об ошибках отображаются в поле команд. Как только это сработает, используйте TortoisePlink с теми же параметрами.

«не удалось записать в стандартный вывод» означает, что Plink хотел выдать ошибку, но поскольку TortoisePlink не предоставляет окно DOS, нет стандартного вывода для записи сообщения об ошибке.

Значит что-то с настройкой не так. Попробуйте использовать обычную программу Plink и посмотрите, какое сообщение об ошибке действительно выдается, а затем исправьте настройку.

Если обычный плинк просто зависает, то ему передаются неверные параметры (диалог настроек, вкладка сети).

Другая возможность состоит в том, что демон SSH, скорее всего, не может найти двоичный файл svnserve. Войдите с вашим целевым пользователем (здесь myuser) на сервер и введите «which svnserve». Если вы не видите путь к двоичному файлу, сделайте этот файл (и, скорее всего, другие двоичные файлы Subversion) глобально доступным для этого пользователя.

400 Плохой запрос

Запрос ОТЧЕТА завершился ошибкой ‘… ‘REPORT of’ … ‘: 400 Bad Request (http: // …)

Вы находитесь за брандмауэром, который блокирует запросы DAV. Большинство межсетевых экранов делают это. Либо попросите администратора изменить брандмауэр, либо войдите в репозиторий с https: // вместо http: // . Таким образом вы подключаетесь к репозиторию с шифрованием SSL, которому брандмауэры не могут вмешиваться (если они не блокируют порт SSL полностью).

Также известно, что некоторые антивирусные сканеры (например, Kaspersky) мешают и вызывают эту ошибку.

403 Запрещено

Запрос PROPFIND завершился неудачно: 403 Запрещено

Вероятно, это потому, что вы ввели родительский путь вашего репозитория вместо фактического пути репозитория. Попробуйте добавить имя репозитория, к которому вы хотите получить доступ, к URL-адресу. Вам также необходимо добавить URL-адрес с косой чертой ‘/’ после имени репозитория.

Для получения дополнительной информации о фактической ошибке обратитесь к журналу ошибок Apache.

405 HTTP-метод запрещен

PROPFIND Request Failed — Error 405 HTTP Method Not Allowed

Это сообщение бывает разных видов.Вы можете увидеть эту ошибку, когда:

  • Запрос PROPFIND завершился неудачно Вы пытались просмотреть родительский путь репозитория вместо самого репозитория, используя старую версию TortoiseSVN. Попробуйте добавить имя репозитория, к которому вы хотите получить доступ, или обновите TortoiseSVN до 1.2.3 или новее.
  • Ошибка запроса PROPFIND Вы забыли добавить косую черту ‘/’ в конец введенного URL. Более старые версии TSVN требуют, чтобы после имени репозитория ставился символ «/».Если вы это забудете, TSVN удалит имя репозитория из URL-адреса и, следовательно, попытается получить доступ к родительскому каталогу.
  • Ошибка запроса PROPFIND Вы пытаетесь получить доступ к репозиторию через прокси-сервер, который не разрешает запросы DAV. Обычно вы можете легко просматривать свой репозиторий с помощью веб-браузера, только если вы используете клиент svn, вы получите эту ошибку. Вы должны настроить свой прокси-сервер / брандмауэр, чтобы пропускать запросы DAV. Или попробуйте использовать https вместо http: большинство прокси не могут анализировать зашифрованные сетевые пакеты и, следовательно, больше не могут блокировать запросы DAV.
    Другой возможной причиной этой ошибки является антивирусный сканер / брандмауэр, установленный на вашем компьютере. Многие из них отфильтровывают запросы DAV, даже если вы этого не замечаете. Попробуйте отключить сканер / firewalll.
  • Ошибка запроса блокировки Вы пытались заблокировать файл в своей рабочей копии, которого больше нет в репозитории. Обновите свою рабочую копию, прежде чем пытаться заблокировать файлы.

Для получения дополнительной информации о том, что на самом деле вызвало ошибку, обратитесь к журналу ошибок Apache.

SVN + SSH: соединение неожиданно закрыто

Сообщалось, что соединения svn + ssh в форме svn + ssh: // [email protected], которые ранее работали, перестают работать с TortoiseSVN 1.5. Похоже, это связано с plink и возникает, если в PuTTY задано имя хоста по умолчанию.

Если это так, вы можете исправить это, используя regedit или regedt32, чтобы очистить HKEY_CURRENT_USER / Software / SimonTatham / Putty / Sessions / Default% 20Settings / HostName.

Другой пользователь сообщил о следующем исправлении на стороне сервера:
  • ssh в вашу учетную запись
  • cd ~
  • cp / etc / bashrc.bashrc
  • nano .bashrc
  • поместите # перед строкой «mesg y» (которая закомментировала это)
  • Ctrl + X для выхода, нажмите Y , когда будет предложено сохранить.

Использование SVN в Windows — Codebase

Вы можете использовать SVN через интерфейс командной строки или через пользовательский интерфейс.

В этом руководстве мы рассмотрим установку клиента пользовательского интерфейса Subversion, чтобы мы могли регистрировать и фиксировать данные из Windows прямо в нашу учетную запись Codebase.

Установка Subversion

Нам нужно начать настройку нашего клиента.Для этого мы будем использовать TortoiseSVN. Его можно скачать отсюда, просто выберите 32-разрядный или 64-разрядный клиент и установите его на свой компьютер. Вам не нужно перезагружаться, несмотря на то, что установщик говорит вам об этом.

Создание нашего первого проекта

Когда вы будете готовы, мы можем создать папку проекта. В этом случае мы будем использовать c: \ myproject . Поскольку TortoiseSVN — это просто расширение оболочки, мы можем инициализировать SVN в моем проекте, щелкнув правой кнопкой мыши внутри папки и выбрав SVN Checkout :

Теперь нам нужно ввести URL-адрес репозитория, который находится в нашей учетной записи Codebase, который в этом случае будет https: // adamw.codebasehq.com/tester/svn_repo.svn. Его можно найти на главной странице репозитория с правой стороны:

Все остальное можно оставить как есть; все это автоматически заполняется для первой проверки из папки, в которой вы находитесь, поэтому просто нажмите ОК. Теперь вам будет предложено пройти аутентификацию, просто введите имя пользователя и пароль кодовой базы и снова нажмите OK.

Папка .svn будет создана внутри myproject.

Запуск нашей первой фиксации

Теперь нам нужно что-то зафиксировать, поэтому давайте создадим новую папку внутри myproject и назовем ее test .Как только это будет сделано, просто щелкните правой кнопкой мыши в корне myproject и выберите SVN Commit . Появится окно с обнаруженными изменениями, в данном случае новая папка:

Мы можем ввести наше сообщение о фиксации вверху, а затем нажать OK, когда мы будем готовы. Аналогичное сообщение появится при первом выезде. Итак, мы создали приятную простую настройку клиента для SVN и запустили наши первые коммиты. Мы можем увидеть результаты нашей первой фиксации в базе кода:

Сводка

Итак, теперь мы знаем, как устанавливать, настраивать и продвигать наши коммиты с помощью SVN.Для получения дополнительной информации о подрывной деятельности мы рекомендуем вам ознакомиться с SVNbook, в котором рассказывается гораздо более подробно. Для получения дополнительной информации об использовании TortoiseSVN см. Это руководство.

Есть ли в windows 100% утилита командной строки для svn?

Есть ли в Windows утилита 100% командной строки для svn? — Суперпользователь
Сеть обмена стеков

Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.

Посетить Stack Exchange
  1. 0
  2. +0
  3. Авторизоваться Зарегистрироваться

Super User — это сайт вопросов и ответов для компьютерных энтузиастов и опытных пользователей.Регистрация займет всего минуту.

Зарегистрируйтесь, чтобы присоединиться к этому сообществу

Кто угодно может задать вопрос

Кто угодно может ответить

Лучшие ответы голосуются и поднимаются наверх

Спросил

Просмотрено 18к раз

Закрыто. Это вопрос не по теме. В настоящее время он не принимает ответы.

Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был по теме для суперпользователя.

Закрыт 5 лет назад.

Я хочу получить доступ только к svn из командной строки,

так что черепаха не то, что я хочу.

  1. Какие клиенты я могу получить для Windows?

    Сравните себя на http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients (Википедия, Сравнение клиентов Subversion). @Ignacio Vazquez-Abrams предложил двоичные файлы Tigris.org.Tigris.org — это старый веб-сайт Apache Subversion (ранее Subversion).

    Я бы предложил http://www.sliksvn.com/en/download (двоичные файлы Silk SVN).

  2. Почему Subversion имеет какое-то отношение к Apache?

    Subversion — один из проектов, выбранных из проекта Apache Incubator. Сейчас это один из проектов верхнего уровня в проекте Apache. Кроме того, проект имеет лицензию, совместимую с apache, и сервер может работать с Apache для предоставления служб управления версиями на основе HTTP.