【问题标题】:VisualSVN - disable auto checkoutVisualSVN - 禁用自动结帐
【发布时间】:2014-03-13 10:03:47
【问题描述】:

最近换了工作,并将源代码控制从 TFS 切换到 SVN,这对我来说是新的。

在 TFS 中,有一个选项可以在您开始输入文件时禁用自动签出文件。它默认启用,很多用户喜欢这种行为,但我更愿意在提交之前确定要更改的内容。个人的事情。

VisualSVN 默认自动结帐。有没有类似的选项可以关闭它?我在设置中似乎找不到。

【问题讨论】:

  • 在提交之前始终检查您的更改,当您这样做时,您可以准确地看到服务器上将更改的内容。
  • 如果有帮助,您可以接受和/或投票赞成答案。谢谢!

标签: visual-studio svn tfs tortoisesvn visualsvn


【解决方案1】:

据我所知,SVN 和 TFS 世界中的“自动结帐”一词具有不同的含义。

在 Subversion 中,签出与 svn checkout 操作相关,该操作从存储库中获取工作副本。在 TFS 中,该术语似乎与自动锁定机制有关。

如果您希望在 Visual Studio 中开始修改文件时自动锁定文件(安装了 VisualSVN 扩展),请参阅知识库文章 "Lock-Modify-Unlock Model with VisualSVN"。我还建议阅读 SVNBook 章节"Locking"

一般来说,您可以在文件上设置svn:needs-lock 属性。该属性指示客户端在编辑之前必须锁定哪些文件。将svn:need-lock 应用于文件后,该文件将获得只读属性。在编辑文件之前,必须由用户明确锁定。提交后锁默认释放。

【讨论】:

  • 唯一的麻烦是 - 这适用于每个人,我认为 OP 只想在“VSS 模式”下运行,其中所有文件都以只读方式检出(而其他文件正常工作)修改提交合并模型)
  • 注意:对于 Subversion,您通常只需要在处理无法合并两个更改的二进制文件(例如数据库文件)时锁定。在这种情况下,您应该仍然可以手动锁定文件。
  • 感谢您的信息。但只是为了清楚起见 - 这与其他人在做什么无关,只有我。我只是碰巧不喜欢源代码控制自动签出我正在浏览的文件,只是因为我在键盘上抽搐。我经常抽搐:)
【解决方案2】:

简短回答:我不认为你可以做到这一点而不变得非常不受欢迎。

我认为您应该阅读 SVN redbook 对 SVN 工作原理的描述,尤其是 versioning models

在您的环境中,每个人都希望能够在本地修改任何文件,然后将他们的更改发送到服务器,并在必要时将更改与同事的更改合并。如果 2 个人没有一直更改相同的文件,这种方法很有效,这是大多数开发商店的典型情况。

签出文件以进行处理的旧 TFS/VSS 模型如今已经过时 - 假设您拥有独占访问权限的更“乐观”的方法效率更高。 (像往常一样,如果出错了,请求原谅比每次都请求许可更容易)

您的主要问题是您不能混合使用这些模型 - 如果您的同事正在使用合并模型,那么您也必须这样做。您不能锁定文件并期望他们仍然能够随时更改任何文件。

现在,您可以使用一些技巧来防止自己修改您从未想过的文件 - 我不确定 VisualSVN 但 TortoiseSVN(很棒的工具)可以运行 client hooks - 即您可以编写一个程序来运行每次结帐,该程序可以像设置每个文件的只读标志一样简单。这对你来说是否足够神是另一回事。

就我个人而言,我会习惯于随心所欲地改变。如果您不小心编辑了一个文件,您可以看到更改指示器(AnkhSVN 将文件图标变为橙色以表示已更改的文件),并且可以轻松“svn revert”您不想进行的更改。 SVN 还可以让您非常轻松地查看差异,尤其是在提交时 - 双击提交对话框中的文件。能够在没有工具妨碍您的情况下工作(正如我发现 TFS 在我尝试编辑文件时不断向我发送信号)所带来的生产力收益是巨大的。 SVN 工具非常适合让您“请求宽恕”,因此您现在已经升级到更好的东西,因此您不需要以蹩脚的旧 TFS 方式运行。

另一个优点是这适用于不在 Visual Studio 项目中的文件,如果您曾经有过在 VS 之外编辑过的项目文件(例如生成的 WCF 客户端存根),那么您将了解 SVN 的工作原理- 您再也不会进行完整提交并发现 TFS 已方便地确定您更改的文件没有更改,因此不需要提交!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 2016-09-18
    • 2021-08-23
    • 1970-01-01
    相关资源
    最近更新 更多