SVN SCC proxy

SVN SCC proxy
Разработчики: PushOk Software
Выпущена: 26 июня, 2005; 12 лет назад
Предыдущий выпуск: SVNSCC 1.8.9.RC1 / 2 апреля, 2015; 2 года назад
Состояние разработки: Active
Операционная система: Windows XP, Windows 2000, Windows 2003 Server, Windows NT, Windows ME, Windows 98
Размер дистрибутива: 4,9 МБ
Тип ПО: Плагин для интеграции среды разработки
Лицензия: Shareware
Веб-сайт www.pushok.com/help/svnscc/

SVN SCC proxy — плагин для Microsoft SCC, осуществляющий полную интеграцию среды разработки с широко известной (бесплатной) системой контроля версий SVN (SubVersion), разработанный российской компанией PushOk Software. С помощью этого плагина пользователи могут работать в среде также комфортно, как со стандартной системой контроля версий MS SourceSafe.

Прокси-сервер SVN SCC является подключаемым плагином SCC API для любой интегрированной среды Microsoft SCC (MSVC 5.0-7.0, Borland C ++ builder, Delphi). Это аналог широко известного и широко используемого подключаемого модуля Pushok CVS SCC proxy. С поддержкой сторонних инструментов этот плагин может использоваться Borland IDE[Источник 1].

После загрузки и установки программы, которая должна быть лицензирована, вы должны зарегистрировать ее перед использованием, даже если хотите использовать ее в оценочном или бесплатном режиме[Источник 2].

Установка

Если ваша среда разработки поддерживает интеграцию с системами управления кодом с помощью API-интерфейса SCCI, подключаемый плагин можно установить без каких-либо проблем. Самый простой способ убедиться, что подключаемый плагин будет работать с вашей IDE, состоит в том, чтобы убедиться, что он будет работать с MS SourceSafe. Поскольку первоначально API SCCI предназначался для работы только с этой системой, проблем здесь также не возникнет[Источник 3].

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

  • загрузить его последнюю версию;
  • запустить загруженный файл svnproxy.exe для выполнения программы автоматической установки. Пользователю будет необязательно выбирать какие-либо опции, обязательным пунктом является только принятие лицензионного соглашения.

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

MS VS.NET:

Запустите среду VS.NET. Проверьте наличие дополнительного пункта меню "File\Source Control". Если этот пункт меню активен, установка прошла успешно. Если вы не видите этот пункт меню, вероятно, ваша версия VS.NET не поддерживает интеграцию с помощью SCCI API. Чтобы узнать, как обновить версию VS.NET, нужно обратиться за помощью к компании Microsoft.

MS VS:

Запустите среду VS. Проверьте наличие дополнительного пункта меню "Project\Source Control". Если этот пункт меню активен, установка прошла успешно.

MS VB:

Запустите среду VB. Проверьте наличие дополнительного пункта меню "Tools\Pushok SVN Proxy". Если пункт меню не отображается, сделайте следующее:

  • Включите надстройку контроля версий. В Visual Basic выберите "Add-Ins>Add-In Manager". Таким образом, отобразится диалоговое окно "Add-In Manager". Выберите надстройку и включите ее.

Если элемент управления исходным кодом отсутствует в списке:

  • Закройте Visual Basic, отредактируйте файл vbaddin.ini (по умолчанию находится в папке "Program Files"), добавьте следующую запись в поле [Add-Ins32]. vbscc=3. Затем повторите предыдущий шаг.

Основные операции

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

Первичное добавление файлов в проект является наиболее сложной операцией, особенно если вы никогда не работали с системами такого рода. Проект должен быть организован правильно и должен быть отключен от других систем управления версиями. Для начала рекомендуется не подключать реальные проекты, но пройти все необходимые операции с тестовым проектом. В этом случае его правильная организация и отсутствие связи с другими системами управления версиями будут гарантированы (поскольку IDE будет создавать сам этот проект). Со второй операцией получения проекта работать менее сложно. Если соединение прошло успешно, то с ним не будет никаких проблем. Таким образом, во время первой сессии требуется сначала создать новый проект (или открыть уже существующий), затем добавить его в систему управления версиями. После этого с проектом можно начинать работу[Источник 4].

Добавление проекта в систему управления версиями

