2008-11-06 2 views
2

Когда я щелкнул правой кнопкой мыши решение в VS2008 и выберите «Проверить ...», мне предоставляется список измененных файлов с флажками и областью комментариев. (Это делается в отношении TFS.)Список файлов с отложенными изменениями в VS2008/TFS в буфер обмена

Для регистрации в нашем журнале требуется, чтобы мы ввели этот список измененных файлов в билет отслеживания ошибок. Это требует ввода имени каждого файла: отнимающего много времени и подверженного ошибкам.

В идеале я хотел бы иметь возможность выбрать этот список и скопировать его в буфер обмена, чтобы я мог вставить его в систему отслеживания ошибок.

У кого-нибудь есть способ, которым я могу легко получить этот список в буфер обмена?

ответ

2

Я использую SnagIt для таких вещей, это действительно замечательное приложение. Они имеют несвободные версии и бесплатную версию (инструкции here). Я не знаю, как я жил без него, честно.

Среди его возможностей - возможность очистить текст от окна (например, вид папки проводника Windows), который, вероятно, удовлетворит ваши потребности.

1

Почему вы не делаете скриншот (alt + Prnt Scrn) диалогового окна проверки и загружаете изображение в систему отслеживания ошибок?

+0

Я подумал об этом и был искушен, но это было исключено - спасибо за идею. – Guy 2008-11-06 18:10:53

2

Я не знаю стандартного способа, как это сделать. Но вы можете создать инструмент для этого.

  string strServer = startInfo.Server; 
      string strWorkspace = startInfo.Workspace; 

      Microsoft.TeamFoundation.Client.TeamFoundationServer tfsServer = null; 
      if (false == string.IsNullOrEmpty(strServer)) { 
       tfsServer = new Microsoft.TeamFoundation.Client.TeamFoundationServer(startInfo.Server); 
       tfsServer.Authenticate(); 
      } 

      Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer vcServer = null; 
      if (tfsServer != null) { 
       object obj = tfsServer.GetService(typeof(Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer)); 
       vcServer = obj as Microsoft.TeamFoundation.VersionControl.Client.VersionControlServer; 
      } 

      Microsoft.TeamFoundation.VersionControl.Client.Workspace workspace = null; 
      if (tfsServer != null && vcServer != null && false == string.IsNullOrEmpty(strWorkspace)) { 
       workspace = vcServer.GetWorkspace(strWorkspace, tfsServer.AuthenticatedUserName); 
      } 

      List<string> pendingItems = new List<string>(); 
      foreach (Microsoft.TeamFoundation.VersionControl.Client.WorkingFolder folder in workspace.Folders) { 
       pendingItems.Add(folder.ServerItem); 
      } 

      List<string> localFilePaths = new List<string>(); 
      string userName = tfsServer.AuthenticatedUserIdentity.AccountName; 
      Microsoft.TeamFoundation.VersionControl.Client.PendingSet[] pendingSets = workspace.QueryPendingSets(pendingItems.ToArray(), Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full, null, userName, false); 
      foreach (Microsoft.TeamFoundation.VersionControl.Client.PendingSet ps in pendingSets) { 
       foreach (Microsoft.TeamFoundation.VersionControl.Client.PendingChange change in ps.PendingChanges) { 
        localFilePaths.Add(change.LocalItem); 
       } 
      } 
2

Очевидно, что большое преимущество вашей организация будет иметь, если они переместили систему отслеживания ошибки к TFS тогда, когда вы проверяете в файлах можно связать, что регистрация заезда с рабочим элементом (ошибка, задача и т. д.), и ассоциация будет заботиться о вас. Это также позволит много отчетов и т. Д. И т. Д. - все хорошее.

+0

Я думаю, что причина, по которой мы этого не сделали, состоит в том, что существует ряд проектов, основанных на других технологиях (PHP и т. Д.), Которые не используют TFS, но должны использовать систему отслеживания ошибок. – Guy 2008-11-07 19:53:57

2

Если ваша компания установила инструмент доступа питания Web для TFS, то вы можете просто вставить URL в вашу систему отслеживания ошибок, которая связывает назад к регистрации.

Это будет выглядеть так ...

http://mytfs:8090/cs.aspx?cs=1234

экономит время и имеет очень мало шансов на ошибку.

Ta.

Стив Портер

1

В VS 2010 выбрать все файлы, а затем нажмите CTRL+C, чтобы скопировать данные файла в буфер обмена.