Показаны сообщения с ярлыком TFS 2012. Показать все сообщения
Показаны сообщения с ярлыком TFS 2012. Показать все сообщения

среда, 18 декабря 2013 г.

Разрастание кэша TFS на сервере

У вас на сервере TFS могут возникать проблемы с местом из-за разрастания кэша TFS, который хранится в папке:
  • TFS 2012 - C:\Program Files\Microsoft Team Foundation Server 11.0\Application Tier\Web Services\_tfs_data
  • TFS 2013 - C:\Program Files\Microsoft Team Foundation Server 12.0\Application Tier\Web Services\_tfs_data
Для того, чтобы кэш не разрастался больше фиксированного объёма, необходимо сконфигурировать файл web.config (для TFS 2013 находится в папке C:\Program Files\Microsoft Team Foundation Server 12.0\Application Tier\Web Services).

Внесите в раздел <appSettings> элемент:
 <add key="FixedSizeBasedPolicy" value="NNN" /> 
где NNN - количество мегабайт, больше которого кэш не должен разрастаться.

Например, если вы хотите, чтобы кэш не разрастался более 500 Мб, у вас должно быть:
...
<appSettings>
...
 <add key="FixedSizeBasedPolicy" value="500" /> 
...
</appSettings>


пятница, 20 сентября 2013 г.

TFS 2012: Права доступа уровня проекта

Разрешения уровня проекта применяются к пользователям и группам отдельного проекта. Чтобы настроить эти разрешения, выберите проект в Team Explorer, выберите меню Параметры, а затем выберите Безопасность, либо откройте Team Web Access в режиме администрирования, перейдите к уровню проекта, а затем выберите вкладку Безопасность. Данные разрешения также можно настроить с помощью служебной программы командной строки TFSSecurity.





  • Создать запуск тестов (Create test runs)
  • Пользователи с данным разрешением могут добавлять и удалять результаты тестов, а также добавлять или изменять тестовые запуски для командного проекта.
    TFSSecurity: PUBLISH_TEST_RESULTS
  • Удалить проект (Delete team project)
  • Пользователи с данным разрешением могут удалять проект, для которого у них есть данное разрешение из Team Foundation Server.
    TFSSecurity: DELETE
  • Удалить запуск тестов (Delete test runs)
  • Пользователи, имеющие это разрешение, могут удалять запланированные тесты для данного командного проекта.
    TFSSecurity: DELETE_TEST_RESULTS
  • Редактировать информацию уровня проекта (Edit project-level information)
  • Пользователи с данным разрешением могут изменять разрешения на уровне проекта для пользователей и групп в Team Foundation Server.
    TFSSecurity: GENERIC_WRITE
  • Управление конфигурациями тестов (Manage test configurations)
  • Пользователи, имеющие это разрешение, могут создавать и удалять конфигурации тестов для данного командного проекта.
    TFSSecurity: MANAGE_TEST_CONFIGURATIONS
  • Управление тестовой средой (Manage test environments)
  • Пользователи, имеющие это разрешение, могут создавать и удалять тестовые среды для данного командного проекта.
    TFSSecurity: MANAGE_TEST_ENVIRONMENTS
  • Просмотр информации уровня проекта (View project-level information)
  • Пользователи с данным разрешением могут просматривать участников групп уровня проекта, а также разрешения данных пользователей проекта.
    TFSSecurity: GENERIC_READ
  • Просмотр запусков тестов (View test runs)
  • Обладающие этим разрешением пользователи могут просматривать планы тестирования в этом узле.
    TFSSecurity: VIEW_TEST_RESULTS

четверг, 11 апреля 2013 г.

Мониторинг действий пользователей в TFS

В TFS 2012 появилась функциональность по мониторингу действий пользователей. Чтобы просмотреть эти данные, необходимо открыть Url http://ИмяСервераTFS:8080/tfs/_oi


Мониторинг пользователей

Мониторинг заданий


Раньше для мониторинга пользователей требовалось просматривать таблицу tbl_Command.


среда, 6 марта 2013 г.

Необходимые знания и навыки для сдачи экзамена MS 70-496

Составил и отобразил в наглядной форме все скиллы, необходимые для сдачи экзамена 70-496 Administering Visual Studio Team Foundation Server 2012. Делал для себя, для сдачи экзамена, но возможно кому-то ещё пригодится.




