Использование Subversion с Visual Basic 6

18

Моя команда скоро переходит из Visual SourceSafe в Subversion, разрабатывая / поддерживая старый проект в Visual Basic 6.0, поэтому у меня есть несколько вопросов:

  • Какой лучший инструмент для интеграции с Subversion IDE в Visual Studio 6? (или это не стоит проблемы ...)
  • Есть ли какие-либо рекомендации по использованию Subversion с Visual Basic 6.0? (типы файлов для игнорирования и т. д.).
задан Jonathan Rauch 24.08.2008 в 00:46
источник

7 ответов

16

Я бы согласился, что Tortoise SVN в Проводнике Windows будет лучшим способом использовать SVN с VB6.

Самое большое изменение, которое вы найдете в SVN, - это идея «Check out» и «Check in» не совсем то же самое, что «Update» и «Commit». , , Таким образом, любая интеграция IDE с VB6 ограничена, поскольку VB6 поддерживает MSSCCI, механизм регистрации / регистрации. Я когда-то использовал TamTam SVN ( Ссылка ) с Visual Studio 2003, но остановился, так как я нашел его ограничивающим. Слияние / ветвление / обвинение и т. Д. - очень мощные функции, которые Tortoise SVN предоставляет, которые не были в TamTam. У Tigris также есть Ссылка , но я не пробовал.

Опять же, хотя вы вполне можете получить IDE для работы с VB6, я бы не рекомендовал его, так как наибольшая сила перехода на SVN - это нарушение философии безопасного входа в систему Check Check / Check Out.

    
ответ дан Richard Morgan 24.08.2008 в 01:33
источник
  • Блокировка VSS не означает, что SCCS API требует блокировки - то есть вы можете использовать другой SCM с IDE, и он все равно будет работать так, как вы ожидаете, - посмотрите на Ankh в VS2005 +. –  gbjbaanb 30.01.2009 в 14:33
  • @gbjbaanb - Я не эксперт, а с собственного сайта Ankh: «AnkhSVN 2.0 реализует новый стиль SCC VAPI Microsoft, представленный в Visual Studio 2005, когда они также представили TFS, что устраняет требования к блокировке старого MSSCCI стиля api и несколько других ограничений ». –  Richard Morgan 12.02.2009 в 20:42
  • Из svnvb6.tigris.org: «[svnvb6] не соответствует интерфейсу, разработанному Microsoft для плагинов для управления исходным кодом. Этот интерфейс не подходит для интеграции Subversion». –  Mike Spross 25.01.2010 в 00:50
  • мы использовали svnvb6, и он отлично работает, лично я использовал его только для маркировки измененных файлов, но для всех остальных вещей - черепаха лучшая. –  Cicik 17.02.2010 в 12:15
12

Так как Subversion использует цикл update / edit / commit (а не checkin / checkout), вам нужно быть особенно осторожным с бинарными файлами. Большинство форм в VB6 состоят из двух файлов: MyForm.frm и MyForm.frx. Файлы * .frx являются двоичными и, следовательно, не могут быть объединены.