Таким образом, у вас есть проект в вашей среде разработки, которую вы хотите добавить в систему управления версиями. Рекомендуется начать с создания макетного проекта с использованием мастеров IDE[Источник 5].

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

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

Проект организован правильно, если:

  • все исходные коды и смежные файлы физически расположены в одном родительском каталоге (или в одном дереве). Среда IDE всегда размещает все файлы в одном дереве, и вы должны сохранить ту же организацию для файлов, добавленных вручную. Есть ситуации, когда проект может быть расположен в другом месте, и он не является частью дерева (например, VS.NET WebProject). Тем не менее это правило должно содержаться в рамках одного проекта или в рамках группы однородных проектов;
  • проект должен включать все необходимые файлы, даже если они не участвуют непосредственно в компиляции. Например, это могут быть утилиты, файлы документации и т. д. Если вы не включите их в проект, вам придется использовать инструменты SVN GUI для управления этими файлами по отдельности, что неудобно.

Итак, вы запустили IDE и открыли в нем проект, который удовлетворяет заданным условиям. Чтобы добавить его в SVN, выполните следующие операции:

VS.NET

Прежде всего, выберите имя пользователя для доступа к SVN: откройте окно конфигурации "Tools\Options\Source Control\Scc provider" и укажите имя в поле "Login ID". Затем щелкните правой кнопкой мыши на корне дерева (решение) в обозревателе решений. Выберите функцию "Add to source control".

VS

Прежде всего выберите имя пользователя для доступа к SVN: откройте окно конфигурации "Tools\Options\Source Control" и укажите имя в поле входа. Затем выберите "File view", нажмите CTRL+A, чтобы выбрать все файлы (или выделите их мышью) и вызовите команду "Project\Source Control\Add to source control".

VB

Прежде всего, сохраните проект (поскольку новый проект может быть еще не сохранен). Затем выберите "Tool\Pushok SVN Proxy\Add project to Pushok SVN Proxy".

Диалоговое окно SVN

PowerBuilder

Откройте существующее рабочее пространство, содержащее хотя бы одну цель. Щелкните правой кнопкой мыши запись рабочего пространства и выберите "Properties". Откройте страницу "SourceControl". Выберите "Pushok SVN proxy" в качестве системы управления версиями. Убедитесь, что параметры настроены так, как описано на странице советов по IDE. Затем введите "Local Root Directory" (вы можете использовать кнопку «..», чтобы выбрать его в окне браузера папки). Обычно локальный корневой каталог является той же папкой, в которой находится ваше рабочее пространство/цели/библиотеки. После этого укажите имя пользователя в поле "User ID". И последнее, нажмите кнопку «..» рядом с полем "Project".

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

Чтобы подключить проект, в первую очередь нужно указать SVNURL, то есть местоположение хранилища и тип подключения. Введите эти данные вручную или используйте те, которые вы когда-то использовали. Чтобы убедиться, что вы ввели правильные данные, нажмите кнопку "Check" в поле ввода SVNURL, чтобы плагин мог проверить возможность подключения к этому репозиторию. Используя протокол :local:, вы можете просто ввести локальный путь, а при необходимости - даже создать там репозиторий, нажав кнопку "Create". Важно: авторизация на удаленный репозиторий будет осуществляться с использованием пользователя, указанного в поле "User name". Однако если существует кэшированный объект авторизации для имени пользователя, то имя пользователя будет проигнорировано. Использование кэширования авторизации может быть отключено в настройках плагина.

Затем вы должны указать модуль, то есть папку внутри репозитория, в которую вы добавите свой проект. По умолчанию IDE предоставляет проекту имя модуля, поэтому чаще всего вам ничего не нужно менять. Тем не менее всегда проверяйте, что предложила среда разработки, и при необходимости исправьте. Обычно проект должен быть добавлен в еще несуществующий модуль, нажмите кнопку "Create" для его создания. Чтобы избежать ошибок, нажмите кнопку "Check" перед созданием модуля и после его создания. Это делается для того, чтобы убедиться, что модуль не существовал до его создания.

VB/VS/VS.NET

Вам больше не нужно ничего делать, просто нажмите "Ok". После этого ваш проект будет добавлен в SVN. Вы можете перейти на другой компьютер и выполнить операцию "getting project".

PowerBuilder