четверг, 17 января 2013 г.

Настройка прогнозирования (Forecasting) в бэклоге TFS 2012

Настройка прогнозирования в бэклоге настраивается в конфиге CommonConfiguration.xml. В разделе TypeFields задаётся поле с типом "Effort".

  <TypeFields>
     ...
    <TypeField refname="Microsoft.VSTS.Scheduling.Size" type="Effort" />
    <TypeField refname="Microsoft.VSTS.Common.Discipline" type="Activity" />
    <TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
     ...
  </TypeFields>

Вы можете указать здесь другое поле для Forecasting.


понедельник, 14 января 2013 г.

Выгрузка конфигов (Categories, AgileProcessConfig, CommonConfiguration) с помощью PowerShell

cls
cd 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE'

# Указать путь к папке, куда будут выгружаться и откуда загружаться конфиги
$fld='C:\Temp'

# Указать Uri TFS коллекции
$srv='http://tfs:8080/tfs/CollectionName'

# Указать имена проектов (может быть один)
$projects=@('TFSProject1','TFSProject2')

if (!(Test-Path $fld)){
new-item -type directory -path $fld
}
    write-host '[0] - Выгрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'
    write-host '-------------------------'
    write-host '[1] - Выгрузка Categories'
    write-host '[2] - Выгрузка AgileProcessConfig'
    write-host '[3] - Выгрузка CommonConfiguration'  
    write-host '-------------------------'
    write-host '[5] - Загрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'  
    write-host '-------------------------'
    write-host '[6] - Загрузка Categories'
    write-host '[7] - Загрузка AgileProcessConfig'
    write-host '[8] - Загрузка CommonConfiguration'      
    $action = read-host "Выберите действие: "

# Выгрузка шаблонов
foreach ($p in $projects)
{
    write-host ' '
    write-host '---------- '            
    write-host 'Проект ' -nonewline
    write-host $p -nonewline -foregroundcolor Red
    write-host '... '
    write-host ' '      

    if ($action -eq '0')
    {    
        write-host 'Выгрузка Categories ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
        write-host 'Выгрузка AgileProcessConfig ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
        write-host 'Выгрузка CommonConfiguration ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
    }
    elseif ($action -eq '1')
    {    
        write-host 'Выгрузка Categories ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
    }
    elseif  ($action -eq '2')
    {
        write-host 'Выгрузка AgileProcessConfig ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
    }
    elseif  ($action -eq '3')
    {
        write-host 'Выгрузка CommonConfiguration ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
       
    }
    elseif  ($action -eq '5')
    {
        write-host 'Загрузка Categories ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
        write-host 'Загрузка AgileProcessConfig ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"                  
        write-host 'Загрузка CommonConfiguration ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host  ': ' -nonewline
        .\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"      
    }  
   
    elseif  ($action -eq '6')
    {
        write-host 'Загрузка Categories ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
    }
    elseif  ($action -eq '7')
    {
        write-host 'Загрузка AgileProcessConfig ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host ': ' -nonewline
        .\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"                  
    }
    elseif  ($action -eq '8')
    {
        write-host 'Загрузка CommonConfiguration ' -nonewline
        write-host ' ' -nonewline -foregroundcolor Red
        write-host  ': ' -nonewline
        .\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"
    }      
}

суббота, 12 января 2013 г.

Просмотр списка проектов в коллекции с помощью PowerShell

Cls

# Здесь указать Uri к TFS коллекции

$srv='http://tfs:8080/tfs/CollectionName' 

$Assem = ( 

    "Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" , 
    "Microsoft.TeamFoundation.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"          
    ) 

$Source = @" 

using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Server;
using Microsoft.TeamFoundation.Common;
using System.Text;


namespace LP

{ 
    public class Program  
    {
        public Program()     
        {
        }
     
        public void Get(string url) 
        { 
            TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri (url));
            ICommonStructureService css = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));
            
            List<string> list = new List<string>();

            foreach (ProjectInfo projectInfo in css.ListAllProjects())

            {              
                list.Add(projectInfo.Name);                
            }

            list.Sort();

            
                foreach (string value in list)
                {
                    //Console.Write("'");                                        
                    Console.WriteLine(value);
                    //Console.Write("',");

                }                                      

        }          
    } 
} 
"@

Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp  


$LT = New-Object LP.Program

$LT.Get($srv)