2004-08-30  dissent

	* libcvs/Perl/Makefile.PL [1.11]

	Make comment more informative.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.15]

	Further break the parsing of the Root into two more cases.  One where
	it starts with ':', and one where it doesn't.  The previous revision
	was broken on "fire:/var/cvs".

2004-08-30  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.11]

	Generate output with newest entries at the top, in the traditional
	ChangeLog order.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Command.pm [1.11]

	In get_messages() use a default regexp that matches blank lines.  This
	way log messages are properly formatted.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.30]
	* libcvs/Perl/VCS/LibCVS/Command.pm [1.10]
	* libcvs/Perl/VCS/LibCVS/Repository.pm [1.17]

	Make Client->_test_support_multiple_commands() work in repositories
	where lock files can't be created in the root, by doing the test in a
	different directory.
	
	Client.pm: add routine testing_dir() to set the directory, and do the
	test in that directory.
	
	Repository.pm: Pass the testing_dir() through to Client.
	
	Command.pm: Choose a directory to do the test in, and provide it when
	creating the connection.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.14]

	Minor parsing correction.  The hostname is also optional, for example
	for :fork: and :local: connection types.  The cases are distinguished
	by a leading :.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Command.pm [1.9]

	Correct internal documentation.  Local* classes were replaced by
	Working* classes.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.13]

	Rewrite of CVS Root parsing.
	It didn't handle cases where the protocol wasn't specified, like
	fire:/var/cvs and the perverse fire/var/cvs.

2004-08-30  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.23]
	* libcvs/Perl/VCS/LibCVS/Admin.pm [1.16]
	* libcvs/Perl/VCS/LibCVS/Datum.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.22]
	* libcvs/Perl/VCS/LibCVS/RepositoryDirectory.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/RepositoryFileOrDirectory.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/WorkingDirectory.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/WorkingUnmanagedFile.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.18]
	* libcvs/Perl/VCS/LibCVS/Client/Request.pm [1.21]
	* libcvs/Perl/VCS/LibCVS/Client/Response.pm [1.25]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.14]
	* libcvs/Perl/VCS/LibCVS/Datum/Entry.pm [1.17]
	* libcvs/Perl/VCS/LibCVS/Datum/FileContents.pm [1.9]
	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/Client/LoggingIOHandle.pm [1.3]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Ext.pm [1.5]

	Add Copyright 2004 where missing

2004-08-30  dissent

	* libcvs/Perl/.cvsignore [1.3]

	Ignore ChangeLogs

2004-08-27  dissent

	* libcvs/Perl/VCS/LibCVS/WorkingFile.pm [1.12]

	Update error message search for change in CVS 1.12.*.  It used to say
	"cvs server", now it says "cvs log".

2004-08-27  dissent

	* libcvs/Perl/Makefile.PL [1.10]

	Remove the leading ./ from MANIFEST entries, because they were
	breaking ExtUtils::Manifest.

2004-08-27  dissent

	* libcvs/Perl/Makefile.PL [1.9]

	Rewrite the rule for making MANIFEST.  It didn't work on OpenBSD,
	since the find there didn't have a -regex option.  The new one isn't
	quite the same as the old one, but I think it's still ok.

2004-08-27  dissent

	* libcvs/Perl/README [1.6]

	Mention lcvs-logsummary, and lcvs-st in the DESCRIPTION section.

