[Cvsnt] Latest Updates

John Lehmann JLehmann at cgi-australia.com
Thu Apr 11 02:34:25 BST 2002


This is a MIME message. If you are reading this text, you may want to 
consider changing to a mail reader or gateway that understands how to 
properly handle MIME multipart messages.
--

Very briefly tested ;)



John Lehmann
Senior Developer
CGI Information Systems and Management Consultants Pty Ltd
Sydney, NSW, Australia

*** Confidentiality Notice ***
Proprietary/Confidential Information belonging to CGI may be contained in this
message.  If you are not a recipient indicated or intended in this message (or
responsible for delivery of this message to such person), or you think for any
reason that this message may have been addressed to you in error, you may
not use or copy or deliver this message to anyone else. In such case, you
should destroy this message and kindly notify the sender by reply e-mail.

>>> Brian Smith <brian-l-smith at uiowa.edu> 04/11/02 10:22am >>>
Tony Hoyle wrote:
> cvsnt 1.11.1.3 build 57b
>
> Merge a few changes in from the main branch.
> Add support for {} in cvsroot, currently interpreted
> by 'ext' as an override for CVS_RSH - eg:
>     :ext:{ssh}foo at bar:/usr/local/cvs
> Version stuff.

This is very cool. It would be cool if somebody could write a script or
(to be bundled with CVSNT) or a new cvs client command that can
"migrate" all the Repository files from one root to another. examples:
     cvsroot_update :ext:(ssh)foo at bar:/usr/local/cvs
          Old Repository file contents: :ext:foo at bar:/usr/local/cvs
          New Repository file contents: :ext:(ssh)foo at bar:/usr/local/cvs
or  cvs root :sspi:bar:/usr/local/cvs
          Old Repository file contents: :ntserver:bar:/usr/local/cvs
          New Repository file contents: :sspi:bar:/usr/local/cvs

Unfortunately, I cannot volunteer to do this because I've been too busy :(

- Brian

_______________________________________________
Cvsnt mailing list
Cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt
--
"""

"migrate" all the Repository files from one root to another. examples:
     cvsroot_update :ext:(ssh)foo at bar:/usr/local/cvs
          Old Repository file contents: :ext:foo at bar:/usr/local/cvs
          New Repository file contents: :ext:(ssh)foo at bar:/usr/local/cvs
or  cvs root :sspi:bar:/usr/local/cvs
          Old Repository file contents: :ntserver:bar:/usr/local/cvs
          New Repository file contents: :sspi:bar:/usr/local/cvs

Copyright (C) 2002 John Lehmann


This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 2, 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 Lesser General Public License for more details.

"""
import sys, os, string

USAGE = """
%s -m <newcvsroot> targetdir

"migrate" all the Repository files in the target directory from one root to another.
"""%(sys.argv[0])

def migrate_repository(targetdir, newcvsroot):

	def migratefunc(data, directory, files):
		if os.path.split(directory)[1] == "CVS":
			if "Root" in files:
				p = os.path.join(directory, "Root")
				open(p, 'w').write(data['newcvsroot'])
				data['count'] = data['count'] + 1

	if not os.path.isdir( targetdir ):
		print USAGE
		print "Directory %s not found."%(targetdir)
		return

	data = {}
	data['newcvsroot'] = newcvsroot + "\n"
	data['count'] = 0
	os.path.walk( targetdir, migratefunc, data )
	print "Repository changed to %s in %d directories"%(newcvsroot, data['count'])

def main():
	args = sys.argv
	opt = args[1]
	if opt == "-m":
		if len(args) == 4:
			newroot = args[2]
			tgt = args[3]
			return migrate_repository(tgt, newroot)

	print USAGE

if __name__ == "__main__":
	main()
_______________________________________________
Cvsnt mailing list
Cvsnt at cvsnt.org
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt



More information about the cvsnt mailing list