Учитывая это, я бы настроил Subversion, чтобы потребовать «блокировку» на .frx-файлах. Это означает, что только один человек может одновременно проверять файл. Таким образом, вы убедитесь, что только один разработчик может изменять эти файлы за раз, и всегда ясно, кто этот человек в настоящее время. Если вы этого не сделаете, вы настроитесь на некоторые серьезные головные боли.

    
ответ дан Matt Dillard 24.08.2008 в 03:15
источник
  • Как настроить SubVersion для блокировки определенных типов файлов (например, frx)? –  awe 07.10.2009 в 09:43
  • К сожалению, свойство svn: needs-lock должно быть установлено в каждом файле .frx отдельно. С небольшой работой скрипта, я уверен, что может быть записан крюк pre-commit, который автоматически устанавливает это свойство во всех файлах .frx, но я не зашел так далеко. –  Matt Dillard 07.10.2009 в 15:53
  • Можете ли вы привести пример того, где это будет проблемой? Кроме того, если я работаю один, это будет проблемой? (Я предполагаю, что проблема в том, что Programmer1 модифицировал файл .frx, но не файл .frm, и они выходят из синхронизации. –  Clay Nichols 23.03.2010 в 03:03
  • Глина, вы прибили проблему. Если несколько человек изменяют файл .frx в одно и то же время, его нельзя объединить, поскольку он является двоичным. Альтернативой блокировке файла является просто обновление до последней версии файла, выброс изменений и повторное использование. В вашем конкретном случае, поскольку вы единственный, кто работает над проектом, этот многопользовательский сценарий слияния не будет проблемой для вас. –  Matt Dillard 23.03.2010 в 05:22
  • +1. Вы можете потребовать блокировку по определенным типам файлов по умолчанию, отредактировав локальную конфигурацию SVN. Это необходимо сделать на каждой клиентской машине, использующей SVN :( Если вы используете TortoiseSVN, вы можете открыть файл с конфигурационным файлом TortoiseSVN \ Settings \ General \ Subversion. Затем в [auto-props] установите * .frx = svn: потребности блокировки –  MarkJ 21.08.2013 в 14:05
5

Типы файлов для игнорирования:

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

MSSCCPRJ.SCC
Файл состояния источника управления, сгенерированный IDE VB6 (если вы идете с решением управления SVN в проводнике Windows, вы должны отключить плагин управления версиями в VB6, и это не будет сгенерировано).

*.log
Это файлы, сгенерированные, если что-то пойдет не так при загрузке графического интерфейса формы. Файл находится в том же месте, что и файл формы с именем, равным файлу формы.
Пример: MyForm.frm создает MyForm.log .

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

    
ответ дан awe 07.10.2009 в 10:06
источник
5
  

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

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

Я думаю, что есть инструменты, которые выполняют миграцию из SourceSafe в SVN. (Да - быстрый поиск Google подтвердил это.) Таким образом, вы не потеряете историю изменений.

    
ответ дан Antoine Aubry 24.08.2008 в 17:00
источник
  • Ссылка на ответ Кейта, который вы цитировали (полезно, поскольку у него меньше вертушек, чем ваш ответ; ^)): stackoverflow.com/questions/24680/using-subversion-with-vb6/... –  awe 07.10.2009 в 09:46
3

Мое предположение было бы не беспокоить интеграцию и просто использовать Tortoise SVN в проводнике Windows.

Что касается игнорируемых типов файлов, дайте ему тест, checkout, build и посмотрите, изменились ли какие-либо файлы (для современной Visual Studio я стараюсь игнорировать файлы .suo)

    
ответ дан thelsdj 24.08.2008 в 01:03
источник
1

Для серверной части VisualSVN Server - это супер простое решение, мы запускаем его в виртуальном виртуальном устройстве и его гудение.

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

Основные вещи, которые следует игнорировать:

  • Воспроизводимые артефакты (dll, pdb, exe)
  • Параметры, специфичные для среды (т. е. файл настроек для файлов vs, csproj.user, .suo)
ответ дан DevelopingChris 24.08.2008 в 02:43
источник
  • * файлы proj.user и файлы .suo не являются VB6! Эквивалент VB6 - * .vbw. –  awe 07.10.2009 в 10:47
  • спасибо, я только видел vb6 под стеклом, я веб-человек, и в его сеном я делал php. –  DevelopingChris 09.10.2009 в 16:53
1

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

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

Если в VB6 будет много непрерывной разработки, возможно, стоит переключиться на SVN, но если вы собираетесь делать это в будущем, стоит ли также рассмотреть проект?

У меня аналогичная проблема, только старые проекты находятся в Delphi. Если бы они были в VB6, я бы подумал, что я буду «модернизировать» их на VB.Net, просто для удобства обслуживания.

    
ответ дан Keith 24.08.2008 в 15:31
источник
  • Почему -1 голос? Не знаю, почему это было бесполезно - особенно, поскольку нисходящий поток более чем через год после ответа: - / –  Keith 07.10.2009 в 11:59
  • +1, потому что этот ответ не заслуживает быть на -1. –  Gavin 18.03.2010 в 02:35
  • Я не согласен с этим ответом. Когда мы взяли нашу базу кода и переехали в SVN пару лет назад, мы просто хранили наш репозиторий VSS и заблокировали его, поэтому никто не смог его обновить. У нас все еще есть история в VSS, если нам нужно что-то посмотреть (что произошло несколько раз), но мы не привязаны ограничениями VSS и получаем все преимущества SVN. –  UnhandledExcepSean 21.12.2011 в 22:00