/// <summary>
        /// Отложенный конструктор, логика подготовки
        /// </summary>
        protected override void InternalInitialize(string[] arguments)
        {
            base.InternalInitialize(arguments);
            var projdesc = new BSharpProjectDescriptor();

            projdesc.AutoSetup();
            if (RepositoryDirectory == "auto")
            {
                RepositoryDirectory = projdesc.RepositoryDirectory;
                if (ProjectDirectory == "auto")
                {
                    ProjectDirectory = projdesc.ProjectDirectory;
                }
            }
            if (string.IsNullOrWhiteSpace(CheckoutDirectory))
            {
                CheckoutDirectory = Path.Combine(Path.GetTempPath(), ".xdiffupd", DateTime.Now.ToString("yyyyMMddHHmmss"));
            }
            if (string.IsNullOrWhiteSpace(Connection))
            {
                if (string.IsNullOrWhiteSpace(Database))
                {
                    Database = "temp";
                }
                Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True;Application Name=xdbu",
                                           Server, Database);
            }
        }
        public void CanAutomaticallyDetectRepositoryAndDirectory()
        {
            var projdir = Path.Combine(dir, "root/rep/dir/proj").NormalizePath();
            var gitdir  = Path.Combine(dir, "root/rep/.git").NormalizePath();
            var repodir = Path.Combine(dir, "root/rep").NormalizePath();

            Directory.CreateDirectory(projdir);
            Directory.CreateDirectory(gitdir);
            var projdesc = new BSharpProjectDescriptor();

            projdesc.AutoSetup(projdir);
            Assert.AreEqual(repodir, projdesc.RepositoryDirectory.NormalizePath());
            Assert.AreEqual("./dir/proj/", projdesc.ProjectDirectory.NormalizePath());
        }