从TFS 2015开始,微软在TFS系统中增加了一个非常吸引开发人员的功能,“快速代码编辑器” (Quick Code Editor)。使用这个功能,你可以在任何安装了浏览器的设备上编辑TFS服务器中的源代码;你可以脱离庞大的IDE开发工具实现快速代码更新。如果在TFS系统配置了持续集成和持续发布(CI/CD),那么开发人员使用浏览器,就可以快速更新测试环境/生产环境中的功能。这个功能一经推出,马上收到了广大TFS用户的喜爱。

但是在使用过程中,许多客户跟我抱怨,如果对用户的默认权限进行了设置以后,发现无法通过浏览器更新源代码,也不能上传文件,系统提示“TF14098: 拒绝访问: 用户 张洪君 需要 $/金融风险管理系统/微信图片_20170822215012.jpg 的 PendChange 权限。”(如下图)。而与此同时,用户却可以在Visual Studio中签入修改源代码。出现这样的现象,大家觉得难以理解。

通过对用户权限设置的检查,我们发现,使用浏览器的文件更新功能,用户必须具备“签出”(在TFS 2017中改名为“挂起服务器工作区中的更改”)权限。

这个“签出”权限在TFS 2010以后,我们就较少用到。这是因为TFS 2010开始引入了本地工作区和服务器工作区的功能,且默认设置中,用户的工作区为本地工作区。

  • 在服务器工作区模式下,如果用户没有签出权限,是不能对源代码做任何修改的。如果你尝试在Visual Studio 中修改代码,系统会提示“TF14098: 拒绝访问: 用户 张洪君 需要 $/金融风险管理系统/README.md 的 PendChange 权限。”(如下图)。
  • 在本地工作区模式下,即使没有这个权限,用户也可以修改代码。当用户更改源代码时,TFS客户端会自动将文件标记文签出状态,但是这个状态是保留在本地,不会存储到TFS服务器通知其他用户。但是用户如果尝试签出并锁定文件时,则系统会提示上面相同的错误信息。

(微软ALM MVP 张洪君 http://www.cnblogs.com/danzhang

从上面的分析可以得出结论,TFS的快速代码修改功能(Quick Code Editor)使用了服务器工作区的配置信息。因此,只有配置了“签出”(或“挂起服务器工作区中的更改”)权限的用户,才能通过浏览器更新代码库中的文档、源代码等文件信息。

【注意】这项权限设置,仅影响TFVC代码库的权限设置,Git代码库的权限与TFVC完全不一样。

【TFS 2017】使用浏览器上传文件(TFVC)或者编辑代码,错误提示TF14098,需要对文件有PendChange 权限的更多相关文章

  1. 如何上传网站程序(文件浏览器上传网页、FileZilla上传网站程序)

    问题场景: 网页制作完成后,程序需上传至虚拟主机. 注意事项: Windows系统的主机请将全部网页文件直接上传到FTP根目录,即 / . Linux系统的主机请将全部网页文件直接上传到 /htdoc ...

  2. 使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件

    使用input:file控件在微信内置浏览器上传文件返回未显示选择的文件 原来的写法: <input type="file" accept="image/x-png ...

  3. SpringMVC+Ajax实现文件批量上传和下载功能实例代码

    需求: 文件批量上传,支持断点续传. 文件批量下载,支持断点续传. 使用JS能够实现批量下载,能够提供接口从指定url中下载文件并保存在本地指定路径中. 服务器不需要打包. 支持大文件断点下载.比如下 ...

  4. spring mvc 图片上传,图片压缩、跨域解决、 按天生成文件夹 ,删除,限制为图片代码等相关配置

    spring mvc 图片上传,跨域解决 按天生成文件夹 ,删除,限制为图片代码,等相关配置 fs.root=data/ #fs.root=/home/dev/fs/ #fs.root=D:/fs/ ...

  5. java 附件上传、下载前后端代码

    前言:业务需要:附件上传,需要同时满足浏览器上传,和APP上传附件,并且浏览器端不可使用form表单提交,因为表单提交无法直接获取返回值,除非刷新页面才可显示上传的附件.所以此处使用ajaxfileu ...

  6. 百度编辑器上传大视频报http请求错误怎么办

    百度编辑器UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码,所以受到很多开放人员的青睐.但是有时 ...

  7. Android上传图片到PHP服务器并且支持浏览器上传文件(word、图片、音乐等)

    暑假已经过了一半了,这才完成计划当中的第二个任务.虽然进度是慢了点.但也算是暑假的收获吧.下面我就把我学习当中的收获记录在此. 还是跟以往一样,先上图片. 操作的步骤:打开程序---->选择上传 ...

  8. IE浏览器上传文件时本地路径变成”C:\fakepath\”的问题【转】

    转自:http://www.iefans.net/ie-shangchuan-bendi-lujing-fakepath/ 在使用<input id="file_upl" t ...

  9. uploadify上传文件Firefox浏览器上传失败解决方法

    近期做文件上传使用到了uploadify 可是出现了各种奇葩的问题.并且针对各个不同浏览器问题不同 在Firefox中.非常坑爹的是.每次上传就丢失session值,可是我的系统在登录.保存文件文件夹 ...

随机推荐

  1. mysql mapper中增删查改

    //1.增 public int insert(Port port) ; //2.删 public int deleteM(String id);//3.改 public int update(Por ...

  2. Appium学习路-安装篇

    比较好的文章:http://www.15yan.com/story/4GbuTwXQKDU/ 官网资料:http://appium.io/slate/cn/v1.2.0/?python#appium ...

  3. ubuntu安装谷歌拼音输入法

    在这篇教程中,我将告诉你如何在ubuntu系统上安装谷歌拼音输入法.谷歌拼音输入法有基于ibus框架的,也有基于fcitx框架的.我只演示fcitx框架下谷歌拼音输入法的安装,因为ibus框架的谷歌拼 ...

  4. Python globals() 函数

    Python globals() 函数  Python 内置函数 描述 globals() 函数会以字典类型返回当前位置的全部全局变量. 语法 globals() 函数语法: globals() 参数 ...

  5. Petya and Array (权值线段树+逆序对)

    Petya and Array http://codeforces.com/problemset/problem/1042/D time limit per test 2 seconds memory ...

  6. 【校招面试 之 C/C++】第17题 C 中的malloc相关

    1.malloc (1)原型:extern void *malloc(unsigned int num_bytes); 头文件:#include <malloc.h> 或 #include ...

  7. python笔记之循环控制

    学习python的第一个例子,while循环中嵌套if-else语句,一个猜年龄的例子 #案例1,实现循环猜年龄 # my_age = 12 # while True: # guess_age1 = ...

  8. ubuntu 操作系统的目录结构

    Ubuntu 系统的目录众多,并且 Ubuntu 系统是不分 C 盘.D 盘等的,但是所有的目录都是在/目录下面的. 一./:根目录,是所有目录的绝对路径的起始点,Ubuntu 中的所有文件和目录都在 ...

  9. Macbook pro睡眠状态恢复后没声音的解决办法

    杀招: sudo killall coreaudiod macos会自动重启进程,恢复声音

  10. mysql 版本bug

    mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by 在mysql 工具 搜索或者插入数据时报下面错误: ERR ...