2004-08-26  dissent

	* libcvs/Perl/COPYING [1.2]
	* libcvs/Perl/Makefile.PL [1.8]
	* libcvs/Perl/README [1.5]
	* libcvs/Perl/VCS/Makefile.PL [1.3]
	* libcvs/Perl/VCS/LibCVS/Command.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/DirectoryBranch.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/FileSticky.pm [1.4]
	* libcvs/Perl/VCS/LibCVS/IgnoreChecker.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Sticky.pm [1.4]
	* libcvs/Perl/VCS/LibCVS/WorkingFileOrDirectory.pm [1.4]
	* libcvs/Perl/VCS/LibCVS/Client/Request/Argument.pm [1.10]
	* libcvs/Perl/VCS/LibCVS/Client/Request/Requests.pm [1.21]
	* libcvs/Perl/VCS/LibCVS/Client/Response/FileUpdateModifyingResponses.pm [1.9]
	* libcvs/Perl/VCS/LibCVS/Client/Response/FileUpdatingResponses.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/Client/Response/Responses.pm [1.14]
	* libcvs/Perl/VCS/LibCVS/Datum/DirectoryName.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Datum/FileMode.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/Datum/FileName.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Datum/PathName.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Datum/String.pm [1.6]
	* libcvs/Perl/VCS/LibCVS/Datum/TagSpec.pm [1.9]
	* libcvs/Perl/VCS/LibCVS/Datum/Time.pm [1.7]
	* libcvs/Perl/examples/Makefile.PL [1.4]
	* libcvs/Perl/examples/lcvs-example [1.3]
	* libcvs/Perl/examples/lcvs-version [1.2]
	* libcvs/Perl/examples/t/lcvs-st.t [1.9]
	* libcvs/Perl/examples/t/lcvs-st.t-setup.sh [1.6]

	Add Copyright 2004 where missing

2004-08-26  dissent

	* libcvs/Perl/Makefile.PL [1.7]
	* libcvs/Perl/README [1.4]
	* libcvs/Perl/VCS/Makefile.PL [1.2]
	* libcvs/Perl/examples/Makefile.PL [1.3]
	* libcvs/Perl/examples/t/lcvs-st.t-setup.sh [1.5]

	Add missing copyright notices

2004-08-25  dissent

	* libcvs/Perl/README [1.3]

	Updates for release 1.0001

2004-08-24  dissent

	* libcvs/Perl/Makefile.PL [1.6]

	Add a target to generate a ChangeLog based on the current version number.

2004-08-24  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.10]

	Gracefully handle the error case where there's no file with both tags.
	Exit with a message.

2004-08-24  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.22]

	Increment version number for upcoming release

2004-08-23  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.9]

	Correct the indentation for multiline log messages.

2004-08-23  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/LogMessage.pm [1.5]

	Put back the line break between lines of the log message.
	I guess it is stripped when it is read from the stream.  It's good to strip and
	replace it, since it will make it correct for the platform.

2004-08-23  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.11]

	Update get_branch to handle trunk branches as scalars, and as Branch objects.
	
	add new function _make_FileBranch_Trunk(), which is used in the above cases,
	and also in get_branches().

2004-08-23  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.8]

	Change output format to more closely resemble GNU ChangeLog format.

2004-08-23  dissent

	* libcvs/Perl/Makefile.PL [1.5]

	Add more exectuables to the build.

2004-08-23  dissent

	* libcvs/Perl/VCS/LibCVS/Admin.pm [1.15]

	Make get_Repository always return a relative directory name, even it it's
	specified absolute in the the file.

2004-08-22  dissent

	* libcvs/Perl/VCS/LibCVS/Admin.pm [1.14]

	Handle an Entries file with missing directories.
	The D alone on a line indicates that directories haven't been specified in the
	directory, so look for them manually.

2004-08-22  dissent

	* libcvs/Perl/examples/lcvs-st [1.27]

	Take advantage of the new RepositoryDirectory->get_file() routine.

2004-08-22  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryDirectory.pm [1.7]

	Add get_file().

2004-08-19  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.21]
	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.21]

	Update the date parsing code.
	  + Parse the new output, including UTC offset, new in the 1.12 series of cvs.
	  + Move the time parsing code out of FileRevision.pm into a utility function
	    in LibCVS.pm.

2004-08-10  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.7]

	Generate formatted output.
	
	add mlog() method to log messages to STDERR.  Use it for all of the
	informational messages and warnings.

2004-08-10  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.6]

	Remove Improvements and Bugs list, since they are all solved.

