Пример #1
0
        /// <summary>
        /// Process the login command with cvs library API calls.
        /// </summary>
        public void Execute () {
            if (null != this.CvsRoot && this.CvsRoot.TransportProtocol != 
                ICSharpCode.SharpCvsLib.Misc.CvsRoot.ProtocolType.pserver) {
                LOGGER.Debug(string.Format("cvs [login aborted]: The :{0}: protocol does not support the login command",
                    this.CvsRoot.Protocol));
                return;
            }

            CVSServerConnection serverConn = 
                new CVSServerConnection(CurrentWorkingDirectory);
            try {
                serverConn.Connect(CurrentWorkingDirectory, password);
            } catch (ICSharpCode.SharpCvsLib.Exceptions.AuthenticationException) {
                try {
                    this.password = 
                        PServerProtocol.PromptForPassword(this.CvsRoot.ToString());
                    if (this.password == null) {
                        this.password = string.Empty;
                    }
                    Manager manager = new Manager(this.workingDirectory.LocalDirectory);
                    manager.UpdatePassFile(this.password, this.CvsRoot);

                    serverConn.Connect(CurrentWorkingDirectory, password);
                } catch (ICSharpCode.SharpCvsLib.Exceptions.AuthenticationException e) {
                    ConsoleMain.ExitProgram(e.Message);
                }
            }
        }