Объедините DVCS с визуальным безопасным источником - PullRequest
16 голосов
/ 01 мая 2009

Я вынужден использовать Visual Source Safe 2005 на работе. Я хотел бы объединить это с DVCS, чтобы я мог проверить файлы локально, не прерывая работу моих коллег, если есть ошибка или она не компилируется.

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

Вот мои мысли о том, как мне это сделать:

  1. Отключить автоматическую проверку.
  2. Работа локально в Mercurial
  3. Когда я буду готов выдвинуть свои изменения ...
    1. Клонируйте мой репозиторий Mercurial.
    2. Обновление моего хранилища Visual Source Safe
    3. Потяните и объедините два хранилища, используя Mercurial.
    4. Проверьте все в Visual Source Safe.

Это звучит разумно? Я всегда слышу плохие вещи о VSS, это просто просит меня увидеть эти проблемы из первых рук?

1 Ответ

13 голосов
/ 05 июня 2009

WBlasko

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

1) Получить последнюю версию проекта VSS (я поместил все проекты VSS под vss):

c:\vss\projectA

2A) Инициализация с Mercurial

cd vss\projectA
C:\vss\projectA>hg init

2B) Клонируйте проект в том месте, где он может быть изменен по желанию

hg clone vss\projectA myProjects\projectA

3) Получить последние изменения из копии VSS (пропустите, если вы пришли с 1 и 2)

C:\myProjects\projectA>hg pull
C:\myProjects\projectA>hg update
(solve conflicts if any)

4) Работа по желанию с клонированной версией. Позже отправьте свою работу в копию vss:

C:\myProjects\projectA>hg push
(don't run hg update yet, wait for VSS latestes version)

5) Теперь выполните проверку всех файлов в проекте VSS

6) Запустите «hg update» в проекте VSS, чтобы объединить ваши изменения с последними изменениями VSS.

C:\vss\projectA>hg update
(if there are conflicts, resolve them)

7) Зафиксируйте изменения

C:\vss\projectA>hg commit

8) Выполнить проверку VSS (сняв блокировки с других людей) Вернитесь к шагу 3. повторите шаги 3-8 навсегда, затем ...; -)

Таким образом, вы можете работать с хорошей системой контроля версий, в то же время имея возможность «общаться» с устаревшими проектами. Вы также сможете насладиться: а) Нет проблем с заблокированными файлами б) вы можете поделиться своим хранилищем с другими, которые знают, как использовать Hg в) делать ветки и т.д

Просто будьте осторожны, сначала обновите / разрешите конфликты, протестируйте, а затем выполните проверку VSS

Ура, Луис

...