2004-08-10  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/RevisionNumber.pm [1.14]

	Use correct function name as_string() not to_string().

2004-08-10  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.20]

	Use correct routine name on RevisionNumber, first_revision_of() not
	get_first_revision().

2004-08-10  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.5]

	Process deferred files.
	
	Modify args of internal func add_entry.
	Minor changes to output.

2004-08-09  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.4]

	Add tracking of approximate times of tags.

2004-08-09  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.19]

	Fix get_successor().  Look up the successor revision using a string, not a
	RevisionNumber object.

2004-08-09  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.3]

	Put the @branches in the correct order.

2004-08-08  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.2]

	Major update to the way it works.  Before it traversed the list once to
	determine branches, and then a second time to process actual log messages.
	Now, it traverses the list once, and defers processing of objects without both
	tags by saving them to a list.  This list can then be processed later when all
	the available branch information is determined.
	
	This approach has the added advantage that branch information from all files
	can be used to build the branch map without significant additional overhead,
	meaning that the processing of files without tags should be more effective.
	
	The implementation is still not complete.

2004-08-08  dissent

	* libcvs/Perl/VCS/LibCVS/FileBranch.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.18]
	* libcvs/Perl/VCS/LibCVS/Datum/RevisionNumber.pm [1.13]

	Add several routines to FileBranch, FileRevision and Datum::RevisionNumber for
	branch traversal.  These routines are rather interconnected.
	
	FileBranch:
	  + get_first_revision()
	  + get_revision($time)
	  + precedes()
	
	FileRevision:
	  + get_successor()
	    This required an additional private variable, BranchNumber, which is used
	    internally to track which branch the revision is on, so the right successor
	    can be returned at branch points.
	
	Datum::RevisionNumber:
	  + first_revision_of()
	    For branches only.
	  + get_successor()
	    Doesn't support branch memory like FileRevision.
	  + extension to compare()
	    It can now return two additional values for comparing branches, where there
	    may be an ancestral relationship, but it can't be determined.

2004-08-08  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.10]

	Make get_branch() accept a Branch as an argument.

2004-08-08  dissent

	* libcvs/Perl/VCS/LibCVS/Branch.pm [1.2]

	Add equals()

2004-08-07  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.17]

	Add is_dead() to determine if this revision is dead.

2004-08-04  dissent

	* libcvs/Perl/examples/lcvs-logsummary [1.1]

	It's not complete yet, but there's enough code to warrant having it under version control

2004-08-04  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.16]

	rename get_time() to get_time_string(), and define a new get_time()
	that returns seconds since the epoch

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.15]
	* libcvs/Perl/VCS/LibCVS/Datum/RevisionNumber.pm [1.12]

	Add get_predecessor to FileRevision, and RevisionNumber.
	In RevisionNumber, adjust the use of _subrevision to be useful in this case.
	
	In both cases, I decided to just return undef if there's no such revision,
	rather than throwing an exception.  This is a bit easier to manage, because it
	saves writing a "has_predecessor()" routine.  But I'm concerned about its
	consistency with the rest of the library.

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.9]

	Correct use of TagSpec, it's member is called Name, not Tag.

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.8]

	Include .TRUNK in return of get_branches().
	Update get_branch() to take a branch name or branch revision number.
	Update perldoc.

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.20]
	* libcvs/Perl/VCS/LibCVS/FileBranch.pm [1.10]
	* libcvs/Perl/VCS/LibCVS/Branch.pm [1.1]

	Add the Branch class.
	This is returned by the new FileBranch->get_branch().

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS/FileBranch.pm [1.9]

	Add is_trunk(), get_parent(), and equals().
	These were inspired by lcvs-logsummary.

2004-08-03  dissent

	* libcvs/Perl/examples/lcvs-st [1.26]

	Change locally-modified (and modified) output to include NMU files.
	(Files not registered with CVS.)

