【发布时间】:2011-12-07 06:23:49
【问题描述】:
我已经设置了一个过程来自动为我们的数据库对象生成脚本并将它们放在一个文件夹中。我手动将文件夹添加到 TFS。我想自动检测 TFS 和我的文件夹之间的更改,根据差异创建一个变更集,然后签入该变更集。以下命令显示了 TFS 中需要更新的所有差异:
tf folderdiff . /r /i
这也可以写成:
tf folderdiff . /recursive /noprompt
此命令正确识别所有需要添加(目标)、删除(源)和更新(不同)的文件。但是,这只是一个信息输出,我真的不想编写代码来抓取它并根据它采取行动。我的怀疑是我缺少一些明显的命令,我应该使用它来生成正确的变更集。哪些代码会自动检测更改并将其添加到变更集中?
向变更集添加更改后,我将运行以下代码来签入变更集:
tf checkin /comment:"Change automatically detected." /override:"Automated commandline checkin." /noprompt
【问题讨论】:
-
有没有想过使用数据库项目?
-
如果我理解您的建议,数据库项目将需要更改数据库用户的工作流程以更改数据库。我正在尝试实现不需要用户更改其工作流程的每日对象版本历史记录。我使用 Perforce 作为源代码控制系统成功地做到了这一点,现在我需要使用 TFS 来做到这一点。
-
很好奇,工作流的哪一部分不起作用?我说的是新的 Database Projects 功能,而不是旧的东西。
-
这些是在 Management Studio 中工作或通过 Access Projects 等创建对象的分析师。他们正在运行他们多年来继承或编写的脚本和代码。表通常创建为 SELECT ColumnA... INTO NewTableName FROM OldTableName。这些不是程序员,我敢肯定他们会对 Visual Studios 过敏。
-
是的,会读DDL是目前使用数据库项目的前提。
标签: version-control scripting command-line tfs