我将MS Team Foundation Server 2012与服务器工作区一起使用,并且本地文件位于Linux服务器上(通过Samba访问)。从Visual Studio 2017访问TFS。如何防止TFS本地文件被删除/覆盖/重命名?
当我检查foo.txt时,TFS成功设置foo.txt为只读(r-xr-r--)。但是TFS不会为存放foo.txt的目录设置权限。因此,尽管我无法修改foo.txt,但我仍然拥有对其所在目录的写入权限,因此我可以删除foo.txt或将其重命名或覆盖它。
有没有一种方法可以告诉TFS管理文件存储目录的权限(除文件本身之外)?因此,如果不首先从TFS中检出文件,我将无法删除/重命名/覆盖文件(在Visual Studio之外)?如果当我检出一个文件时,它将被存储的目录变为可写(u + w),并且当目录中的所有文件都被签入时,目录将变为只读(ugo-w)。
作为一个旁注,我认为这可能是一个复杂的我有文件存储在一个Linux机器上。但我用我的Win 7 PC上存储的本地文件试了一下,得到了同样的结果。 TFS将设置只读文件属性。但即使使用只读属性设置,我仍然可以删除/覆盖/重命名文件。我想,因为我是我的电脑的管理员(文件属性的安全选项卡显示我有完全控制)。
所以我认为这是一个通用的TFS问题。由于TFS使用只读属性来防止文件在TFS之外被修改为而不被检出,因此TFS能否阻止它们在TFS之外被删除/覆盖/重命名?
没有这个,我想我有可能意外地将本地文件与存储库不同步,并且这看起来不是什么好事。
我试图跳过上面的箍是因为我将编辑Visual Studio以外的文件。但是从更多的阅读来看,看起来像使用本地工作区而不是服务器工作区会更好。由于使用本地工作区,TFS在检出/检入时不会切换只读位。您可以随意编辑文件,并且TFS将检测到更改。这听起来更接近我想要的。 – Quentin