2004-08-03  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.14]

	add get_file_branch()

2004-07-31  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFileOrDirectory.pm [1.10]

	Update find() to check in the cache before creating new objects.
	
	This is necessary because if RepositoryFile->new() finds a directory in the
	cache, it craps out.  It's also more efficient.

2004-07-31  dissent

	* libcvs/Perl/examples/lcvs-st [1.25]

	Update Copyright notice

2004-05-31  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.7]

	Add get_tag() and get_branch() and change get_tags() and get_branches()
	to share code with the new routines.

2004-05-31  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryDirectory.pm [1.6]

	make $options optional n get_files()

2004-05-31  dissent

	* libcvs/Perl/VCS/LibCVS/Repository.pm [1.16]
	* libcvs/Perl/VCS/LibCVS/RepositoryFileOrDirectory.pm [1.9]

	add equals()

2004-05-31  dissent

	* libcvs/Perl/VCS/LibCVS/FileRevision.pm [1.13]

	Add functions: get_time(), compare(), equals()

2004-05-18  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFileOrDirectory.pm [1.8]

	Add the class method find(), which will return an instance of either of the
	subclasses: RepositoryFile or RepositoryDirectory.  Remove the documentation of
	new(), since it shouldn't be called on this class.

2004-05-18  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.6]

	Handle the case where a RepositoryFile object is constructed with the name of a
	directory.
	
	If there's an empty log, then it's a directory so throw an exception from
	_load_log_messages().  If an exception occurs during construction, remove the
	object from the Cache stored in the Repository.

2004-05-18  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryDirectory.pm [1.5]

	Add a Recursive option to get_files()

2004-05-18  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Request/ArgumentUsingRequests.pm [1.15]

	add rlog Request

2004-05-15  dissent

	* libcvs/Perl/examples/lcvs-st [1.24]

	Add Client::DEBUG_OPTIONS to level 4 debugging

2004-05-15  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.17]

	Add comment about private variable Root, and an accessor

2004-05-15  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.29]

	Add DEBUG_OPTIONS, to print out debugging information about option values in
	the Client.  Print a line saying whether or not connections are being used for
	multiple commands.

2004-05-12  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.28]

	Add code to check if a connection can support multiple commands.
	
	  + Add the private variable SingleCommand which is true when each connection
	    can only handle a single command.
	
	  + Add a routine _test_support_multiple_commands() which checks for multiple
	    command support and sets SingleCommand appropriately.
	
	  + Update connect() to call _test_support_multiple_commands().
	
	  + Update submit_request() to close and reopen the connection after a command,
	    if the connection can only handle one command.
	
	  + Move a bunch of code from connect() to a routine _real_connect() which is
	    shared.

2004-05-12  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.13]

	reap the child process

2004-05-12  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Request/ArgumentUsingRequests.pm [1.14]

	Add rdiff

2004-05-12  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.19]

	More docs

2004-05-12  dissent

	* libcvs/Perl/VCS/LibCVS/Repository.pm [1.15]
	* libcvs/Perl/VCS/LibCVS/WorkingDirectory.pm [1.7]
	* libcvs/Perl/VCS/LibCVS/WorkingUnmanagedFile.pm [1.5]

	Cache IgnoreChecker objects in the Repository.
	They are accessed using the new get_ignoreChecker() routine
	on the repository.
	This resolves Issue #48

2004-05-09  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/LogMessage.pm [1.4]

	Update comments

2004-04-30  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Response.pm [1.24]

	Make read_from_ioh non-recursive
	
	This corrects issue #55, which gave deep recursion warnings when doing cvs log
	operations on files with long logs.
	
	It also gives a bit of a performance boost.

