По "правилам игры" TFS, чтобы переименовать однажды созданное поле или изменить способ его включения в отчетность, нужно:
- Обладать правами администратора сервера: прав администратора группового проекта, в котором проводятся изменения шаблона рабочего элемента, недостаточно;
- Использовать специальный инструмент командной строки witfields. Обратите внимание - в форумах MSDN вы можете встретить упоминания о том, что этот инструмент устарел (deprecated) и вместо него нужно использовать witadmin. С выходом Rosario это, скорее всего, действительно будет так, но пока witfields вполне актуален.
На практике же, возьмусь утверждать, редко кто будет возиться с командной строкой, если в распоряжении есть Process Template Editor, входящий в Team Foundation Power Tools (для TFS 2008 рекомендую TFPT March 2008 Release). А с этим инструментом возможна вот какая интересная коллизия:
- Вы работаете над шаблоном рабочего элемента локально (т.е. не импортируете его в TFS);
- В этом шаблоне вы переопределяете способ включения в отчетность для одного из уже существующих в TFS полей;
- Закончив основную работу над шаблоном, вы импортируете его в TFS и получаете совершенно замечательное сообщение об ошибке:
You do not have permission to modify this field.
Информативно, не правда ли?
Не зная, что пункт №2 требует привилегий администратора TFS, можно долго гадать о том, какие же права нужны и какое именно поле приводит к ошибке. Тут, при всей своей про-Microsoft направленности, однозначно могу сказать: команде разработчиков TFPT - "низачот".
На самом же деле происходит следующее: TFPT совершенно не возражает против изменения типа отчетности для уже существующих полей при локальном редактировании шаблона (но, что странно, если вы откроете шаблон с сервера, поменять тип отчетности не удастся). Само по себе это логично, раз уж TFPT, как оказывается, умеет корректно обрабатывать эту ситуацию и "в фоне" производить аналогичные witfields действия при импорте. Но, если вы производите импорт шаблона, не обладая правами администратора TFS, то получите вышеупомянутое "дружественное" сообщение об ошибке.
На мой взгляд, раз уж такая полезная возможность предусмотрена, то было бы очень полезно добавить ее продуманную поддержку в пользовательский интерфейс Process Template Editor - как минимум:
- Выдавать предупреждение при попытке изменить тип отчетности для существующего поля с объяснением необходимых для этого прав и глобальности последствий (тип отчетности распространяется на все рабочие элементы во всех групповых проектах, ссылающиеся на поле);
- При недостаточных полномочиях выдавать дружественное сообщение об ошибке с объяснением ситуации и списком приводящих к ошибке полей;
- Разрешить изменение типа отчетности для полей в шаблонах рабочих элементов, открытых с сервера при соблюдении пунктов №1 и №2.