Нажмите "Ok", чтобы закрыть диалог "Bind to SVN". Затем нажмите кнопку "Connect" и "Ok", чтобы закрыть свойства рабочей области. Теперь ваше рабочее пространство содержит обязательную информацию, необходимую для системы управления версиями. После этого щелкните правой кнопкой мыши на целевых или библиотечных файлах и выберите "Add to source control". Файлы будут добавлены в систему управления версиями без дополнительных запросов. Вы также сможете перейти на другой компьютер и выполнить операцию "getting project".

Получение исходных кодов от источника

Файловый менеджер VS

Перед этой операцией убедитесь, что SVN уже содержит ранее добавленный проект. Чтобы получить проект из системы управления версиями, откройте свою среду IDE, не открывая в ней другие проекты[Источник 6]. После этого:

VS.NET

Прежде всего, выберите имя пользователя для доступа к SVN: откройте окно конфигурации "Tools\Options\Source Control\Scc provider" и укажите имя в поле "Login ID". Затем выберите "File\Source Control\Open project" из источника.

VS

Прежде всего, выберите имя пользователя для доступа к SVN: откройте окно конфигурации "Tools\Options\Source Control" и укажите имя в поле входа. Затем выберите "File\Open Workspace". Откроется стандартное рабочее пространство с новой кнопкой "Source Control". Нажмите эту кнопку.

VB

Выберите следующие команды: "Tool\Pushok SVN Proxy\Create project from Pushok SVN Proxy".

PowerBuilder

PowerBuilder - это специальная система для этой операции. В отличие от других систем, в PB нет ничего похожего на команду "Open from source control". Это связано с тем, что библиотеки PB (.pbl) не подключены к источнику управления. Но вместо этого все объекты, экспортируемые из библиотек PB, подключены к источнику. Вероятно, сборка файла .pbl из его компонентов невозможна, и, следовательно, невозможно воссоздать проект только из источника. Таким образом, чтобы развернуть проект с другого ПК, вы должны скопировать весь проект с этого ПК (например, с которого он был добавлен). Вы можете скопировать только всю папку или pbw/pbt/pbl файлы. Важно, что не следует копировать "SVN sandboxes" (вложенные папки .svn, существующие в каждой исходной папке). Вы можете удалить их после копирования. В результате у вас будет папка, содержащая файлы pbw/pbt/pfl и не содержащие подпапок SVN. Теперь вы должны привязать рабочее пространство к SVN. Откройте скопированное рабочее пространство в PowerBuilder. Щелкните правой кнопкой мыши на записи рабочего пространства, выберите "Properties". Откройте страницу "SourceControl". Выберите "Pushok SVN proxy" в качестве системы управления версиями. Убедитесь, что параметры настроены так, как описано на странице советов по работе с IDE. Затем введите "Local Root Directory" (вы можете использовать кнопку «..», чтобы выбрать его в окне браузера папки). Обычно локальный корневой каталог является той же папкой, в которой находится ваше рабочее пространство/цели/библиотеки. После этого укажите имя пользователя в поле "User ID". И, наконец, нажмите кнопку «..» рядом с полем "Project".

После проделывания этих операций вы увидите диалоговое окно, показанное на картинке выше.

Чтобы открыть проект, вам нужно снова указать SVNURL. Затем выберите модуль, в котором находится файл проекта. Если файл проекта находится в подпапке корневого раздела модуля, вы должны выбрать эту подпапку, но не сам корневой модуль. Вы можете использовать окно просмотра репозитория, нажав «...» рядом с полем ввода модуля вместо того, чтобы вводить имя модуля вручную. Имейте в виду, что вам не нужно создавать модуль, так как вы открываете проект, уже добавленный в SVN. Однако нажмите кнопку "Check", чтобы убедиться, что данные введены правильно.

Обратите внимание, что на этот раз поле "LOCAL PATH" можно редактировать. Это означает, что вы должны указать место, куда вы хотите поместить исходные файлы из SVN. Важны две вещи:

  • выбранная локальная папка должна быть пустой или ее не должно быть;
  • имя модуля напрямую связано с этим путем. Другими словами, для модуля "DummyProject" локальный путь должен быть «C:\DummyProject» или «C:\Work\DummyProject», но не «C:\» или «C:\Work». При необходимости вы можете заменить часть пути, соответствующую корневому модулю. Например, локальный путь для модуля может быть «C:\MyDummyProject». Но чтобы избежать беспорядка, лучше избегать изменения имен модулей и их отображения на локальном диске.

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