2004-04-30  dissent

	* libcvs/Perl/VCS/LibCVS/FileBranch.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/WorkingFile.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/Datum/RevisionNumber.pm [1.11]

	Change terminology when comparing revisions:
	
	  COMPARE_LESS    -> COMPARE_ANCESTOR
	  COMPARE_GREATER -> COMPARE_DESCENDANT
	
	* WorkingFile.pm
	* FileBranch.pm
	
	Just the terminology change.
	
	* RevisionNumber.pm
	
	In addition to the terminology change, clarify many of the comments, and change
	some of the older code to use the newer _depth() and equals() routines.

2004-04-29  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Response.pm [1.23]

	Fix comments

2004-04-29  dissent

	* libcvs/Perl/examples/lcvs-st [1.23]

	add new Pserver config options

2004-04-27  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.18]

	Update the auth function comments to indicate that there is now only one
	pserver authentication routine loaded by default.

2004-04-27  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection/CvsPass.pm [1.2]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Pserver.pm [1.5]

	
	Update of the Pserver authentication functions, to support prompting and
	password storing.
	
	  CvsPass
	
	Split out the passfile name code from new() into a routine get_passfilename().
	Don't throw an error if the pass file doesn't exist.
	
	Add store_password() (and append()) which appends a password to the pass file.
	
	  Pserver
	
	Major update to the authentication routines.
	
	Now there is only one routine for this connection type, auth_cvspass().  It is
	loaded automatically.  Three configuration parameters are added for
	auth_cvspass(): Search_CvsPass, Prompt and Store_CvsPass.  The routine itself
	is documented in the code.
	
	Addition of pserver password scrambling code, as a routine pserver_scramble()
	and a table copied from the cvsclient docs.

2004-03-21  dissent

	* libcvs/Perl/examples/lcvs-get [1.1]

	To get a specific revision

2004-03-21  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryFile.pm [1.5]

	Support the new StickyRevision in get_revision()

2004-03-21  dissent

	* libcvs/Perl/VCS/LibCVS/StickyTag.pm [1.5]

	fix example code

2004-03-21  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.17]
	* libcvs/Perl/VCS/LibCVS/StickyRevision.pm [1.1]

	Add StickyRevision

2004-01-29  dissent

	* libcvs/Perl/VCS/LibCVS.pm [1.16]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Pserver.pm [1.4]

	Add authentication callbacks for the connection methods.
	New LibCVS list variable to hold the callbacks.
	New Pserver cvspass auth routine, which is pushed onto the callback list.
	Change Pserver connection to call the callbacks.

2004-01-17  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection/Pserver.pm [1.3]

	Better error messages

2004-01-17  dissent

	* libcvs/Perl/examples/lcvs-st [1.22]

	Add support for printing debug information to a file
	create debug_out function to check debug level,
	and direct output to the right file

2004-01-17  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.27]

	add $DebugOut variable for specifying a debug log file

2004-01-17  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection/Pserver.pm [1.2]

	handle failed Pserver connection

2004-01-17  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.16]
	* libcvs/Perl/VCS/LibCVS/Client/LoggingIOHandle.pm [1.2]

	Support logging to files
	Support empty prefix
	Update some comments

