Visual studio VisualSVN-禁用自动签出

Visual studio VisualSVN-禁用自动签出,visual-studio,svn,tfs,tortoisesvn,visualsvn,Visual Studio,Svn,Tfs,Tortoisesvn,Visualsvn,最近换了工作,并用它将源代码控制从TFS切换到SVN,这对我来说是新的 在TFS中,有一个选项可以在您开始键入文件时禁用文件的自动签出。默认情况下,它是启用的,很多用户都喜欢这种行为,但我更愿意在提交之前确定更改了什么。私事 默认情况下,VisualSVN自动签出。是否有类似的选项来关闭它?我似乎无法在设置中找到答案。据我所知,SVN和TFS世界中的“自动签出”术语有不同的含义 在Subversion中,签出与从存储库获取工作副本的操作相关。在TFS中,该术语似乎与自动锁定机制有关 如果希望在V

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

在TFS中,有一个选项可以在您开始键入文件时禁用文件的自动签出。默认情况下,它是启用的,很多用户都喜欢这种行为,但我更愿意在提交之前确定更改了什么。私事

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

据我所知,SVN和TFS世界中的“自动签出”术语有不同的含义

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

如果希望在VisualStudio(安装了VisualSVN扩展名)中开始修改文件时自动锁定该文件,请参阅KB文章。我还建议阅读SVNBook一章


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

简短回答:I don;I don’我不认为你能做到这一点而不会变得非常不受欢迎

我认为您应该仔细阅读的SVN是如何工作的,特别是

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

旧的TFS/VSS模式签出一个文件来处理它,现在已经相当过时了——假设您拥有独占访问权的更“乐观”的方法更高效。(和往常一样,如果出了问题,请求原谅要比每次请求允许容易得多)

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

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

就我个人而言,我会习惯于在任何时候改变任何你喜欢的事情。如果您无意中编辑了一个文件,您可以看到更改指示器(AnkhSVN将更改文件的文件图标变成橙色),并且很容易“svn还原”您不想做的更改。SVN还可以让您非常轻松地查看差异,尤其是在提交时-双击提交对话框中的文件。能够在没有工具妨碍的情况下工作(我发现TFS在我试图编辑文件时不断地对我发出ping声)会带来巨大的生产力收益。SVN工具真的很好,可以让你“请求原谅”,这样你就不需要用蹩脚的旧TFS方式运行,现在你已经升级到更好的方式了


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

唯一的问题是——这适用于所有人,我认为OP只想在“VSS模式”下运行,其中所有文件都以只读方式为自己签出(而其他文件则以通常的修改-提交-合并模式工作)。请注意:对于Subversion,您通常只需要在处理二进制文件时锁定,而合并两个更改将不起作用(例如数据库文件)。在这种情况下,您应该仍然能够手动锁定文件。感谢您提供的信息。但为了清楚起见,这与其他人正在做的事情无关,只有我。我只是碰巧不喜欢源代码管理自动签出我正在浏览的文件,因为我在键盘上抖动。我经常抖动:)在提交之前,请始终查看您的更改,当您这样做时,您可以确切地看到服务器上将要更改的内容。如果答案有帮助,您可以接受和/或投票。谢谢