VS.NET

Файловый менеджер VS.NET

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

VS

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

VB

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

PowerBuilder

Нажмите "Ok", чтобы закрыть диалог "Bind to SVN". Затем нажмите "Connect" и "Ok", чтобы закрыть свойства рабочей области. После этого PB уведомит вас о том, что все файлы имеют статус "need update", то есть они контролируются, но нуждаются в обновлении. Щелкните их правой кнопкой мыши и выберите "Get latest version". После этого вы можете работать с проектом.

После успешного проделывания этих операций вы можете продолжить свою работу. Окно "Bind to SVN" может появляться несколько раз, если IDE не знает ни "LOCAL PATH", ни "Module". Каждый раз вам нужно указать эти два параметра.

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

Повседневная работа

Получив проект из SVN, вы можете продолжить свою обычную работу с проектом, то есть его разработку. Условно говоря, разработка включает в себя изменение файлов и добавление новых. После того как проект стал контролироваться системой управления исходным кодом, все исходные файлы получают атрибут «только для чтения». Это необходимо, поскольку вы не можете начать редактирование файла, не указав, что вы собираетесь с ним делать. Эта операция называется "checking out a file" или коротко "checkout". После того, как вы закончите некоторую логически завершенную часть работы с этим файлом, вам нужно выбрать функцию "check a file in SourceControl" или коротко "checkin". Таким образом, ваши модификации станут доступными для других разработчиков, и это позволяет работать с проектом в команде. Важно, чтобы вы могли вносить изменения только в том случае, если вы абсолютно уверены, что в них нет серьезных ошибок, которые могут осложнить работу других, после того как они получат эти изменения[Источник 7].

Разрешение конфликтов

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

В состав плагина входят все необходимые инструменты для визуального слияния и визуального просмотра различий. Разрешение конфликтов также является визуальным и работает точно так же, как и с MS SCC, то есть происходит при редактировании файла, но не при его обновлении.

Плагин совместим со средствами разработки IDE, и список инструментов постоянно растет. Таким образом, кроме двух основных операций (checkin/checkout), доступны другие команды, которые могут помочь вам в процессе разработки. Эти команды отображаются в различных контекстных меню, относящихся к файлу, к ним можно обратиться из соответствующих меню IDE, а также из дополнительной панели инструментов, которую можно включить с помощью обычных инструментов среды разработки. Список этих команд и их функций таков:

  1. Checkout. Эта команда позволяет сделать запрос в исходную систему управления, чтобы проверить выбранный файл(ы). Другими словами, вы сообщаете системе, что вы собираетесь редактировать их. Когда вы редактируете файл в индивидуальном режиме, вы запрещаете другим косвенно проверять этот файл. Индивидуальный режим включен по умолчанию для двоичных файлов (поскольку невозможно автоматически объединять разные версии) и отключен для текстовых (поскольку SVN способен эффективно объединять изменения в разных частях файла). В SVNSccProxy эта команда доступна в офлайн-режиме.
  2. Undo Checkout. Эта команда позволяет отменить редактирование файла: сделать резервную копию версии, из которой было начато редактирование (сделать резервную копию ваших изменений), и сообщить системе, что вы закончили редактирование файла. В SVNSccProxy она доступен офлайн.
  3. Checkin. Позволяет загружать последние модификации файлов и сделать их доступными для других разработчиков.
  4. Add to source control. Позволяет добавить выбранный файл(ы) в Source Control. Выполните эту команду, если это является необходимым для файлов, недавно добавленных в проект.
  5. Remove from source control. Позволяет удалить выбранный файл(ы) из Source Control. Файлы не удаляются с локального диска, но больше не контролируются системой управления версиями.
  6. Get latest version. Позволяет получить последнюю версию файла(ов). Другими словами, это позволяет получить модификации, выполненные другими разработчиками. В контексте SVNSCCProxy эта команда также используется для установки дополнительных параметров, создания тегов, ветвей и т. д.
  7. Show difference. Позволяет сравнивать локальную версию файла с той, которая находится в репозитории. Это удобно, если вы хотите узнать, какие именно части файла были изменены во время вашей последней работы. В SVNSCCProxy эта команда также доступна в автономном режиме, но только для последней версии файла в репозитории.
    Просмотр истории
  8. Show history. Позволяет просматривать историю (дерево версий) и историю работы проекта в целом. В SVNSccProxy позволяет выполнять такие операции, как сравнение версий файлов в парах, удаление версий, получение и вставка версий и изменение типа файла.
  9. Refresh status. Эта операция принудительно обновляет статус файла (как правило, всех файлов). Таким образом, можно получить информацию об изменениях в репозитории: о файлах, добавленных кем-то другим, удаленных файлах, новых версиях файлов, добавленных недавно.
  10. Properties. Позволяет просматривать свойства файла в системе управления версиями. Например, текущую версию файла, список разработчиков, редактирующих файл, теги, дату и т. д.
  11. Start source control. Позволяет вызывать "stand alone GUI" (автономный) из системы управления версиями. В SVNSccProxy он ничего не делает, кроме запуска ранее настроенного исполняемого файла. Другими словами, плагин не имеет своего собственного "stand alone GUI".