2004-01-06  dissent

	* libcvs/Perl/VCS/LibCVS/Admin.pm [1.13]

	Use catpath properly, report an error if file won't open

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.26]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/CvsPass.pm [1.1]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Pserver.pm [1.1]

	Add Pserver support.  It's got some issues, but the basics are there.

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.11]

	Don't include the : in the port

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Admin.pm [1.12]

	Use catpath, not hardcoded "/"

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.25]
	* libcvs/Perl/VCS/LibCVS/Datum.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.15]
	* libcvs/Perl/VCS/LibCVS/Client/Request.pm [1.20]
	* libcvs/Perl/VCS/LibCVS/Client/Response.pm [1.22]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/Datum/FileContents.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/Client/LoggingFileHandle.pm [1.9]
	* libcvs/Perl/VCS/LibCVS/Client/LoggingIOHandle.pm [1.1]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Ext.pm [1.4]

	Major change to use IO::Handle instead of ::FileHandle for connections.  This
	is needed for pserver, since sockets are not ::FileHandles.  It comprises the
	following changes:
	
	Update names from ::FileHandle to IO::Handle and from fh to ioh, both in code
	and in comments.
	
	Replace LoggingFileHandle with LoggingIOHandle.  Change it so that it wraps an
	existing IO::Handle, and calls it, rather than depending on SUPER for
	unimplemented methods.  This change in method is required by Socket, since they
	aren't created using existing handles like IPC::Open2 are.
	
	Change Client::Connection->connect() paradigm.  Now, there's a new superclass
	routine, connect_fin(), called after the subclass is done with connect(), which
	handles the creation of LoggingIOHandles if required.  The members ToServer and
	FromServer are no longer accessed by subclasses.  Subclasses are now
	responsible for closing their own filehandles.
	
	Change to Datum to use IO::Handle internally too.

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.10]

	Parse port in the root also

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection/Ext.pm [1.3]

	handle the case where no UserName is specified

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/WorkingFile.pm [1.10]

	Change get_revision_number() to handle the fact that a freshly imported and
	checked out file will have a revision number of 1.1.1.1 in the Entries file,
	when it actually behaves like revision 1.1.
	
	Change get_file_branch():
	  + use get_revision_number()
	  + update comments
	  + don't assume that all non-trunk cases will have a tag
	  + return an unnamed branch if no named branch could be found
	
	Update error message in get_rstate()

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.9]

	Username is optional in the Root specification

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/RevisionNumber.pm [1.10]

	add is_import_branch()

2004-01-04  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Entry.pm [1.16]

	Don't crap out if there's no tag

2003-11-09  dissent

	* libcvs/Perl/examples/lcvs-st [1.21]

	Add debugging level option

2003-10-26  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.14]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Ext.pm [1.2]

	Adjust constructor in Connection.pm so that it can be inherited and
	remove constructors from Connection/Ext.pm and Connection/Local.pm.

2003-10-26  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.13]

	I was encountering a closing down problem that generated the following error
	message:
	
	  (in cleanup) Can't call method "close" on an undefined value at
	  /home/dissent/prj/libcvs/Perl/VCS/LibCVS/Client/Connection.pm line 161 during
	  global destruction.
	
	The line was:
	
	  $self->{ToServer}->close();
	
	I suspect that it had already destroyed the filehandle, so that there was no
	sense in closing it.  (Hopefully it's not some other more obscure problem.)
	Anyway, here are the changes I made to deal with it:
	
	+ Make connect() and disconnect() check their state before doing anything.
	+ Change destroy() to close the FileHandles itself, rather than calling
	  disconnect.

2003-10-26  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Entry.pm [1.15]

	Fix typo, month 12 should be 11

2003-10-08  dissent

	* libcvs/Perl/examples/lcvs-st [1.20]

	Add forgotten docs from last checkin

2003-10-08  dissent

	* libcvs/Perl/examples/lcvs-st [1.19]

	Add command line argument for non-recursive processing.
	Reorganize some of the argument processing code.

2003-10-08  dissent

	* libcvs/Perl/examples/t/lcvs-st.t [1.8]

	Issue 44
	Remove todo tests, they now work!

2003-10-08  dissent

	* libcvs/Perl/examples/lcvs-st [1.18]

	Issue 44
	Properly handle filenames specified on the command line which don't
	exist on the filesystem.

2003-10-08  dissent

	* libcvs/Perl/VCS/LibCVS/RepositoryDirectory.pm [1.4]

	Add implementation of get_files()

2003-10-05  dissent

	* libcvs/Perl/examples/lcvs-st [1.17]

	Add filter on modified state

2003-10-02  dissent

	* libcvs/Perl/examples/lcvs-st [1.16]

	add recursion

2003-10-02  dissent

	* libcvs/Perl/VCS/LibCVS/WorkingDirectory.pm [1.6]

	add add_directories() routine

2003-10-02  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Entry.pm [1.14]

	add is_directory() routine.

2003-10-02  dissent

	* libcvs/Perl/examples/lcvs-st [1.15]

	Break most of the work of process_directory() into add_working_directory,
	in preparation for adding recursion for directories

2003-10-02  dissent

	* libcvs/Perl/examples/lcvs-st [1.14]

	exit after help

2003-09-28  dissent

	* libcvs/Perl/examples/lcvs-st [1.13]

	update and add several comments

2003-08-27  dissent

	* libcvs/Perl/VCS/LibCVS/Client.pm [1.24]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Ext.pm [1.1]

	Add support for :ext: connections
	Issue 45

2003-08-27  dissent

	* libcvs/Perl/VCS/LibCVS/Datum/Root.pm [1.8]

	make regexp lazy, so it matches properly

2003-08-27  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.12]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.10]

	Move handling of debugging file handles into Connection itself

