【问题标题】:How to lock files to avoid conflicts in Visual Studio如何锁定文件以避免 Visual Studio 中的冲突
【发布时间】:2012-07-12 16:19:19
【问题描述】:

我们使用 Microsoft Visual Studio 2010,它允许我们同时签出和编辑同一个文件。

我们经常发现我们有冲突,而且合并工具很糟糕,插入诸如mine <<<<<<<<<之类的令人困惑的东西并不是很有帮助。

如果文件当前正在被其他人编辑,有没有办法让 VS2010 禁止编辑文件?如果有一个更好的合并工具可以让您以交互方式选择如何合并它,而不是仅仅将所有内容粘贴到文件中呢?

【问题讨论】:

  • 你的版本控制系统是什么?

标签: visual-studio-2010 visual-studio version-control merge


【解决方案1】:

如果您使用 Subversion 作为您的源代码控制系统,请了解它适用于 edit-merge 主体,而不是 Visual SourceSafe 等工具所采用的专有检出模型。这意味着每个人都可以同时编辑他们的工作副本,并且开发人员应该在他们定期更新他们的工作副本时解决差异。所以,按照你的要求去做有点违背 Subversion 的设计工作方式。

不过,您可以通过“锁定”文件来相当接近 SourceSafe 签出概念。如果您使用的是 Ankh Plug In for Visual Studio,您可以右键单击解决方案资源管理器中的文件并选择“锁定”。

您还可以在名为“svn:needs-lock”的文件上设置一个属性,这意味着如果您获得一个文件的工作副本,它以只读方式交付,如果您想编辑它,您必须明确锁定它。

编辑:要快速了解 Subversion 锁定原理,您可以查看 here. 祝你好运!

【讨论】:

  • 好的,谢谢,我并不清楚这种区别。我想我真正想要的是要么迁移到结账模型,要么我想要一个更好的合并工具。如果 Subversion 模型是编辑合并,那么合并部分肯定很糟糕。有没有办法改进它,还是我应该考虑获得类似 SourceSafe 的东西?
  • 出于对所有可计算事物的热爱,请不要使用 SourceSafe。它的一切都是旧的、破碎的和邪恶的。
  • 格雷格,你推荐什么?
  • Subversion 仍然是一个合理的选择,但对于今天最好的工具,我会推荐 Git 或 Mercurial。但是,与任何工具一样,您必须了解它们的工作原理,默认情况下,我提到的所有三个工具都以相同的方式处理合并冲突。
  • 布伦特,我肯定会反对远离 SourceSafe 的想法。如果您的团队有良好的沟通,您应该能够避免大多数(如果不是所有)情况,在这些情况下,您会发现自己对需要采取严厉步骤来解决的相同文件进行剧烈冲突的编辑。此外,请注意有多种合并工具可用 - 如果您有适用于 Windows 的 TortoiseSVN Subversion shell 扩展,则可以通过 Visual Studio 的 AnkhSVN 插件将 TortoiseMerge 用作外部合并工具。这只是一个例子。
【解决方案2】:

您没有正确使用 Subversion。您会提到 SVN 在冲突文件中使用的 mine <<<<<< 模式这一事实告诉我,您最好学习几个 Subversion 类,而不是试图弄清楚如何锁定文件。

【讨论】:

  • 我认为我镇上没有任何大学提供关于颠覆的夜班。
  • 我知道,这比其他任何事情都更加开玩笑。你确实有这个问题,有很多online resources可以帮助你。祝你好运。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-13
相关资源
最近更新 更多