VisualSVN - 禁用自动结帐

时间:2014-03-13 10:03:47

标签: visual-studio svn tfs tortoisesvn visualsvn

最近切换的作业和它将源控制从TFS切换到SVN,这对我来说是新的。

在TFS中,有一个选项可以在您开始输入文件时禁用自动签出文件。它默认启用,许多用户喜欢这种行为,但我更愿意确定在提交之前发生了什么变化。个人的事。

默认情况下,VisualSVN自动检出。是否有类似的选项可以将其关闭?我似乎无法在设置中找到答案。

2 个答案:

答案 0 :(得分:3)

"自动结帐"据我所知,SVN和TFS世界中的术语具有不同的含义。

在Subversion中,checkout与svn checkout操作有关,该操作从存储库获取工作副本。在TFS中,这个术语看起来与某种方式与自动锁定机制有关。

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

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

答案 1 :(得分:2)

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

我认为你应该阅读SVN redbook关于SVN如何运作的描述,尤其是versioning models

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

旧的TFS / VSS模型检查一个文件来处理它今天已经过时 - 更乐观的方法,你认为你有独家访问权限更高效。 (像往常一样,如果出错就比每次都要求许可更容易请求原谅)

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

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

就个人而言,无论何时何地,我都会习惯于改变你的想法。如果您不小心编辑了一个文件,您可以看到更改指示符(AnkhSVN将文件图标变为橙色以显示已更改的文件),以及您不想进行的“svn还原”更改。此外,SVN可以让您轻松查看差异,特别是在提交时 - 双击提交对话框中的文件。能够在没有工具妨碍的情况下工作(正如我在TFS尝试编辑文件时不断向我发出警告)所带来的工作效率提高是巨大的。 SVN工具非常适合让你“请求宽恕”,所以你现在已经升级到更好的东西,不需要以糟糕的旧TFS方式运行。

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