2003-08-27  dissent

	* libcvs/Perl/VCS/LibCVS/Client/LoggingFileHandle.pm [1.8]

	add comments

2003-08-26  dissent

	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.11]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.9]

	Update docs that should have happened in the last commit

2003-08-26  dissent

	* libcvs/Perl/VCS/LibCVS/Repository.pm [1.14]
	* libcvs/Perl/VCS/LibCVS/Client/Connection.pm [1.10]
	* libcvs/Perl/VCS/LibCVS/Client/Connection/Local.pm [1.8]

	New way of constructing connections.
	Client::Connection
	    + Add a class variable which is a hash table mapping from
	      protocol names to subclases of Connection
	    + Add a constructor which takes a Datum::Root object,
	      looks up the correct subclass for the protocol, and
	      calls the constructor of the subclass
	Client::Connection::Local
	    + Add an initializer which registers this class with Connection
	      for the local and fork protocols.
	    + Add the new parameter for the constructor
	Repository
	    + Remove the stupid code that looks at the protocol and chooses a
	      connection class.
	    + Calkl the new Connection constructor with the root we have

2003-08-26  dissent

	* libcvs/Perl/VCS/LibCVS/Repository.pm [1.13]

	minor internal change

2003-08-24  dissent

	* libcvs/Perl/examples/lcvs-st [1.12]

	update some new feature comments

2003-08-24  dissent

	* libcvs/Perl/examples/lcvs-st [1.11]
	* libcvs/Perl/examples/t/lcvs-st.t [1.7]
	* libcvs/Perl/examples/t/lcvs-st.t-setup.sh [1.4]

	Add support for files that will conflict on merge.
	Add an the extra state to lcvs-st
	Create files with that state in t/lcvs-st.t-setup.sh
	Handle several new test-cases in t/lcvs-st.t

2003-08-24  dissent

	* libcvs/Perl/VCS/LibCVS/WorkingFile.pm [1.9]

	change internal use of _stat() function
	Check that something was returned by stat,
	put more stuff in the shared function

2003-08-11  dissent

	* libcvs/Perl/examples/t/lcvs-st.t-setup.sh [1.3]

	remove unused variables:
	  localRevNumber
	  reposRevNumber

2003-08-04  dissent

	* libcvs/Perl/VCS/LibCVS/Command.pm [1.7]
	* libcvs/Perl/VCS/LibCVS/WorkingFile.pm [1.8]
	* libcvs/Perl/VCS/LibCVS/Datum/Entry.pm [1.13]

	Add reporting of impending conflicts.
	
	WorkingFile.pm:
	  Add constant STATE_WILLCONFLICT
	  Add _will_conflict()
	  Check for conflicts in get_rstate()
	
	Command.pm:
	  Add get_files() to get file transmission responses
	
	Datum/Entry.pm:
	  Add handling for conflicts reported from the server ("+=")
	  Add is_conflict()

2003-07-02  dissent

	* libcvs/Perl/examples/t/lcvs-st.t-setup.sh [1.2]

	use /bin/sh instead of /bin/bash for sun systems

