在签入 TFS 之前是否必须执行“获取最新版本”,以免覆盖/丢失代码?

2023-12-09

我的团队中有一个反复出现的问题让我抓狂。 人们声称 Team Foundation Server 中的某些签入会覆盖以前的签入/现有代码。 他们声称你总是需要做Get Latest Version在办理登机手续之前。 换句话说,运行获取最新信息是正确签入的先决条件。

对此,我答复如下: 必须有一个TFS如果上述情况确实发生,我们缺少/未检查的定义/设置。拥有一个版本控制系统有什么意义?not在签入时自动警告您有关代码冲突的信息(如果在您签入之前其他人签入了与您不同的代码)?我会理解是否有设置设置这个或那个行为(无论数据库中现在有什么,都检查或警告是否存在冲突并提示操作(合并))。

我想明白:我错了吗?!这就是简单的方法吗TFS作品?Get Latest无论如何,在办理入住手续之前都是强制性的?!

顺便说一句,如果在不手动运行获取最新版本的情况下签入是有风险和危险的,那么微软为什么不将其设为默认行为?!

提前致谢!


我同意@JamesReed 的观点,TFSalways检查冲突而不是盲目覆盖他人的工作;这毕竟是版本控制系统的根本目的!

我也同意故意的用户操作(即错误)是覆盖先前提交的唯一方法。

然而,我在一个重要的观点上不同意。詹姆斯指出:

更改位于文件的不同部分,因此 TFS 尝试 自动解决冲突。我希望这个为了相当安全和 您会看到两组更改。 [强调我的]

是的,TFS 将自动解决文件不同部分的更改但这远不安全!考虑以下场景。开发人员 A 进行如下更改并提交。开发商B,从相同的原件开始,对文件的不同部分进行更改并提交。 TFS,或者任何与此相关的版本控制系统,都会非常愉快地自动合并,产生损坏的代码!

Auto-merge gone wrong

考虑到这一点,让我将原来的问题细化为两个阶段:

  1. Is Get Latest-before-commit 强制以避免丢失代码?No.
  2. Is Get Latest-before-commit 强制维护代码完整性?Yes!!

总之,最佳实践要求人们应该获取最新的更改,然后manually在新上下文中检查您即将提交的更改,然后最后进行提交。

