// LogCommand.cs
// Copyright (C) 2002 Mike Krueger
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
// As a special exception, if you link this library with other files to
// produce an executable, this library does not by itself cause the
// resulting executable to be covered by the GNU General Public License.
// This exception does not however invalidate any other reasons why the
// executable file might be covered by the GNU General Public License.
using System;
using CVS.Requests;
using CVS.Misc;
namespace CVS.Commands{
public class LogCommand : ICommand
{
WorkingDirectory workingdirectory;
string directory;
Entry entry;
bool defaultBranch = false;
bool headerAndDescOnly = false;
bool headerOnly = false;
bool noTags = false;
public bool DefaultBranch {
get {
return defaultBranch;
}
set {
defaultBranch = value;
}
}
public bool HeaderAndDescOnly {
get {
return headerAndDescOnly;
}
set {
headerAndDescOnly = value;
}
}
public bool HeaderOnly {
get {
return headerOnly;
}
set {
headerOnly = value;
}
}
public bool NoTags {
get {
return noTags;
}
set {
noTags = value;
}
}
public LogCommand(WorkingDirectory workingdirectory, string directory, Entry entry)
{
this.workingdirectory = workingdirectory;
this.directory = directory;
this.entry = entry;
}
/* original log :
C: Case
C: Argument SharpDevelop
C: Directory .
C: /cvsroot/sharpdevelop
C: expand-modules
S: MODULE EXPANSION OK
C: Directory .
C: /u/cvsroot/supermunger
C: Entry /mungeall.c/1.1///
C: co
*/
public void Execute(CVSServerConnection connection)
{
connection.SubmitRequest(new DirectoryRequest(".", workingdirectory.CvsRoot.CvsRepository + directory));
if (defaultBranch) {
connection.SubmitRequest(new ArgumentRequest("-b"));
}
if (headerAndDescOnly) {
connection.SubmitRequest(new ArgumentRequest("-t"));
}
if (headerOnly) {
connection.SubmitRequest(new ArgumentRequest("-h"));
}
if (noTags) {
connection.SubmitRequest(new ArgumentRequest("-N"));
}
connection.SubmitRequest(new ArgumentRequest(entry.Name));
connection.SubmitRequest(new LogRequest());
}
}
}
|