Программирование на Java для группы с помощью Eclipse и SVN

1- Введение

Статья основана на:
  • Eclipse 4.6, 4.7 (NEON, OXYGEN)

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

Это рабочая модель для Java-команды, использующей Eclipse и SVN:

VisualSVN Server

Чтобы получить SVN Repository, вам необходимо установить SVN Server, например, Visual SVN на каком-нибудь компьютере, и он будет сервером SVN. Вы можете ознакомиться с инструкцией по установке и настройке Visual SVN по ссылке:
  • TODO Link!

Subversive

Затем Subversive должен быть установлен в каждой программе Eclipse каждого члена. Вы можете посмотреть инструкцию по адресу:

3- Разделить Project на SVN Repository

Во-первых, члену необходимо предоставить код исходного проекта в  SVN Repository (SVN-репозитории)
На приведенном ниже изображении показаны 3 проекта, доступных на компьютере участника. Мы разделим эти три проекта на SVN Server 
В Visual SVN создан Repository под названием JavaProjects.
Copy URL:
Копируемый URL-адрес может содержать название сервера SVN.
  • https://TRAN-VMWARE/svn/JavaProjects/
Вы можете изменить название сервера IP-адресом.
-
Вернемся к Eclipse:
Мы будем совместно использовать 2 Project: ProjectController & ProjectModel в репозиторий JavaProjects:
2 проекта: ProjectController & ProjectModel были поделены в SVN Server.
В момент, когда вы хотите продолжить совместное использование других проектов в одном и том же доступном репозитории (например, JavaProjects), мы продолжим совместное использование ProjectView Project в SVN Server - JavaProjects
Project ProjectView разделен для совместного использования на  Repository.
Это изображение на  Visual SVN Server:

4- Checkout Project из SVN Repository

Другие члены группы сделают  checkout проектов из репозитория на свой собственный компьютер.
Предположим, что мы возьмем только 2 Project для checkout, а другой Project - сделаем checkout позже.
2 Project сделаны checkout.
Мы продолжаем checkout другие проекты (например, он только что был поделен кем-то в группе).

5- Commit и Update

Checkout - извлечение всех данных из одного или нескольких проектов, разделенных в Repository, на локальный компьютер (когда на локальном компьютере нет этого проекта). Затем данные изменяются на локальном компьютере. Используйте функцию Commit для передачи измененных данных в Repository. И используйте функцию Update для извлечения измененных данных.
Теперь мы модифицируем (или добавляем) файлы в проектах и Commit ​​(фиксируем) их в репозитории.
Чтобы перенести измененные данные в SVN Repository, щелкните правой кнопкой мыши на Project или выберите измененный файл, выберите  Team/Commit.
Новые добавления и изменения были Commit  в SVN Repository.
В Eclipse других членов можно использовать функцию Update для новых добавленных или измененных данных.
Примечание: В некоторых случаях, когда Commit получает уведомление с ошибкой, вам необходимо выполнить Update перед Commit.

6- Основные функции

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

6.1- Add to svn:ignore

Если вы хотите, чтобы SVN игнорировал папку или файл и не передавал в SVN Repository, вы можете использовать функцию: Add to svn:ignore (добавить в svn:ignore).
Например, у вас есть папка, содержащая файлы данных, которыми вы не хотите делиться, как показано ниже:
Щелкните правой кнопкой мыши на папку mynote, выберите team/add to svn: ignore
Если Commit завершился с ошибкой, как показано ниже:
В этом случае вам необходимо Update проект до Commit.

6.2- Revert

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

6.3- Lock & Unlock

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

6.4- Cleanup

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

6.5- Disconnect

Ваш проект подключен к SVN Repository.
Если вы посмотрите папку Project на жестком диске, вы увидите, что каждая папка содержит скрытую папку . svn. Эти папки содержат информацию о состоянии и данные файлов SVN (похоже на локальный репозиторий).
Щелкните правой кнопкой мыши на проект и выберите "Team / Disconnect", чтобы отключитьс соединение с  SVN Repository.
Существует два варианта Disconnect (отключения):
  1. Одновременно и отключитьи удалить всю метаинформацию SVN
    • Этот выбор означает удаление скрытых папок .svn во всех папках в Project. Эта ситуация не позволяет повторно подключиться, если вы хотите опять подключиться есть только способ удалить Project на жестком диске или сделать повторно checkout.
  2. Или только отключить (disconnect).
    • Этот выбор просто означает отключение. Метаинформация SVN все так же сохраняется.
Здесь я иллюстрирую использование варианта 2:
Вы можете переподключиться, нажав на правую кнопку мышни на Project и выбрать: Team/Share Project...