(为了进一步阅读,我参考 Subversion 详细介绍了这一点,但无论您使用哪种 VCS,它都适用:Subversion 和 TortoiseSVN 食谱第 1 部分.)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在签入 TFS 之前是否必须执行“获取最新版本”,以免覆盖/丢失代码? 的相关文章

  • 使用 TFS 2010 的团队是否需要 Active Directory?

    我是 TFS 2010 的新手 希望在一个由 2 3 名远程人员组成的团队的小型项目中公平地尝试一下 是否要求我的所有团队用户都属于 Active Directory 网络设置 或者我可以让我的团队成员松散耦合并能够使用用户名 密码登录吗
  • TFS 自定义构建任务 - 多个版本

    我需要对自定义 TFS 构建任务进行更改 我想将任务的新版本捆绑在我的扩展中 也保留当前版本 并能够在编辑构建 发布定义时选择版本 我查看了微软的文档将构建任务的多个版本捆绑在一个扩展中 https www visualstudio com
  • 通过 PowerShell 对 TFS 构建进行排队

    TFS2012 具有一个 2010 构建控制器和一个 2010 构建代理 还有一个 2012 构建控制器和多个 2012 构建代理 我们的软件有多个版本的多个版本 构建根据约定命名 例如Foo version 1 0 和 Foo versi
  • 使用 VNext 构建后,TFS tbl_Content 开始快速增长

    直到一个月前我们一直在使用旧样式 XAML 构建 然后开始使用 vNext 构建 之后我注意到 TFS 数据库中的 tbl Content 表开始快速增长 例如 在过去 8 小时内 它增长了 10 GB 但我不明白为什么会这样做 有谁知道它
  • 在工作区中找不到文件

    我使用 Visual Studio 2010 professional 和 TFS 作为源代码控制 一切正常 早上我来打开我的解决方案 它以离线状态打开 我尝试上网 它说 Workspace for this solution could
  • 解决方案文件的修改权限

    我有用VS2005开发的项目解决方案 它绑定到 TFS Team Foundation Server 我想将解决方案转换为 VS2008 版本 保持绑定不变 但是在转换时出现错误 错误信息 解决方案文件 C abc abc sln 无法转换
  • 如何防止TFS 2013锁定二进制文件?

    我们将 TFS 2013 与 Visual Studio 2013 结合使用 并使用门控签入 通过门控签入 不可能在本地保留待处理的更改 如果其中一个文件被锁定 http www neovolve com 2011 07 18 unable
  • 如何使用 C# API 移动 TFS 文件?

    我一直在谷歌上搜索如何使用 TFS API 通过 C 移动文件 我们的想法是有一个文件夹 开发人员可以在其中放置数据库升级脚本 构建过程会在该文件夹中创建一个构建脚本 并将该文件夹上的所有文件移动到具有我们刚刚创建的数据库构建版本的新文件夹
  • 命名空间中不存在类型或命名空间名称 - 但命名空间确实存在

    我已经工作了很长时间没有任何问题的项目突然开始抛出错误 例如 The type or namespace name xxx does not exist in the namespace yyy are you missing an ass
  • 使用 VSTest 代替 MSTest 运行单元测试用例

    我在 TFS2010 服务器上有一个 x64 平台 C 解决方案 VS2012 我已将一个单元测试项目 也是 x64 附加到此解决方案并创建了一个构建定义 当我对构建进行排队时 它成功了 但单元测试用例不会被执行 这是因为 MSTest 是
  • PowerShell(2.0,32 位)无法加载 TFS 2010 管理单元...除非可以

    我有一个与 Team Foundation Server 交互的 PowerShell 脚本 当我在 PowerShell 控制台中运行它时 它运行得很好 这对于测试它来说很好 但我想通过双击它或批处理文件或其他东西来运行它 我什至选择右键
  • TFS Rest API 签入版本控制

    我需要能够从 VSTS 扩展签出 编辑和签入 本地 TFVC TFS 存储库 v2015 3 在文档中https www visualstudio com en us docs integrate api tfvc overview htt
  • 如何使用 C# 在 tfs 中创建具有本地文件夹映射的工作区

    我正在尝试自动将最新代码从 TFS 服务器获取到本地路径 第一步是在 TFS 服务器中创建工作区 如果尚不存在 我将如何创建具有映射到服务器文件夹的本地文件夹的工作区 Use the VersionControlServer CreateW
  • 为什么 TFS 构建步骤扩展图标丢失?

    我按照 MS 教程为 TFS 创建了一个新扩展 由于某种原因 当我将图标添加到扩展程序时 我可以在安装扩展程序时在 扩展程序管理器 页面中看到此图标 但是当我选择我的扩展时从构建步骤菜单中图像丢失 在 vss extension json
  • 使用 MSBuild 构建 SSDT 项目比在 VS 2013 中慢得多

    我注意到我们的 SSDT 项目通过 TFS 构建定义构建的速度比通过本地开发盒上的 VS 2013 慢得多 在构建服务器本身上 我可以在大约 2 分钟内通过 VS 2013 构建我们最大的 SSDT 项目 使用 MSBuild 在同一服务器
  • SonarScanner 给出的“MsBuild.exe”在 TFS 2018 上未被识别为内部或外部命令

    我将 SonarQube 添加到现有的 TFS 2018 版本中 我按照此处下载 Community Edition 7 4 的说明进行操作https docs sonarqube org display SCAN Install the
  • 使用 TFS 的每个分支的 Nuget 存储库

    我有一个具有以下分支设置的 TFS 环境 Dev 开发人员的主要工作分支 Main 稳定 可发布的分支 修补程序 用于修复不属于正常发布周期的生产代码 我们正在设置自己使用 Nuget 我想配置一些东西 以便 Dev 分支中的代码从 Dev
  • TFS 在线构建在具有 TF270016 / TF270002 的本地构建服务器上失败

    我们使用 Visual Studio Online 但我们有本地构建控制器和构建代理 在过去 6 个月左右的时间里 它一直运行良好 但就在本周 构建一直失败 软件本身似乎构建成功 测试似乎也通过了 但由于发布日志文件期间出现错误而失败 请参
  • 如何在 Team Foundation Service 中查看早期代码审查的评论?

    我正在将 Microsoft 的在线 Team Foundation Service 与 Visual Studio 2012 Premium 结合使用 几个月前 我为一位同事进行了代码审查 现在同一个项目又进行了一次代码审查 我希望能够查
  • 为什么安装了 TFS Power Tools 后却缺少 tfpt.exe?

    我在 Windows 10 上使用 Visual Studio Community 2017 我安装了 TFS power tools 2011 2013 2015 我读到以前的 Power Tools 已集成到 TFS 2017 中 但任

