Esempio n. 1
0
 /// <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 + "*");
         }
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        static int Run()
        {
            TfsTask task = new TfsTask(null, null, string.Empty);

            return(task.Run());
        }