{ "info": { "author": "Marco Pantaleoni", "author_email": "m.pantaleoni@softwarefabrica.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "Intended Audience :: System Administrators", "License :: OSI Approved :: GNU General Public License (GPL)", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Topic :: Software Development", "Topic :: Software Development :: Version Control", "Topic :: Utilities" ], "description": "BzrSync - Bazaar repository/branch synchronization tool\n=======================================================\n\nBzrSync is a tool to help a developer using Bazaar on multiple machines.\nIt automatically keeps selected repositories and branches synchronized across\nthe machines. Bazaar itself is used for the synchronization (with \"bzr pull\"),\nensuring consistency at all times.\n\nFeatures\n--------\n\n- any number of machines are supported\n\n- consistency is guaranteed at all times\n\nInstallation\n------------\n\nTo install the latest stable version of BzrSync, using pip_:\n\n::\n\n pip install bzrsync\n\nor using setuptools_:\n\n::\n\n easy_install bzrsync\n\nOtherwise, if neither pip_ nor setuptools_ are available, it is possible\nto download (eg. from PyPI_) the `source`_ package, extract it and run the\nusual ``setup.py`` commands:\n\n::\n\n python setup.py install\n\n.. _pip: http://pypi.python.org/pypi/pip\n.. _setuptools: http://pypi.python.org/pypi/setuptools\n.. _EasyInstall: http://peak.telecommunity.com/DevCenter/EasyInstall\n.. _PyPI: http://pypi.python.org/pypi\n.. _`source`: http://pypi.python.org/pypi/bzrsync\n\n\nUsage\n-----\n\nLet's suppose you work from three different workstations, and their hostnames\nare `alpha`, `beta` and `gamma`. You want to keep your Bazaar repositories and\nbranches synchronized between all three nodes using BzrSync.\nBzrSync is meant to be used with shared repositories, so if you are not\nusing these, you should re-organize your branches to use shared repositories.\nIt's easier to keep all the repositories inside the same directory.\nIn our example our repositories will reside in ~/bzr and their names will\nend in \".bzr\".\nIn each shared repository, at the top level there should be a directory for\neach node. In our case `alpha`, `beta` and `gamma`.\nFor example, let's imagine we have a repository named \"project-foo.bzr\".\nWe are working on `alpha`, and have created a `trunk` and a `feature-1` branch.\nWe'll have:\n\n::\n\n ~/bzr/project-foo.bzr/\n ~/bzr/project-foo.bzr/alpha\n ~/bzr/project-foo.bzr/alpha/trunk\n ~/bzr/project-foo.bzr/alpha/feature-1\n ~/bzr/project-foo.bzr/beta\n ~/bzr/project-foo.bzr/gamma\n\nLet's suppose we also have a `local.bzr` repository we don't want to\nsynchronize, in either direction.\n\nBzrSync needs a YAML config file, by default `~/.bazaar/bzrsync.yaml`,\nlisting the repositories and the branches we.\nIn this example its contents will be:\n\n::\n\n # remote nodes\n # (a host can be specified with an optional port as HOST:PORT)\n hosts:\n - alpha\n - beta\n - gamma\n\n # where repositories specified with a relative path/pattern are located\n root: ~/bzr\n\n # *all* repositories\n repositories: \"*.bzr\"\n\n # specific repositories to exclude from 'repositories'\n exclude:\n - local.bzr\n\n # repositories to export to remote nodes\n export: \"*.bzr\"\n\n # specific repositories excluded from export\n export_exclude:\n - local.bzr\n\n # repositories to sync from remotes\n sync: \"*.bzr\"\n\n # specific repositories excluded from sync\n sync_exclude:\n - local.bzr\n\nWe can use exactly this same configuration file on all three nodes.\n\nBzrSync won't create the shared repositories for you, so before proceeding,\ndo so now on all the nodes, remembering to create also the node\nsubdirectories.\n\nThen launch the BzrSync daemon on all the nodes:\n\n::\n\n alpha$ bzrsync serve\n\n beta$ bzrsync serve\n\n gamma$ bzrsync serve\n\nNow let's sync project-foo.bzr from alpha to beta:\n\n beta$ bzrsync sync ~/bzr/project-foo.bzr\n\nThis will pull to `beta` all the branches from `~/bzr/project-foo.bzr/alpha/`\non `alpha`, and all the branches from `~/bzr/project-foo.bzr/gamma/`\non `gamma`.\nIn our case, only alpha has branches right now, so in practice we'll\nget the branches `alpha/trunk` and `alpha/feature-1` from `alpha` to\n`beta`, keeping them as `alpha/trunk` and `alpha/feature-1`.\n\nIf you want to work on `beta`, now branch from the newly synchronized branches\nto their counterparts inside the `beta/` subdirectory:\n\n::\n\n beta$ bzr branch ~/bzr/project-foo.bzr/alpha/feature-1 ~/bzr/project-foo.bzr/beta/feature-1\n beta$ bzr co ~/bzr/project-foo.bzr/beta/feature-1 foo-feature-1\n beta$ cd foo-feature-1\n ...\n hack hack hack\n ...\n beta$ commit\n\nNow on `beta` we'll have:\n\n::\n\n ~/bzr/project-foo.bzr/\n ~/bzr/project-foo.bzr/alpha\n ~/bzr/project-foo.bzr/alpha/trunk\n ~/bzr/project-foo.bzr/alpha/feature-1\n ~/bzr/project-foo.bzr/beta\n ~/bzr/project-foo.bzr/beta/feature-1\n ~/bzr/project-foo.bzr/gamma\n\nWhen you have finished working on beta, you can sync from alpha:\n\n alpha$ bzrsync sync ~/bzr/project-foo.bzr\n\nand this will create `beta/feature-1` on `alpha` too, which you can\npull onto `alpha/feature-1` if not diverged, or merge it otherwise,\nand start working from `alpha` again.\n\nPlease see the example `bzrsync.yaml` file for a more complete example, which\nincludes also branch sets.\n\nHelp and Development\n--------------------\n\nAlternatively, if you'd like to update the software occasionally to pick\nup the latest bug fixes and enhancements before they make it into an\noffical release, branch from the `Bazaar`_ repository hosted on `LaunchPad`_\ninstead.\nJust follow the procedure outlined below:\n\n1. Make sure that you have `Bazaar`_ installed, and that you can run its\n commands from a shell. (Enter ``bzr help`` at a shell prompt to test\n this.)\n\n2. Create a local branch and working tree from the official one::\n\n bzr branch lp:bzrsync bzrsync\n\n3. Then from the ``bzrsync`` directory you can run the ``setup.py develop``\n command to install the library in your Python `site-packages` directory\n using a link, which allows to continue developing inside the working tree\n without the need to re-install after every change. See the\n `setuptools development mode`_ documention for more information::\n\n $ sudo\n # python setup.py develop\n\n.. _`development home page`: https://launchpad.net/bzrsync\n.. _`bugs`: https://bugs.launchpad.net/bzrsync\n.. _`LaunchPad`: http://launchpad.net\n.. _`Bazaar`: http://bazaar-vcs.org/\n.. _`changes`: http://bazaar.launchpad.net/~softwarefabrica/bzrsync/trunk/changes\n.. _`PYTHONPATH`: http://docs.python.org/tut/node8.html#SECTION008110000000000000000\n.. _`junction`: http://www.microsoft.com/technet/sysinternals/FileAndDisk/Junction.mspx\n.. _`setuptools development mode`: http://peak.telecommunity.com/DevCenter/setuptools#development-mode\n\n\nLICENSE\n-------\n\nThis software is covered by the GNU General Public License version 2.\nIt is:\n\n Copyright (C) 2010-2011 Marco Pantaleoni. All rights reserved.\n\n This program is free software; you can redistribute it and/or modify\n it under the terms of the GNU General Public License version 2 as\n published by the Free Software Foundation.\n\n This program is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n GNU General Public License for more details.\n\n You should have received a copy of the GNU General Public License along\n with this program; if not, write to the Free Software Foundation, Inc.,\n 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/bzrsync/", "keywords": "softwarefabrica bazaar bzr sync bzrsync synchronize synchronization repositories branches vcs version control", "license": "GNU GPL v2", "maintainer": null, "maintainer_email": null, "name": "bzrsync", "package_url": "https://pypi.org/project/bzrsync/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/bzrsync/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/bzrsync/" }, "release_url": "https://pypi.org/project/bzrsync/0.2/", "requires_dist": null, "requires_python": null, "summary": "Tool to automatically synchronize Bazaar repositories between multiple nodes", "version": "0.2" }, "last_serial": 787162, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "3acf60f97a52df7279eb01f65cb599a4", "sha256": "5b3baac9da9d581018252ec98955a4246d5b49e193bade366c1fc13612bed8df" }, "downloads": -1, "filename": "bzrsync-0.1.tar.gz", "has_sig": false, "md5_digest": "3acf60f97a52df7279eb01f65cb599a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 181021, "upload_time": "2011-05-27T16:08:11", "url": "https://files.pythonhosted.org/packages/db/61/ec7aec34662b2e2e2372d8f8d9843b4d477ff3961e52244df7d5843db3cb/bzrsync-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "428da777014c5a8b7e5b74e9d6655979", "sha256": "9c768785ff837f573855384b2ee2b371776b3177be235f27500b3f11eb4260c7" }, "downloads": -1, "filename": "bzrsync-0.2.tar.gz", "has_sig": false, "md5_digest": "428da777014c5a8b7e5b74e9d6655979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 184290, "upload_time": "2011-05-27T16:58:11", "url": "https://files.pythonhosted.org/packages/c8/59/3ee138a1b0cd088c9fb25b201742dfcb497485765346b19325e3b5cab99a/bzrsync-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "428da777014c5a8b7e5b74e9d6655979", "sha256": "9c768785ff837f573855384b2ee2b371776b3177be235f27500b3f11eb4260c7" }, "downloads": -1, "filename": "bzrsync-0.2.tar.gz", "has_sig": false, "md5_digest": "428da777014c5a8b7e5b74e9d6655979", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 184290, "upload_time": "2011-05-27T16:58:11", "url": "https://files.pythonhosted.org/packages/c8/59/3ee138a1b0cd088c9fb25b201742dfcb497485765346b19325e3b5cab99a/bzrsync-0.2.tar.gz" } ] }