Советы от разработчиков

В справочном руководстве к плагину предлагаются следующие советы, которые помогут оптимизировать работу с SVN SCC proxy независимо от IDE[Источник 8]:

  1. Не редактируйте больше файлов, чем необходимо для вашей работы. Этот пункт не является обязательным, когда вы работаете с SVN (в отличие от SourceSafe). Тем временем, чем больше файлов вы редактируете, тем больше времени потребуется для обновления их статуса.
  2. Используйте одну и ту же версию SVN-клиента во всех приложениях. В принципе в режиме клиент-сервер это не обязательно (хотя и упрощает работу). Но в режиме клиент-файлообенник использование разных версий клиента может повредить репозиторий, так как в этом режиме svn.exe является клиентом и сервером, который изменяет репозиторий.
  3. Попытайтесь не использовать протокол 'http(s)', если он действительно не нужен. Тесты показывают, что он в два раза медленнее протокола svn. Основная причина заключается в том, что каждый запрос к серверу транслируется в несколько (3-6) чистых HTTP-запросов. Разумными причинами использования протокола 'http(s)' могут быть проблемы с брандмауэром или аутентификацией. Протокол 'http(s)' обычно проходит через брандмауэры и поддерживает несколько схем аутентификации, таких как сертификат и sspi.

Плюсы и минусы

По сравнению с другими программами похожего типа SVN SCC proxy имеет следующие положительные моменты[Источник 9]:

  1. Достаточно интуитивно понятный и удобный пользовательский интерфейс конфигурации;
  2. Широкие возможности настройки для поддержки различных сценариев;
  3. Очень быстрая реализация, поскольку не требуется никакого межпроцессного взаимодействия с svn.exe.

Однако, к сожалению, у этого плагина также есть ряд минусов:

  1. Клиентская поддержка для этого плагина находится на низком уровне;
  2. В некоторых версиях программы имеется ошибка, связанная с реализацией команды "checkout", из-за чего ее становится трудно использовать и приходится настраивать вручную;
  3. Версии 1.8 не рекомендуются для использования, так как они еще не полностью доработаны.

Ссылки

Официальный сайт PushOk

Источники

  1. Subversion SVN plug-in for SCC API enabled IDE // PushOk. [2003-2015]. URL: http://www.pushok.com/software/svn.html (дата обращения: 14.04.2017).
  2. Download PushOk SVN SCC plug-in // PushOk. [2003-2015]. URL: http://www.pushok.com/software/download.html?idprogram=3 (дата обращения: 14.04.2017).
  3. Installation of SVN SCC proxy // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/inst/plugin.html (дата обращения: 15.04.2017).
  4. Subversion SVN help // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/basic/seq.html (дата обращения: 15.04.2017).
  5. Add project to SVN // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/basic/addtoscc.html (дата обращения: 18.04.2017).
  6. Get project from SVN // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/basic/getfromscc.html (дата обращения: 18.04.2017).
  7. Day-to-day work // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/basic/basicwork.html (дата обращения: 21.04.2017).
  8. Tips in IDE // PushOk. [2003-2015]. URL: http://www.pushok.com/help/svnscc/tips/cmd.html (дата обращения: 15.04.2017).
  9. Overview of Subversion MSSCCI Provider // Ivercy. [2005-2017]. URL: http://www.ivercy.com/Support/faqitem/subversion-msscci-provider (дата обращения: 21.04.2017)