{
"info": {
"author": "Thomas Aglassinger",
"author_email": "roskakori@users.sourceforge.net",
"bugtrack_url": null,
"classifiers": [
"Development Status :: 5 - Production/Stable",
"Environment :: Console",
"Intended Audience :: Developers",
"License :: OSI Approved :: BSD License",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 2.5",
"Programming Language :: Python :: 2.6",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development :: Version Control :: RCS"
],
"description": "rcs4cvs2svn prepares an RCS project for processing with cvs2svn.\r\n\r\nrcs4cvs2svn is useful for developers who still have ancient source code\r\nfloating around in RCS repositories and want to move it to a modern SCM system.\r\n\r\nWhile rcs4cvs2svn does not provide any possibility to directly migrate to any\r\nother SCM system, it creates a copy of your RCS repository that can be\r\nprocessed by `cvs2svn `_.\r\n\r\nThat way, you'll end up with a Subversion repository, which already may be\r\nsufficient. Alternatively, Subversion offers a sound base for further migration\r\nto another SCM such as Git or Mercurial, as most SCM vendors provide tools to\r\nmigrate from SVN but not from RCS.\r\n\r\n(You can of course use rcs4cvs2svn as replacement for various rcs2cvs scripts\r\nfloating around. Unlike many of these scripts, rcs4cvs2svn can process\r\nfilenames with space characters and handles any errors it encounters.)\r\n\r\n\r\nUsage\r\n=====\r\n\r\nUsage is simple::\r\n\r\n $ python rcs4cvs2svn.py /path/to/rcs/project /path/to/cvs/repository\r\n\r\nThere are a couple of options, for more information run::\r\n\r\n $ python rcs4cvs2svn.py --help\r\n\r\n\r\nTutorial\r\n========\r\n\r\nThis section describes how to migrate an RCS repository to\r\nCVS and then to Subversion.\r\n\r\nFirst, create a simple RCS repository for a project called \"hello\" which\r\ncontains a single file, \"hello.txt\" with 2 revisions::\r\n\r\n $ mkdir -p hello/RCS\r\n $ cd hello\r\n $ echo \"hello world!\" >hello.txt\r\n $ echo \"Added greetings.\\n.\" | ci -u hello.txt\r\n $ co -l hello.txt\r\n $ echo \"hello space!\" >>hello.txt\r\n $ echo \"Added more greetings.\\n.\" | ci -u hello.txt\r\n\r\nNow migrate the the RCS repository to CVS::\r\n\r\n $ python rcs4cvs2svn.py hello/ /tmp/hello_cvs/\r\n\r\nThe output should be::\r\n\r\n INFO:rcs4cvs2svn:create new CVS repository at \"/tmp/hello_cvs/\"\r\n INFO:rcs4cvs2svn:migrated 1 files from \"hello/\" to \"/tmp/hello_cvs/\"\r\n\r\nBecause CVS still is a very dated way to manage a software project, let's move\r\non to the next step of evolution: Subversion. You will need ``cvs2svn``,\r\navailable from .\r\n\r\nWhile there are several ways to convert CVS to SVN, the easiest for our task is\r\nto simple create a SVN dumpfile containing the CVS as trunk::\r\n\r\n $ cvs2svn --trunk-only --dumpfile hello.dump /tmp/hello_cvs/\r\n\r\nNow you can create a SVN repository and load the trunk into it::\r\n\r\n $ svnadmin create /tmp/hello_svn/\r\n $ svnadmin load /tmp/hello_svn/ `_.\r\n\r\n\r\nSource code\r\n===========\r\n\r\nThe source code is available from .\r\n\r\n\r\nVersion information\r\n===================\r\n\r\n**Version 1.2, 2011-10-26**\r\n\r\n* Fixed logging which could cause issues with file names containing non ASCII\r\n characters or percent signs (%).\r\n* Improved handling of CVS target folder, which can now be a relative folder\r\n even though ``csv init`` expects an absolute folder.\r\n* Improved API: Added ``rcs4cvs2svn.main()``, which can be called from Python\r\n similar to the command line.\r\n* Changed test shell scripts to proper unit test.\r\n* Cleaned up PEP8 issues.\r\n\r\n**Version 1.1, 2010-07-06**\r\n\r\n* Added automatic creation of CVS repository in case the target path does\r\n not already contain a ``CVSROOT`` folder. In order for this to work, the\r\n ``cvs`` command line client has to be installed.\r\n* Fixed protection bits in CVS which were copied from RCS and did make the\r\n files write protected (which was not an issue for converting to SVN but\r\n forced the user to remove the CVS for repeated conversion).\r\n* Cleaned up API. Simply ``import rcs4cvs2svn`` and call\r\n ``initCvsRepository()`` and ``convertRcsToCvs()`` as needed.\r\n\r\n**Version 1.0, 2010-07-04**\r\n\r\n* Initial public release.\r\n\r\n**Version 0.9, 2006-05-01**\r\n\r\n* Initial internal version used to convert some of my own projects.",
"description_content_type": null,
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://pypi.python.org/pypi/rcs4cvs2svn/",
"keywords": "rcs cvs svn convert migrate import",
"license": "BSD License",
"maintainer": "",
"maintainer_email": "",
"name": "rcs4cvs2svn",
"package_url": "https://pypi.org/project/rcs4cvs2svn/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/rcs4cvs2svn/",
"project_urls": {
"Homepage": "http://pypi.python.org/pypi/rcs4cvs2svn/"
},
"release_url": "https://pypi.org/project/rcs4cvs2svn/1.2/",
"requires_dist": null,
"requires_python": null,
"summary": "prepare RCS project for processing with cvs2svn",
"version": "1.2"
},
"last_serial": 1401209,
"releases": {
"1.0": [
{
"comment_text": "",
"digests": {
"md5": "6f83ae102e87418cf3512e92dd93640d",
"sha256": "932b20cb49f2d035ce825784abd4f009e4e2ad0234537455954601eb1892d723"
},
"downloads": -1,
"filename": "rcs4cvs2svn-1.0.zip",
"has_sig": false,
"md5_digest": "6f83ae102e87418cf3512e92dd93640d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6060,
"upload_time": "2010-07-04T22:34:47",
"url": "https://files.pythonhosted.org/packages/ec/0f/b8e13a04f346cc5291beda57e352362ad39400d9fa0c047ffb627f4b5d8f/rcs4cvs2svn-1.0.zip"
}
],
"1.1": [
{
"comment_text": "",
"digests": {
"md5": "6f6dc7d0aede8af32900abf1a78f013f",
"sha256": "fb893ddb6d3c98e256a4656884b3417ec904767bbd7900a8c5f64122498e513f"
},
"downloads": -1,
"filename": "rcs4cvs2svn-1.1.zip",
"has_sig": false,
"md5_digest": "6f6dc7d0aede8af32900abf1a78f013f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6748,
"upload_time": "2010-07-06T20:44:13",
"url": "https://files.pythonhosted.org/packages/12/88/12198bb64f91ad7c48da0d34f052bd9d3bc098f59731467a9c44ddc1a948/rcs4cvs2svn-1.1.zip"
}
],
"1.2": [
{
"comment_text": "",
"digests": {
"md5": "f6ee9777b3c3c0c0b84b9091e8070db4",
"sha256": "35416ca67e3938c74a6cf696fe334e1cfb71dd0d49df1819a8d71c78028a7e24"
},
"downloads": -1,
"filename": "rcs4cvs2svn-1.2.zip",
"has_sig": false,
"md5_digest": "f6ee9777b3c3c0c0b84b9091e8070db4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9138,
"upload_time": "2011-10-26T20:10:46",
"url": "https://files.pythonhosted.org/packages/f1/6b/d89c1ccc0a8af71899084c2a86e42a549b05d3341141869d27de18df05e6/rcs4cvs2svn-1.2.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "f6ee9777b3c3c0c0b84b9091e8070db4",
"sha256": "35416ca67e3938c74a6cf696fe334e1cfb71dd0d49df1819a8d71c78028a7e24"
},
"downloads": -1,
"filename": "rcs4cvs2svn-1.2.zip",
"has_sig": false,
"md5_digest": "f6ee9777b3c3c0c0b84b9091e8070db4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9138,
"upload_time": "2011-10-26T20:10:46",
"url": "https://files.pythonhosted.org/packages/f1/6b/d89c1ccc0a8af71899084c2a86e42a549b05d3341141869d27de18df05e6/rcs4cvs2svn-1.2.zip"
}
]
}