{ "info": { "author": "Markus Zapke-Gr\u00fcndemann", "author_email": "markus@keimlink.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Version Control" ], "description": "##################\nimportfs extension\n##################\n\nImports a set of files from a given file-system into a `Mercurial`_\nrepository as a changeset.\n\nThe development of this extension was paid for by `Lantiq`_. It was\nwritten and released as Open Source by `Markus Zapke-Gr\u00fcndemann`_.\n\nRepository: https://bitbucket.org/keimlink/hg-importfs\n\nIssue tracker: https://bitbucket.org/keimlink/hg-importfs/issues\n\nPython Package Index: http://pypi.python.org/pypi/hg-importfs\n\nMercurial wiki: http://mercurial.selenic.com/wiki/ImportfsExtension\n\nInstallation\n============\n\nIt is assumed that you **already have Mercurial installed**. If not,\nplease do so first either by `downloading`_ and installing the\nappropriate package for your operating system or by using `pip`_::\n\n $ pip install Mercurial\n\nAs a Python package\n-------------------\n\nThe easiest way is to install the importfs extension is to use `pip`_::\n\n $ pip install hg-importfs\n\nUsing easy_install instead of pip is also possible::\n\n $ easy_install hg-importfs\n\nNow add the extension to the extensions section in your\n``.hgrc``/``mercurial.ini`` file::\n\n [extensions]\n importfs =\n\nAs a Mercurial repository\n-------------------------\n\nInstead of installing the Python package you can also clone the repository::\n\n $ hg clone https://bitbucket.org/keimlink/hg-importfs\n\nTo activate the extension you have to add the full path to\n``importfs.py`` to your ``.hgrc``/``mercurial.ini`` file::\n\n [extensions]\n importfs = /path/to/hg-importfs/importfs.py\n\nUsage\n=====\n\nAfter installing the extension you can use the following command to show\nthe full help including all options::\n\n $ hg help importfs\n\nExample\n=======\n\nAssuming you have a project on your file system which has different\nversions in different directories. Maybe because you never used a\nversion control system (VCS) for your project. Or maybe because there is\nno convert extension available for the VCS you are using. In our\nscenario the three versions of the project look like this::\n\n .\n \u251c\u2500\u2500 myproject-v1\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 LICENSE\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 README\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 doc\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 index.rst\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 start.rst\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 widgets.rst\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 src\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 cmdutils.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 dispatcher.py\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 widgets.py\n \u251c\u2500\u2500 myproject-v2\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 LICENSE\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 README\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 doc\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 index.rst\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 start.rst\n \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 widgets.rst\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 src\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 cmdutils.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 dispatcher.py\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 resources.py\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 widgets.py\n \u2514\u2500\u2500 myproject-v3\n \u251c\u2500\u2500 LICENSE\n \u251c\u2500\u2500 README\n \u251c\u2500\u2500 doc\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 index.rst\n \u2502\u00a0\u00a0 \u251c\u2500\u2500 start.rst\n \u2502\u00a0\u00a0 \u2514\u2500\u2500 widgets.rst\n \u2514\u2500\u2500 src\n \u251c\u2500\u2500 dispatcher.py\n \u251c\u2500\u2500 resources.py\n \u2514\u2500\u2500 widgets.py\n\nRun the following command to import the first version of the project\ninto a Mercurial repository ``myrepo``. The repository does not exist so\nit will be created for you::\n\n $ hg importfs myrepo myproject-v1\n created repository myrepo\n 0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n adding LICENSE\n adding README\n adding doc/index.rst\n adding doc/start.rst\n adding doc/widgets.rst\n adding src/cmdutils.py\n adding src/dispatcher.py\n adding src/widgets.py\n\nNow you have a repository with one changeset. This changeset contains\nall your files from ``myproject-v1``.\n\n::\n\n $ hg log -R myrepo\n changeset: 0:60304fa41a49\n tag: tip\n user: Markus Zapke-Gr\u00fcndemann \n date: Tue Jul 10 10:19:10 2012 +0200\n summary: importfs commit.\n\nAs you can see importfs created a commit message for you because you\ndidn't specify one for the first import.\n\nThe second import will put all the files from ``myproject-v2`` as a new\nchangeset on top of changeset 0. And this time we want to use our own\ncommit message and tag the changeset::\n\n $ hg importfs myrepo myproject-v2 -m \"Second import.\" -t second_import\n 8 files updated, 0 files merged, 0 files removed, 0 files unresolved\n adding src/resources.py\n\nNow there are two new changesets::\n\n $ hg log -R myrepo\n changeset: 2:c8ff824da6c8\n tag: tip\n user: Markus Zapke-Gr\u00fcndemann \n date: Tue Jul 10 10:27:10 2012 +0200\n summary: Added tag second_import for changeset 825c9a9356fd\n\n changeset: 1:825c9a9356fd\n tag: second_import\n user: Markus Zapke-Gr\u00fcndemann \n date: Tue Jul 10 10:27:10 2012 +0200\n summary: Second import.\n\n changeset: 0:60304fa41a49\n user: Markus Zapke-Gr\u00fcndemann \n date: Tue Jul 10 10:19:10 2012 +0200\n summary: importfs commit.\n\nLet's import the last version of the project into a new branch with\nchangeset 0 as parent::\n\n $ hg importfs myrepo myproject-v3 -m \"Third import.\" -t third_import -b branch_2 -r 0\n 8 files updated, 0 files merged, 1 files removed, 0 files unresolved\n marked working directory as branch branch_2\n (branches are permanent and global, did you want a bookmark?)\n removing src/cmdutils.py\n adding src/resources.py\n\nThe repository history looks now like this::\n\n $ hg glog -R myrepo\n @ changeset: 4:3ec5adb0448e\n | branch: branch_2\n | tag: tip\n | user: Markus Zapke-Gr\u00fcndemann \n | date: Tue Jul 10 10:32:32 2012 +0200\n | summary: Added tag third_import for changeset bfcf48ac159e\n |\n o changeset: 3:bfcf48ac159e\n | branch: branch_2\n | tag: third_import\n | parent: 0:60304fa41a49\n | user: Markus Zapke-Gr\u00fcndemann \n | date: Tue Jul 10 10:32:32 2012 +0200\n | summary: Third import.\n |\n | o changeset: 2:c8ff824da6c8\n | | user: Markus Zapke-Gr\u00fcndemann \n | | date: Tue Jul 10 10:27:10 2012 +0200\n | | summary: Added tag second_import for changeset 825c9a9356fd\n | |\n | o changeset: 1:825c9a9356fd\n |/ tag: second_import\n | user: Markus Zapke-Gr\u00fcndemann \n | date: Tue Jul 10 10:27:10 2012 +0200\n | summary: Second import.\n |\n o changeset: 0:60304fa41a49\n user: Markus Zapke-Gr\u00fcndemann \n date: Tue Jul 10 10:19:10 2012 +0200\n summary: importfs commit.\n\nHow to set up a development environment\n=======================================\n\nIf you havn't created a clone of the importfs repository yet it's time\nto do it now::\n\n $ hg clone https://bitbucket.org/keimlink/hg-importfs\n\nSetup a virtualenv\n------------------\n\nThe best way to do the development is to use a virtualenv_. So first\ncreate one using virtualenvwrapper_::\n\n $ mkvirtualenv --distribute hg-importfs\n\nThen install all packages needed for development into the virtualenv\nusing pip_::\n\n (hg-importfs)$ cd hg-importfs\n (hg-importfs)$ pip install -r requirements.txt\n\nYou also need a clone of the hg repository::\n\n (hg-importfs)$ cd ..\n (hg-importfs)$ hg clone http://selenic.com/repo/hg\n\nUpdate to your desired version (if you don't want to use *tip*) and\nbuild for local use::\n\n (hg-importfs)$ cd hg\n (hg-importfs)$ hg up VERSION\n (hg-importfs)$ make local\n\nAfter creating the clone create a few symlinks in your importfs repository::\n\n (hg-importfs)$ cd ../hg-importfs\n (hg-importfs)$ ln -s ../hg/contrib/pylintrc\n (hg-importfs)$ ln -s ../hg/tests/hghave\n (hg-importfs)$ ln -s ../hg/tests/run-tests.py\n\nFinally add the hg directory to your virtualenv::\n\n (hg-importfs)$ add2virtualenv ../hg\n\nRun the tests\n-------------\n\nTo run all tests you can now execute the following command::\n\n (hg-importfs)$ ./run-tests.py -l\n\nCreate a new source distribution package\n----------------------------------------\n\nA new Python source distribution package can be created using this command::\n\n (hg-importfs)$ python setup.py sdist\n\n.. _Mercurial: http://mercurial.selenic.com/\n.. _Lantiq: http://www.lantiq.com/\n.. _Markus Zapke-Gr\u00fcndemann: http://www.keimlink.de/\n.. _downloading: http://mercurial.selenic.com/downloads/\n.. _pip: http://www.pip-installer.org/\n.. _virtualenv: http://pypi.python.org/pypi/virtualenv\n.. _virtualenvwrapper: http://pypi.python.org/pypi/virtualenvwrapper\n\nChangelog\n=========\n\n1.3.2\n-----\n\n- Tested with 2.2.3, 2.3, 2.3.1, 2.3.2, 2.4\n- Updated documentation\n- Added links to issue tracker\n\n1.3.1\n-----\n\n- Improved installation instructions\n\n1.3.0\n-----\n\n- Changed package name to hg-importfs (as initially intended)\n\n1.2.3\n-----\n\n- Changelog appears now at the of package description\n- Added repository and PyPI urls to README\n\n1.2.2\n-----\n\n- Removed reStructuredText header from CHANGELOG.rst\n\n1.2.1\n-----\n\n- Updated README to render as reStructuredText on PyPI\n\n1.2.0\n-----\n\n- First Open Source release!\n- Added testedwith variable\n- Test suite works now with Mercurial 2.2.x\n- Added installation instructions and example to README\n- Moved development information to README\n\n1.1.0\n-----\n\n- Symlinks are no longer dereferenced on Linux (but still dereferenced on\n Windows).\n- If the path of a symlink on Linux contains backward slashes (i.e. the link\n was intended for Windows), the slashes are converted to forward slashes and\n the link is dereferenced.\n- Renamed --exclude option to --exclude-pattern.\n- Added new option --exclude-path to exclude a path relative to SOURCE.\n- Added new option --retain-empty-dirs to import empty directories.\n- The update operation inside the repository is using the --clean option.\n- The repository is purged before each update/commit because there can be files\n without write permissions and Mercurial fails to update them.\n\n1.0.1\n-----\n\n- Write warnings on ignored copy errors to stdout instead of stderr.\n- Using a slash as new exclude pattern separator.\n\n1.0\n---\n\n- Added new options exclude and ignore-copy-errors.\n\n0.9\n---\n\n- Allow to create anonymous branches.\n\n0.8.1\n-----\n\n- Fixed the problem with wrong permissons of single files in the root of the\n repo on Windows.\n\n0.8\n---\n\n- Changed filesystem operations to be OS independent. Extension can now be used on Windows.\n- SOURCE can now be a list of directories.\n\n0.7.1\n-----\n\n- Fixed the version number (which was still 0.6 for the 0.7 release).\n\n0.7\n---\n\n- Removed the \"dereference\" option.\n\n0.6\n---\n\n- Fixed missing updates. The repository wasn't always at the lastest revision\n when doing the import.\n- Added new option \"dereference\" to follow symlinks.\n- Updated package classifiers.\n- Added this Changelog.\n- Added long_description to package metadata.\n\n0.5.1\n-----\n\n- Removed importfs.py from MANIFEST.in.\n\n0.5\n---\n\n- Initial release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/keimlink/hg-importfs", "keywords": null, "license": "GNU GPLv2+", "maintainer": null, "maintainer_email": null, "name": "hg-importfs", "package_url": "https://pypi.org/project/hg-importfs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/hg-importfs/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/keimlink/hg-importfs" }, "release_url": "https://pypi.org/project/hg-importfs/1.3.2/", "requires_dist": null, "requires_python": null, "summary": "import a set of files from a file-system into a repository", "version": "1.3.2" }, "last_serial": 792904, "releases": { "1.3.0": [ { "comment_text": "", "digests": { "md5": "f1c537e8c420e1a399b85f95096061af", "sha256": "b18fabfb02247d9961f01f6fc5cd3b4647f9f65e7483aadce41c0f8e82318727" }, "downloads": -1, "filename": "hg-importfs-1.3.0.tar.gz", "has_sig": false, "md5_digest": "f1c537e8c420e1a399b85f95096061af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16748, "upload_time": "2012-07-12T22:47:21", "url": "https://files.pythonhosted.org/packages/49/51/d4493aafd04752c77696f3bd1da236bdcb61f7aa517d7d8c407be0928683/hg-importfs-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "e4827b89a4f13f6131cebbdbfd48d6d3", "sha256": "204dcfa36ef3d5c8030d3923eea5ea5340c363d331aa1bd48ea322a0880f5350" }, "downloads": -1, "filename": "hg-importfs-1.3.1.tar.gz", "has_sig": false, "md5_digest": "e4827b89a4f13f6131cebbdbfd48d6d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16893, "upload_time": "2012-07-12T23:01:51", "url": "https://files.pythonhosted.org/packages/af/70/3ae30a62c93536a7bf1d9efc2afa56343d9d683d706aa06937827066e294/hg-importfs-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "054335d32095e3169e908247ce8ca719", "sha256": "ce06426d4981c78e8b0585ca7c2aff9de3bcb7a4b142f7756b05dea658274426" }, "downloads": -1, "filename": "hg-importfs-1.3.2.tar.gz", "has_sig": false, "md5_digest": "054335d32095e3169e908247ce8ca719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17044, "upload_time": "2012-12-03T20:22:30", "url": "https://files.pythonhosted.org/packages/a5/96/c9e3c64e57b052fb35702aa3837894cb3116da6c2c545537d2bfdf1ec5a7/hg-importfs-1.3.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "054335d32095e3169e908247ce8ca719", "sha256": "ce06426d4981c78e8b0585ca7c2aff9de3bcb7a4b142f7756b05dea658274426" }, "downloads": -1, "filename": "hg-importfs-1.3.2.tar.gz", "has_sig": false, "md5_digest": "054335d32095e3169e908247ce8ca719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17044, "upload_time": "2012-12-03T20:22:30", "url": "https://files.pythonhosted.org/packages/a5/96/c9e3c64e57b052fb35702aa3837894cb3116da6c2c545537d2bfdf1ec5a7/hg-importfs-1.3.2.tar.gz" } ] }