TFS在提交前自动检出

5
是否存在“在提交之前自动检出TFS”的功能,以便我在说“提交”之前不会检出任何文件,例如,如果我只是暂时更改文件-这种情况经常发生。
换句话说,从客户端的角度来看,我想像使用subversion一样工作,而不管TFS服务器可能会想什么。这一定是可能的,我只是想知道是否容易设置。
换句话说,在我说“提交”之前,其他用户不应该(能够)打扰我正在编辑哪些文件。

1
你为什么要这样做呢?因为你喜欢SVN的外观,所以绕过TFS设计的工作方式吗? - Dan Puzey
5个回答

3
您可以告诉Visual Studio在编辑时不要检出,方法是进入“工具”->“选项”->“源代码控制”->“环境”,然后选择您想要的行为。如果您选择将编辑设置为“不做任何操作”,而将保存设置为“提示检出”,那么这应该与您想要的相当接近。

tfs source contol options

你也可以看看svnBridge,它允许你使用TortoiseSVN与TFS。我认为svnBridge的目的是让习惯于使用SVN的开发人员在不改变工作方式的情况下使用TFS,所以它应该能够满足你的需求。这两者的结合应该能让你接近你的目标。

我猜我的 SVN 客户端(通过 svnBridge 使用 TFS)会像正常的 SVN 设置一样找出更改的文件等等? - Evgeniy Berezovsky
这就是它应该的行为。如果不是,请告诉我。 - James Reed

3
这些答案假定您总是在Visual Studio中工作。但是,想象一下,在Visual Studio之外编辑一堆文件并想使用Windows Explorer TFS PowerTools自动签出刚修改的文件的情况。很遗憾,没有自动签出功能。我最终采取的方法是按“修改日期”列对文件进行排序,然后仅选择已修改的文件。您不能选择任何可能添加的文件,因为TFS power tool Windows扩展将灰掉“Check Out for Edit…”选项。另一个令人沮丧的问题是,TFS power tools没有文件图标来区分文件当前是否签出或者是否尚未添加到TFS。基本上,除非您专门在VS内工作,否则TFS处理多个文件的能力非常糟糕,但是谁会那样呢。

在这种场景下,SVN比TFS更胜一筹。


1

有时我会听到一些人不喜欢TFS常见的自动检出行为。 TFS的一个很棒的功能是待处理更改列表,它显示您当前已检出的文件,并允许您轻松撤消任何无意的检出。 尽管我个人认为自动检出功能是提高生产力的好处 - 像大多数事情一样,如果您发现它与您想要的工作方式造成问题,那么您可以使用偏好设置来调整默认行为。

在安装了Team Explorer 2008的Visual Studio 2008中,转到“工具”,“选项”,“源代码控制”,“环境”,并将保存和编辑的已签入项目更改为“提示进行检出”,而不是默认值“自动检出”。

This will then prompt you before the automatic checkout occurs and give you the opportunity to cancel if you wish.


自动结账很糟糕。我不希望有任何东西在我不知情的情况下对我的本地工作空间进行操作。这就是为什么像我这样的人讨厌TFS,更喜欢像Subversion和Git这样的源代码控制,它们没有持续连接状态,经常发生毫无意义的奇怪错误,并对您的本地工作空间执行您不知道的奇怪操作。关键是要经常获取最新版本并经常检查。这是最佳实践。TFS不需要强制执行这种垃圾。使用除TFS以外的其他东西,你的生活会变得更简单、更快乐。 - PositiveGuy

0

不需要。当您在 TFS 中进行签入时,TFS 将会签入这些文件,您只需要撤销这些文件即可。

但是,检出文件并不会阻止其他人检出它们,除非您已将其锁定。这种非独占式锁定是默认行为。


0
不行,但你可以这样做——在两个Visual Studio中打开解决方案,一个在线上,另一个离线。在离线的解决方案上进行所有更改/工作。完成任务后,
  1. 进入第一个VS(在线上),并检出包含您更改的文件。
  2. 进入第二个VS(离线,包含您的更改)-它会提示文件更改,请单击“全部否”,以便所有更改都得到保留。
  3. 按下保存全部。
  4. 第一个解决方案(在线上)将提示新更改,请单击“全部是”,以便离线模式中所做的所有更改都会出现在新文件中。
  5. 获取最新版本。-任何冲突的更改都将反映出来(尝试自动合并-如果幸运的话,将完美地工作)
  6. 提交更改
虽然这是一项繁琐的任务,但对于您的问题来说是一种解决方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接