Visual Source Safe自动提交

时间:2011-10-24 13:49:21

标签: version-control automation visual-sourcesafe

我目前正尝试通过命令行使用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()”命令。

1 个答案:

答案 0 :(得分:1)

可能的原因是在先前的add / checkout命令完成之前执行checkin命令。在checkout命令之前尝试检查add是否成功,并在checkin命令之前检查checkout是否成功。