[MERGE] dpush / foreign vcs testing
Jelmer Vernooij
jelmer at samba.org
Thu Mar 19 17:02:40 GMT 2009
Jelmer Vernooij wrote:
> This patch adds the "dpush" command to bzr core. This command has been
> part of bzr-svn for a while, and is now also being used in bzr-git. It
> can push bzr revisions into a foreign version control system while not
> copying all metadata (if metadata can not be represented in the foreign
> version control system).
>
> Since this has the consequence that it doesn't preserve revision ids or
> file ids the local and the remote branch will have diverged after a
> dpush operation - breaking a basic invariant of regular push. To work
> around this, dpush can "rebase" (the actual operation is much simpler)
> the local branch on the remote branch afterwards.
>
> dpush is useful for people who don't want bzr-related metadata to show
> up in their foreign vcs (e.g. some people have complained about
> bzr-svn's custom svn properties), for foreign version control systems
> that don't have a place where we can stash bzr roundtripping metadata
> and for bzr foreign vcs plugins that don't do full roundtripping yet
> (bzr-git / bzr-hg atm, but it would also work for e.g. CVS).
>
> dpush will refuse to push between native Bazaar branches.
>
> I've also added more infrastructure to the DummyForeignVcs* test classes
> that have been growing in bzrlib/tests/test_foreign.py, to help test
> dpush. This foreign vcs is based on the current bzr formats, but changed
> slightly to make it foreign:
>
> * The control files live in .dummy
> * "native" revision ids are tuples of 3 strings
> * Each revision can only have one parent "natively"
>
> When running selftest for this patch, please run with --no-plugins.
> bzr-svn and bzr-git also contain dpush at the moment, with slightly
> different implementations.
>
I'm still looking for review of this patch; it would be nice if it could
land in 1.14 so that bzr-git doesn't have to depend on bzr-svn for
dpush... :-)
Cheers,
Jelmer
More information about the bazaar
mailing list