VersionControl TFS API Получите отложенные элементы программно C#

Мы внедрили TFGet для загрузки последних элементов, предоставления TFS URL,TFS Path и Local Path.

Необходимо внедрить код, чтобы отложить подробности набора полок, если выбран набор полок, при создании в определении сборки.

ItemSet = VcsRef.GetItems(TfsPath, VersionSpec.Latest, RecursionType.Full, DeletedState.NonDeleted, ItemType.File,true); - используя это, чтобы получить список элементов для загрузки файлов / создания папок, если это папка.

Для загрузки подробностей набора полок, используя это,

          PendingSet[] pendingSets = VcsRef.QueryShelvedChanges("tfget", "userid", null, true);

          if (shelvedChanges.Length == 0)
          {
              Console.Error.WriteLine("You don't have permission to any of the files involved.");
              Environment.Exit(1);
          }
          else if (pendingSets.Length > 1)
          {
              Console.Error.WriteLine("More than one shelveset matched.");
              Environment.Exit(1);
          }
          PendingChange[] shelvedChanges = pendingSets[0].PendingChanges;
          if (pendingSets.Length == 0)
          {
              Console.Error.WriteLine("No shelveset matched.");
              Environment.Exit(1);
          }

          foreach (PendingChange shelvedChange in shelvedChanges)
          {
              // We only want files that are being edited, but there's nothing to diff if  
              // the file is guaranteed not to exist at a different version. 
              Console.WriteLine("shelved changes are",shelvedChange.ToString());
              if (shelvedChange.ItemType != ItemType.File ||
                  !shelvedChange.IsEdit || shelvedChange.IsAdd || shelvedChange.IsBranch)
              {
                  continue;
              }

              var relativeNameOnly = shelvedChange.ToString().Remove(0, TfsPath.Length);
              var targetName = Local + relativeNameOnly.Replace("/", @"\");
              //Console.WriteLine("shelvedChange {0} is", shelvedChange);
              shelvedChange.DownloadShelvedFile(targetName);

          }

но я не могу скачать, это правильный подход, это возможно?

1 ответ

Вы можете попробовать REST API, чтобы получить коллекцию мелких ссылок на полки:

Get http://TFS:8080/tfs/DefaultCollection/_apis/tfvc/shelvesets?requestData.includeLinks=true&api-version=3.2-preview
Другие вопросы по тегам