#version-control #automation #visual-sourcesafe
#контроль версий #автоматизация #visual-sourcesafe
Вопрос:
В настоящее время я пытаюсь настроить автоматический скрипт добавления / проверки / проверки, используя MS Visual Source Safe через командную строку. Онлайн-документация есть… отсутствует… и я надеялся, что кто-то еще пытался сделать что-то подобное в прошлом.
Прежде чем идти дальше, я хорошо знаю, что есть другие, лучшие альтернативы VSS, поэтому, пожалуйста, не указывайте «использовать SVN» в качестве ответа.
Файлы, которые у меня есть, представляют собой скриптовую версию нашей схемы базы данных и выглядят так в репозитории:
$/project_name/DBScripts /servers/ databases /object_types, где object_types — это таблицы, хранимые процедуры и т. Д.
Я пытаюсь сделать следующее:
1- Скрипт всех объектов базы данных для файлов. Эта часть выполнена и работает правильно.
2. Добавьте все новые файлы в репозиторий.
3- Зафиксируйте все файлы, которые были изменены. Убедитесь, что файлы НЕ остаются извлеченными или доступными только для чтения.
ПРАВКА 2:
Снова удален старый код. Ниже приведен текущий код. Add работает правильно, но команда проверки НЕ работает ни с какими файлами, которые были изменены локально.
В этом контексте, если бы я должен был изменить сохраненный процесс A, записать его в файл, затем попробуйте выполнить пакетные команды ниже, все процедуры, КРОМЕ A, будут извлечены.
Я включил 2 примера команды проверки. Ни то, ни другое не работает…
set PATH=%path%;C:Program FilesMicrosoft Visual SourceSafe
set SSDIR=repo_path
cd DBScripts/server/database/StoredProcedures
ss cp $/project/DBScripts/server/database/StoredProcedures
for %%F in (*.*) do ss add %%~nF%%~xF -C- -I-N -K- -W
for %%F in (*.*) do ss checkout $/project/DBScripts/server/database/StoredProcedures/%%~nF%%~xF -C- -G- -M- -L
ss checkout $/project/DBScripts/server/database/StoredProcedures *.* -C- -G- -M- -L -Vltemp
for %%F in (*.*) do ss checkin %%~nF%%~xF -C- -K- -P $/project/DBScripts/server/database/StoredProcedures -W
cd ../../../..
Примечание: команда SourceSafe «-R» несовместима. Я бы предпочел перебирать все вложенные папки вручную и выполнять команды «for %%F in (.)».
Комментарии:
1. Не могли бы вы рассказать нам больше о том, «что абсолютно не работает»? Вы получаете какое-либо сообщение об ошибке? Или команды не соответствуют вашим требованиям?
2. Хотя я ценю ответ, ошибки, которые я получил в ходе различных итераций кода, не имеют реальной пользы — я не собираюсь исправлять какую-то ошибку в своем коде. Скорее, мне просто нужна помощь в структурировании правильного ss.exe команда. Кроме того, это, вероятно, должно быть комментарием, а не ответом.
3. Несколько тем, которые я прочитал при поиске решений, предполагают, что SourceSafe потенциально глючит, и может потребоваться обновление. Очень надеюсь, что здесь это не так…
Ответ №1:
Возможная причина заключается в том, что команда проверки выполняется до завершения предыдущих команд добавления / проверки. Попробуйте проверить, успешно ли add перед командой checkout, и проверить, успешно ли checkout перед командой checkin .