示例#1
0
        /// <summary>
        /// Editando os arquivos pack.info e REVISION.txt de uma tag recém criada.
        /// </summary>
        private bool EditRevisionInfo(TagCommandOptions options, string tagPath, string tagVersion)
        {
            var curDir = Directory.GetCurrentDirectory();
            var tmpDir = PathEx.CreateTempFolder();

            try
            {
                bool ok;

                Directory.SetCurrentDirectory(tmpDir);

                var svn = new Svn();
                svn.User = options.User.Text ?? Svn.DefaultUser;
                svn.Pass = options.Pass.Text ?? Svn.DefaultPass;

                ok = svn.Checkout(tagPath, depth: "empty");
                if (!ok)
                {
                    return(Prompt.PrintCannotContinue());
                }

                //ok = svn.Update("pack.info pack.conf REVISION.txt");
                ok = svn.Update("REVISION.txt");
                if (!ok)
                {
                    return(Prompt.PrintCannotContinue());
                }

                //// editando o pack.info
                //{
                //  var pack = new Library.PackDm.PackDm();
                //  pack.PackConf = "pack.conf";
                //  pack.PackInfo = "pack.info";

                //  ok = pack.Fill();
                //  if (!ok) return Prompt.PrintCannotContinue();

                //  pack.Version = tagVersion;

                //  ok = pack.Save();
                //  if (!ok) return Prompt.PrintCannotContinue();
                //}

                // editando o REVISION.txt
                {
                    File.WriteAllText("REVISION.txt", tagVersion);

                    // garantindo o versionmanto do arquivo caso ainda nao exista
                    svn.Add("REVISION.txt");
                }

                //ok = svn.Commit("pack.info pack.conf REVISION.txt", "Atualizando informação de versão da tag recém criada.");
                ok = svn.Commit("REVISION.txt", "Atualizando informação de versão da tag recém criada.");
                if (!ok)
                {
                    return(Prompt.PrintCannotContinue());
                }

                return(true);
            }
            catch (Exception ex)
            {
                Prompt.PrintFault(ex);
                return(false);
            }
            finally
            {
                Directory.SetCurrentDirectory(curDir);
                try
                {
                    PathEx.DeleteFolder(tmpDir);
                }
                catch
                {
                    // Nada a fazer.
                }
            }
        }