/// <summary> /// replace paths to a folder and its meta file, with a wildcard path that TFS will resolve to all of that folders children one level deep /// </summary> /// <param name="assets"></param> public static void ReplaceFolderPathsWithChildrenWildcard(List <string> assets) { foreach (var item in assets.ToArray()) { if (IsFolder(item)) { assets.Remove(item); assets.Remove(TfsTask.GetMeta(item)); assets.Add(item + "*"); } } }
public bool Run(TfsTask task, BaseFileSetRequest req, BaseFileSetResponse <BaseFileSetRequest> resp) { bool recursive = req.Args.Count > 1 && req.Args[1] == "recursive"; bool offline = req.Args.Count > 2 && req.Args[2] == "offline"; if (req.Assets.Count <= BatchSize) { task.GetStatus(req.Assets, resp.Assets, recursive, !offline); } else { List <Task> tasks = new List <Task>(); List <BaseFileSetResponse <BaseFileSetRequest> > responses = new List <BaseFileSetResponse <BaseFileSetRequest> >(); int pages = (req.Assets.Count / BatchSize); if (req.Assets.Count % BatchSize != 0) { pages += 1; } for (int i = 0; i < pages; i++) { var batchedRequest = new BaseFileSetRequest(); batchedRequest.Conn = req.Conn; batchedRequest.Args = req.Args; batchedRequest.Assets.AddRange(req.Assets.Skip(i * BatchSize).Take(BatchSize)); var batchedResponse = new BaseFileSetResponse <BaseFileSetRequest>(batchedRequest); responses.Add(batchedResponse); tasks.Add(Task.Run(() => { task.GetStatus(batchedRequest.Assets, batchedResponse.Assets, recursive, !offline); })); } Task.WaitAll(tasks.ToArray()); foreach (var item in responses) { resp.Assets.AddRange(item.Assets); } } resp.Write(); return(true); }
public static bool Dispatch(Connection conn, TfsTask session, UnityCommand cmd, CommandArgs args) { conn.LogInfo(args[0] + "::Run()"); var timer = new Stopwatch(); timer.Start(); try { switch (cmd) { case UnityCommand.UCOM_Config: return(RunCommand <TfsConfigCommand, ConfigRequest, ConfigResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Add: return(RunCommand <TfsAddCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Move: return(RunCommand <TfsMoveCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_ChangeMove: return(RunCommand <TfsMoveChangelistCommand, MoveChangelistRequest, MoveChangelistResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Delete: return(RunCommand <TfsDeleteCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_GetLatest: return(RunCommand <TfsGetLatestCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Resolve: return(RunCommand <TfsResolveCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Lock: return(RunCommand <TfsLockCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Unlock: return(RunCommand <TfsUnlockCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Revert: return(RunCommand <TfsRevertCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_RevertChanges: return(RunCommand <TfsRevertChangesCommand, RevertChangesRequest, RevertChangesResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Submit: return(RunCommand <TfsSubmitCommand, SubmitRequest, SubmitResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Download: return(RunCommand <TfsDownloadCommand, DownloadRequest, DownloadResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_ChangeDescription: return(RunCommand <TfsChangeDescriptionCommand, ChangeDescriptionRequest, ChangeDescriptionResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Status: return(RunCommand <TfsStatusCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Incoming: return(RunCommand <TfsIncomingCommand, IncomingRequest, IncomingResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_IncomingChangeAssets: return(RunCommand <TfsIncomingAssetsCommand, IncomingAssetsRequest, IncomingAssetsResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Changes: return(RunCommand <TfsOutgoingCommand, OutgoingRequest, OutgoingResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_ChangeStatus: return(RunCommand <TfsChangeStatusCommand, OutgoingAssetsRequest, OutgoingAssetsResponse, TfsTask>(conn, session, args)); case UnityCommand.UCOM_Checkout: return(RunCommand <TfsCheckoutCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); case UnityCommand.UCOM_FileMode: return(RunCommand <TfsFileModeCommand, BaseFileSetRequest, BaseFileSetResponse <BaseFileSetRequest>, TfsTask>(conn, session, args)); default: break; } } finally { conn.LogDebug("\n------------ " + timer.Elapsed.ToString() + " --------------\n", false); } return(false); }
static int Run() { TfsTask task = new TfsTask(null, null, string.Empty); return(task.Run()); }