如何防止TFS本地文件被删除/覆盖/重命名?
How to prevent TFS local files from being deleted / overwritten / renamed?
我将 MS Team Foundation Server 2012 与服务器工作区一起使用,本地文件位于 Linux 服务器上(通过 Samba 访问)。从 Visual Studio 2017 年开始访问 TFS。
当我签入 foo.txt 时,TFS 成功地将 foo.txt 设置为预期的只读状态 (r-xr--r--)。但是 TFS 没有为存储 foo.txt 的目录设置权限。因此,虽然我不能修改 foo.txt,但我仍然对它所在的目录具有写入权限,因此我可以删除 foo.txt 或重命名或覆盖它。
有没有办法让 TFS 管理文件存储目录的权限(除了文件本身)?这样我就无法 delete/rename/overwrite 一个文件(在 Visual Studio 之外)而不先从 TFS 中签出它?如果当我签出一个文件时,它存储的目录变为可写(u+w),并且当目录中的所有文件都被签入时,该目录再次变为只读(ugo-w),我会很高兴。
作为旁注,我认为这可能是我将文件存储在 Linux 盒子上的复杂性。但我用存储在我的 Win 7 PC 上的本地文件进行了尝试,得到了相同的结果。 TFS 将设置只读文件属性。但即使设置了只读属性,我仍然可以删除/覆盖/重命名文件。我想是因为我是我 PC 的管理员(文件属性的安全选项卡显示我拥有完全控制权)。
所以我认为这是一个通用的 TFS 问题。由于TFS使用只读属性来防止文件在TFS之外被修改而不被检出,那么TFS有没有好的方法来防止它们在外面被删除/覆盖/重命名TFS 的?
否则,我认为我的本地文件可能会意外地与存储库不同步,这似乎不是一件好事。
就像你说的local workspace更适合你的情况。
这也适用于 TFS 2012。
本地工作区缓存每个文件的未修改版本,使您能够在不连接到服务器的情况下编辑、比较和执行其他操作。就像离线工作一样。此外,当您在 Visual Studio 之外添加或删除文件时,程序 会自动检测这些更改。
即使您拥有foo.txt所在目录的权限,例如删除foo.txt,但如果没有足够的权限,您仍然无法签入TFS源代码控制。而且,如果您不小心删除了文件,也很容易在本地恢复,只需重新获取您的文件即可。
此外,如果您是管理员,您可以specify which type of workspace Visual Studio creates for您的团队成员默认:本地或服务器。
看看这个优秀的博客:Server workspaces vs. local workspaces 可以帮助您清楚地了解两者之间的区别。
我将 MS Team Foundation Server 2012 与服务器工作区一起使用,本地文件位于 Linux 服务器上(通过 Samba 访问)。从 Visual Studio 2017 年开始访问 TFS。
当我签入 foo.txt 时,TFS 成功地将 foo.txt 设置为预期的只读状态 (r-xr--r--)。但是 TFS 没有为存储 foo.txt 的目录设置权限。因此,虽然我不能修改 foo.txt,但我仍然对它所在的目录具有写入权限,因此我可以删除 foo.txt 或重命名或覆盖它。
有没有办法让 TFS 管理文件存储目录的权限(除了文件本身)?这样我就无法 delete/rename/overwrite 一个文件(在 Visual Studio 之外)而不先从 TFS 中签出它?如果当我签出一个文件时,它存储的目录变为可写(u+w),并且当目录中的所有文件都被签入时,该目录再次变为只读(ugo-w),我会很高兴。
作为旁注,我认为这可能是我将文件存储在 Linux 盒子上的复杂性。但我用存储在我的 Win 7 PC 上的本地文件进行了尝试,得到了相同的结果。 TFS 将设置只读文件属性。但即使设置了只读属性,我仍然可以删除/覆盖/重命名文件。我想是因为我是我 PC 的管理员(文件属性的安全选项卡显示我拥有完全控制权)。
所以我认为这是一个通用的 TFS 问题。由于TFS使用只读属性来防止文件在TFS之外被修改而不被检出,那么TFS有没有好的方法来防止它们在外面被删除/覆盖/重命名TFS 的?
否则,我认为我的本地文件可能会意外地与存储库不同步,这似乎不是一件好事。
就像你说的local workspace更适合你的情况。 这也适用于 TFS 2012。
本地工作区缓存每个文件的未修改版本,使您能够在不连接到服务器的情况下编辑、比较和执行其他操作。就像离线工作一样。此外,当您在 Visual Studio 之外添加或删除文件时,程序 会自动检测这些更改。
即使您拥有foo.txt所在目录的权限,例如删除foo.txt,但如果没有足够的权限,您仍然无法签入TFS源代码控制。而且,如果您不小心删除了文件,也很容易在本地恢复,只需重新获取您的文件即可。
此外,如果您是管理员,您可以specify which type of workspace Visual Studio creates for您的团队成员默认:本地或服务器。
看看这个优秀的博客:Server workspaces vs. local workspaces 可以帮助您清楚地了解两者之间的区别。