我目前正尝试通过命令行使用MS Visual Source Safe设置自动添加/结帐/检查脚本。在线文档......缺乏......而且我希望其他人在过去尝试过这样的事情。
在继续之前,我很清楚还有其他更好的VSS替代方案,所以请不要将“使用SVN”作为答案。
我得到的文件是我们数据库模式的脚本版本,在repo中看起来像这样:
$ / project_name / DBScripts / servers / databases / object_types,其中object_types是Tables,StoredProcedures等。
我正在尝试执行以下操作:
1-将所有数据库对象编写为文件。这部分完成并正常工作 2-将所有新文件添加到repo 3-提交所有已更改的文件。确保文件不会保持签出或只读。
编辑2:
再次删除旧代码。包含以下当前代码。添加正常,但checkout命令不适用于本地更改的任何文件。
在这种情况下,如果我要修改存储过程A,将其编写为文件,然后尝试运行下面的批处理命令,将检出所有过程BUT A.
我已经包含了2个checkout命令的例子。两者都没有工作......
set PATH=%path%;C:\Program Files\Microsoft 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(。)”命令。
答案 0 :(得分:1)
可能的原因是在先前的add / checkout命令完成之前执行checkin命令。在checkout命令之前尝试检查add是否成功,并在checkin命令之前检查checkout是否成功。