Использование Git с Visual Source Safe 6.0 - PullRequest
30 голосов
/ 15 декабря 2009

Извините за этот ужасный, ужасный вопрос ... но я не могу не использовать VSS.

Я хотел бы иметь возможность использовать Git локально для разработки веток и т. Д. При использовании Visual Source Safe 6. Мои знания всех входов и выходов Git на данный момент ограничены, так как я недавно перешел ,

Вопрос:
То, что я хотел бы сделать, это работать в репозитории Git. Я хотел бы сделать это и получить все положительные качества, которые это позволит с ветвлением и т. Д. В конце моего дня или в другие необходимые моменты я хотел бы иметь возможность взять любую работу, которую я делаю, и разместить ее в главный репозиторий, который я бы затем поместил в VSS.

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

Учитывая то, что я относительный новичок в Git, что может быть лучшим способом для достижения этой цели ... наряду с лучшими командами для выдачи / способа настройки.

* примечание: Source Safe необходимо проверить файл перед внесением изменений, я думаю. Может быть, есть какой-нибудь инструмент / скрипт, который я могу использовать, чтобы помочь автоматизировать это и перенести изменения обратно в VSS?

Ответы [ 3 ]

10 голосов
/ 15 декабря 2009

Настройка, которую вы рассматриваете, должна работать нормально. Для команд git просто посмотрите учебники.

Рабочий процесс, который я использовал (не с VSS, но концепция такая же), выглядит примерно так:

  • Оформить заказ с основного (т. Е. VSS)
  • Сохранение одной "магистральной" ветви, которая синхронизирована с VSS
    • всегда будет содержаться в чистоте
  • Разрабатывают в ветвях ветки от «ствола»
  • Обновление с VSS:
    • переключиться на "ствол"
    • обновление с VSS
    • git зафиксировать изменения
    • перебазировать ответвления от ствола
  • Чтобы отправить изменения в VSS:
    • подтолкнуть изменения из ветки разработки в "ствол"
    • переключиться на "ствол"
    • VSS зафиксировать изменения
2 голосов
/ 01 декабря 2011

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

http://timwise.blogspot.com/2011/11/multiple-working-folders-for-git-on.html

В нем подробно описывается использование SysInternals 'Junction для получения поддержки символических ссылок в Windows, а затем совместное использование git-репо между папками физических ветвей, которые VSS навязывает вам, копируя файлы в папке .git, и sym -связывание папок.

А вот и скрипты для автоматизации обмена

0 голосов
/ 23 июля 2014

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

  • Chekout от VSS
  • Создать ветку для работы над вашей функцией
  • закончите работу над вашей функцией
  • Переключиться на мастер-ветку
  • Обновление последней версии VSS
    • Если какие-либо изменения сделаны, перебазируйте вашу ветку
  • Посмотрите, какие файлы изменены, используя $ git diff --name-status master..branchName (см. Показывает, какие файлы были изменены между двумя ревизиями для источника этого)
  • Проверить измененные файлы с помощью VSS
  • Слияние вашей ветки с мастером (желательно удаление вашей ветви функций)
  • Передать VSS

В некоторых из них вы можете написать свой выход, но поскольку вы, скорее всего, используете M $ (поскольку вы используете VSS), я не могу вам помочь с этим.

Как работает VSS Я думаю, что было бы лучше минимизировать время, затрачиваемое на файлы, извлеченные из VSS, и, следовательно, это лучший способ.

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

...