【问题标题】:TFS Add FolderDiff Results to Changeset (Or Equivalent Functionality!)TFS 将 FolderDiff 结果添加到变更集(或等效功能!)
【发布时间】: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


【解决方案1】:

使用Team Foundation Server Power Tools - 它包括tfpt.exe 命令行工具,其中包括online 命令,该命令将定位更改并挂起适当的添加、编辑或删除。然后,您可以签入生成的变更集。很简单:

tfpt online /adds /deletes
tf checkin

【讨论】:

  • 我知道必须有一个简单的解决方案。我认为只有当文件被标记为可写而不是只读时,在线选项才会检测到更改。我最终使用了以下代码:tfpt online /adds /deletes /diffs /noprompt。 /preview 选项有助于处理一些额外的细节。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2020-09-27
  • 2018-12-11
  • 2015-02-28
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多