随机推荐

  • 使用 maxLines 选取框

    如何使用 MaxLines 而不是 SingleLine 来制作选取框 这是我的 TextView
  • MySQL:用户“user”@“IP_ADDRESS”的访问被拒绝 - 允许某些主机的远程访问对其他主机失败

    背景 我可以从某些子网访问 mysql 实例 但不能从其他子网访问 至少看起来是这样 网络上的机器10 0 21 xx能够连接到 MySQL 实例 但从10 0 7 xx I get 使用密码的用户访问被拒绝 有趣的是 MySQL 安装在与
  • 动态访问 PHP 数组

    我尝试访问 this gt arrDataName key 在带有键的元素上 key从数组 this gt arrDataName 但 PHP 解释错误 我尝试过 周围的 arrDataName to this gt arrDataName
  • 我可以强制报表顶部的图表始终可见吗

    我有以下报告 In Excel我会用一个叫做Freeze Pane在图表下方 这意味着当用户向下滚动时 表格将滚动 但图表将始终保持可见 是否可以在中实现此行为RS EDIT 注 图表和tablix使用不同Datasets 是的 您可以通过
  • 从设计角度应该如何对待 CouchDB 修订版?

    据我所知 CouchDB 修订版不应被视为文档版本控制这个词的意义 从其他帖子来看 它们似乎被视为暂时数据 直到粗粒度的数据出现为止 compact操作称为 我的问题是 如果我有兴趣使用 CouchDB 来维护文档以及这些文档的版本历史记录
  • 如何为history.pushState和replaceState设置“默认”值?

    对于使用的浏览器titleparam 我们应该使用什么值来告诉浏览器使用其默认值 In Safari 5 1 7 7534 57 2 if I put null or undefined as the title param it uses
  • Haskell:在不使用spawn的情况下分割管道(广播)

    这个问题有点代码高尔夫 而且很新鲜 我正在使用很棒的pipesHaskell 中的库 我想拆分一个管道以沿多个通道发送相同的数据 进行广播 这Pipes Concurrent教程建议使用spawn创建邮箱 利用Output的幺半群状态 例如
  • 查找视图依赖的所有表[重复]

    这个问题在这里已经有答案了 我有一个 Oracle 视图 我想找到我的视图所依赖的所有表 可能 我的视图依赖于其他视图 在这种情况下 我想递归地导航依赖项并访问表 这是我的架构的示例 CREATE TABLE T1 A NUMBER CRE
  • 如何获取当前页面中显示的所有项目?

    For the 官方示例多选时 如果设置每页显示 50 行并单击标题行中的全选复选框 则实际上表中的所有行都被选中 问题是我只想选择当前页面中的所有行 有什么方法可以实现吗 我不想手动单击每一行 我为你想要实现的目标创建了一个演示 http
  • 如何从字符串[]中删除非字母字符? [复制]

    这个问题在这里已经有答案了 这是代码 StringBuilder sb new StringBuilder Regex rgx new Regex a zA Z0 9 var words Regex Split textBox1 Text
  • SFENCE 是否会阻止存储缓冲区隐藏来自 MESI 的更改?

    如果 Core 进行写入 但其 L1 中不存在缓存行 则它会写入存储缓冲区 另一个 Core 请求该缓存行 MESI 无法看到存储缓冲区更新并返回未修改的缓存行 存储缓冲区不久后被刷新 但第二个核心已经使用旧值 我不明白如何SFENCE解决
  • 比较 DOM 节点与 DOM 元素

    我在解决这个问题时遇到了一些麻烦 我知道 DOM 中的所有内容都是一个节点 并且 DOM 元素也是一个节点 然而 我的问题是 我有一个 DOM 节点和一个 DOM 元素 我需要比较它们以查看它们是否引用相同的元素 这可能吗 我认为我的问题有
  • 保存领域关系并不会使它们持久化

    我有一个清单articles 这些文章是通过使用插入的realm copyToRealmOrUpdate 效果非常好 现在每篇文章都有一个不应该被持久化的authorId 相反 我想找到存储的作者 RealmObject并设置其与文章的关系
  • Android ViewPager 中心项目更大

    我想创建一个 ViewPager 选定的中心项目比其他项目大 上一个和下一个项目的部分始终可见 我在用viewPager setPageMargin 20 使上一个和下一个项目的一部分可见 但是 如何使选定的中心项目比其他项目稍大一些 您可
  • 有没有我可以使用的 Subversion Web 客户端

    我想在 Linux 首选 或 Windows 上安装 svn Web 客户端 我只需要只读功能 不需要提交 并且我希望能够使用 diff 来比较修订版本 我的 svn 服务器在另一台机器上 因此 Web 服务器需要通过 http 访问它 也
  • 链接到更高级别文件夹中的文件

    我在提供比我的根文件夹级别更高的文档时遇到问题 a href home folder document docx Proposal a 在浏览器中 上面的内容被解释为 http localhost home folder document
  • 连接文件夹中的大量文件时参数列表太长

    这是一个将多个相同模式文件连接成一个大文件的命令 在文件夹中我有 77k 个文件 我得到Argument list too long 示例文件名是每分钟 cartreset 2014 05 08 01 12 log rm f tmp tem
  • Chrome 开发工具 - “大小”与“内容”

    在 Chrome 开发工具的 网络 选项卡中查看有关样式表的信息时 一列指定 大小 和 内容 有人能解释一下这两个数字之间的区别吗 在某些页面上 数字很接近 而在其他页面上 数字则相差相当大 大小 是线路上的字节数 内容 是资源的实际大小
  • ARKit – 如何显示来自放置在 SCNPlane 上的虚拟 SCNCamera 的源?

    我使用 ARKit 和 SceneKit 将一些对象放入 AR 空间中 效果很好 现在我想添加一个额外的摄像机 SCNCamera 该摄像机放置在场景中的其他位置 由公共 SCNNode 连接和定位 它旨在从另一个 固定 角度向我展示当前场
  • 在签入 TFS 之前是否必须执行“获取最新版本”,以免覆盖/丢失代码?

    我的团队中有一个反复出现的问题让我抓狂 人们声称 Team Foundation Server 中的某些签入会覆盖以前的签入 现有代码 他们声称你总是需要做Get Latest Version在办理登机手续之前 换句话说 运行获取最新信息是