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

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

  • Какой лучший инструмент для интеграции Subversion IDE в Visual Studio 6? (или это не стоит хлопот ...)
  • Есть ли лучшие практики для использования Subversion с Visual Basic 6.0? (типы файлов, которые нужно игнорировать и т. д.)
23.08.2008 22:46:06
7 ОТВЕТОВ
РЕШЕНИЕ

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

Самое большое изменение, которое вы обнаружите при переходе на SVN, - это идеи «Check out» и «Check in», которые не совпадают с «Update» и «Commit». , , таким образом, любая интеграция IDE с VB6 ограничена, поскольку VB6 поддерживает MSSCCI, механизм извлечения / регистрации. Однажды я использовал TamTam SVN ( http://www.daveswebsite.com/software/tamtamsvn/index.shtml ) с Visual Studio 2003, но остановился, так как счел его ограниченным. Слияние / разветвление / обвинение и т. Д. - очень мощные функции, которые Tortoise SVN предоставляет, которых не было в TamTam. Тигр также имеет http://svnvb6.tigris.org/ , но я не пробовал.

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

16
23.08.2008 23:33:46
Блокировка VSS не означает, что API SCCS требует блокировки - то есть вы можете использовать другой SCM с IDE, и он все равно будет работать, как вы ожидаете - посмотрите на Ankh в VS2005 +.
gbjbaanb 30.01.2009 13:33:07
@gbjbaanb - я не эксперт, а с собственного сайта Ankh: «AnkhSVN 2.0 реализует новый стиль SCC VAPI, который Microsoft представила в Visual Studio 2005, когда они также представили TFS. Это устраняет требования к блокировке старого стиля MSSCCI api и нескольких другие ограничения. "
Richard Morgan 12.02.2009 19:42:55
От svnvb6.tigris.org : «[svnvb6] не соответствует интерфейсу, который Microsoft разработал для плагинов управления исходным кодом. Этот интерфейс не очень подходит для интеграции Subversion».
Mike Spross 24.01.2010 23:50:59
мы использовали svnvb6, и он работает нормально, лично я использовал его только для пометки измененных файлов, но для всего остального - черепаха - лучшая.
Cicik 17.02.2010 11:15:09

Я думаю, что не стоит беспокоиться об интеграции и просто использовать Tortoise SVN в Windows Explorer.

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

3
23.08.2008 23:03:43

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

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

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

  • Воспроизводимые артефакты (dll, pdb, exe)
  • Настройки среды (то есть файл настроек для vs, файл csproj.user, файлы .suo)
1
24.08.2008 00:43:07
*proj.userфайлы и .suoфайлы не VB6! Эквивалент VB6 есть *.vbw.
awe 7.10.2009 08:47:36
спасибо, я видел только vb6 под стеклом, я веб-человек и в свое время я делал php.
DevelopingChris 9.10.2009 14:53:15

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

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

12
24.08.2008 01:15:53
Как настроить SubVersion так, чтобы он требовал блокировки для определенных типов файлов (например, frx)?
awe 7.10.2009 07:43:01
К сожалению, свойство svn: needs-lock должно быть установлено для каждого файла .frx индивидуально. Немного поработав со сценарием, я уверен, что можно написать ловушку перед фиксацией, которая автоматически устанавливает это свойство для всех файлов .frx, но я не зашел так далеко.
Matt Dillard 7.10.2009 13:53:57
Можете ли вы привести пример, где это будет проблемой? Кроме того, если я работаю один, это будет проблемой? (Я предполагаю, что проблема в том, что Programmer1 изменил файл .frx, но не файл .frm, и они перестают синхронизироваться.
Clay Nichols 23.03.2010 02:03:26
Клей, ты прибил проблему. Если несколько человек одновременно изменяют файл .frx, он не может быть объединен, поскольку он является двоичным. Альтернатива блокировке файла - просто обновить его до последней версии, выбросить изменения и повторить их. В вашем конкретном случае, поскольку вы являетесь единственным, кто работает над проектом, этот сценарий многопользовательского объединения не станет для вас проблемой.
Matt Dillard 23.03.2010 04:22:11
+1 По умолчанию вы можете потребовать блокировку для определенных типов файлов, отредактировав локальную конфигурацию SVN. Это нужно сделать на каждом клиентском компьютере, который использует SVN :( Если вы используете TortoiseSVN, вы можете открыть файл с помощью TortoiseSVN\Settings\General\Subversion configuration file. Затем [auto-props]вставьте*.frx = svn:needs-lock
MarkJ 21.08.2013 12:05:50

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

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

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

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

1
24.08.2008 13:31:38
Почему голосование -1? Не уверен, почему это было бесполезно - тем более, что голосование прошло более года после ответа: - /
Keith 7.10.2009 09:59:28
Я не согласен с этим ответом. Когда мы взяли нашу кодовую базу и перешли в SVN пару лет назад, мы просто сохранили наш VSS-репозиторий и заблокировали его, чтобы никто не мог его обновить. У нас все еще есть история в VSS, если нам нужно что-то искать (что случалось несколько раз), но мы не скованы ограничениями VSS, и мы получаем все преимущества SVN.
UnhandledExcepSean 21.12.2011 21:00:32

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

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

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

5
15.03.2011 21:45:57
Ссылка на ответ Кейта, который вы цитировали (полезно, поскольку у него меньше голосов, чем у вашего ответа; ^)): stackoverflow.com/questions/24680/using-subversion-with-vb6/…
awe 7.10.2009 07:46:28

Типы файлов, которые следует игнорировать:

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

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

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

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

5
7.10.2009 08:48:31
Ура, также полезно для управления GIT!
tabdiukov 16.12.2019 08:24:54