/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/en/user-guide/svn_plugin.txt

  • Committer: Martin Pool
  • Date: 2005-06-28 03:02:31 UTC
  • Revision ID: mbp@sourcefrog.net-20050628030231-d311e4ebcd467ef4
Merge John's import-speedup branch:

                                                                                         
  777 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:32 -0500
      revision-id: john@arbash-meinel.com-20050627032031-e82a50db3863b18e
      bzr selftest was not using the correct bzr

  776 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:20:22 -0500
      revision-id: john@arbash-meinel.com-20050627032021-c9f21fde989ddaee
      Add was using an old mutter

  775 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 22:02:33 -0500
      revision-id: john@arbash-meinel.com-20050627030233-9165cfe98fc63298
      Cleaned up to be less different

  774 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:54:53 -0500
      revision-id: john@arbash-meinel.com-20050627025452-4260d0e744edef43
      Allow BZR_PLUGIN_PATH='' to negate plugin loading.

  773 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:49:34 -0500
      revision-id: john@arbash-meinel.com-20050627024933-b7158f67b7b9eae5
      Finished the previous cleanup (allowing load_plugins to be called twice)

  772 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:45:08 -0500
      revision-id: john@arbash-meinel.com-20050627024508-723b1df510d196fc
      Work on making the tests pass. versioning.py is calling run_cmd directly, but plugins have been loaded.

  771 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:32:29 -0500
      revision-id: john@arbash-meinel.com-20050627023228-79972744d7c53e15
      Got it down a little bit more by removing import of tree and inventory.

  770 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 21:26:05 -0500
      revision-id: john@arbash-meinel.com-20050627022604-350b9773ef622f95
      Reducing the number of import from bzrlib/__init__.py and bzrlib/branch.py

  769 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:32:25 -0500
      revision-id: john@arbash-meinel.com-20050627013225-32dd044f10d23948
      Updated revision.py and xml.py to include SubElement.

  768 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:56 -0500
      revision-id: john@arbash-meinel.com-20050627010356-ee66919e1c377faf
      Minor typo

  767 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 20:03:13 -0500
      revision-id: john@arbash-meinel.com-20050627010312-40d024007eb85051
      Caching the import

  766 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:51:47 -0500
      revision-id: john@arbash-meinel.com-20050627005147-5281c99e48ed1834
      Created wrapper functions for lazy import of ElementTree

  765 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:46:37 -0500
      revision-id: john@arbash-meinel.com-20050627004636-bf432902004a94c5
      Removed all of the test imports of cElementTree

  764 John Arbash Meinel <john@arbash-meinel.com>       Sun 2005-06-26 19:43:59 -0500
      revision-id: john@arbash-meinel.com-20050627004358-d137fbe9570dd71b
      Trying to make bzr startup faster.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
bzr-svn
2
 
=======
3
 
 
4
 
Overview
5
 
--------
6
 
 
7
 
bzr-svn lets developers use Bazaar as their VCS client on projects
8
 
still using a central Subversion repository. Access to Subversion
9
 
repositories is largely transparent, i.e. you can use most ``bzr``
10
 
commands directly on Subversion repositories exactly the same
11
 
as if you were using ``bzr`` on native Bazaar branches.
12
 
 
13
 
Many bzr-svn users create a local mirror of the central Subversion
14
 
trunk, work in local feature branches, and submit their
15
 
overall change back to Subversion when it is ready
16
 
to go. This lets them gain many of the advantages of distributed
17
 
VCS tools without interrupting existing team-wide processes and
18
 
tool integration hooks currently built on top of Subversion. Indeed,
19
 
this is a common interim step for teams looking to adopt Bazaar but
20
 
who are unable to do so yet for timing or non-technical reasons.
21
 
 
22
 
For installation instructions, see the bzr-svn home page:
23
 
http://bazaar-vcs.org/BzrForeignBranches/Subversion.
24
 
 
25
 
 
26
 
A simple example
27
 
----------------
28
 
 
29
 
Here's a simple example of how you can use bzr-svn to hack on a
30
 
GNOME project like **beagle**. Firstly, setup a local shared repository
31
 
for storing your branches in and checkout the trunk::
32
 
 
33
 
  bzr init-repo beagle-repo
34
 
  cd beagle-repo
35
 
  bzr checkout svn+ssh://svn.gnome.org/svn/beagle/trunk beagle-trunk
36
 
 
37
 
Next, create a feature branch and hack away::
38
 
 
39
 
  bzr branch beagle-trunk beagle-feature1
40
 
  cd beagle-feature1
41
 
  (hack, hack, hack)
42
 
  bzr commit -m "blah blah blah"
43
 
  (hack, hack, hack)
44
 
  bzr commit -m "blah blah blah"
45
 
 
46
 
When the feature is cooked, refresh your trunk mirror and merge
47
 
your change::
48
 
 
49
 
  cd ../beagle-trunk
50
 
  bzr update
51
 
  bzr merge ../beagle-feature1
52
 
  bzr commit -m "Complete comment for SVN commit"
53
 
 
54
 
As your trunk mirror is a checkout, committing to it implicitly
55
 
commits to the real Subversion trunk. That's it!
56
 
 
57
 
 
58
 
Using a central repository mirror
59
 
---------------------------------
60
 
 
61
 
For large projects, it often makes sense to tweak the recipe given above.
62
 
In particular, the initial checkout can get quite slow so you may wish
63
 
to import the Subversion repository into a Bazaar one once and for all
64
 
for your project, and then branch from that native Bazaar repository
65
 
instead. bzr-svn provides the ``svn-import`` command for doing this
66
 
repository-to-repository conversion. Here's an example of how to use it::
67
 
 
68
 
  bzr svn-import svn+ssh://svn.gnome.org/svn/beagle
69
 
 
70
 
Here's the recipe from above updated to use a central Bazaar mirror::
71
 
 
72
 
  bzr init-repo beagle-repo
73
 
  cd beagle-repo
74
 
  bzr branch bzr+ssh://bzr.gnome.org/beagle.bzr/trunk beagle-trunk
75
 
  bzr branch beagle-trunk beagle-feature1
76
 
  cd beagle-feature1
77
 
  (hack, hack, hack)
78
 
  bzr commit -m "blah blah blah"
79
 
  (hack, hack, hack)
80
 
  bzr commit -m "blah blah blah"
81
 
  cd ../beagle-trunk
82
 
  bzr pull
83
 
  bzr merge ../beagle-feature1
84
 
  bzr commit -m "Complete comment for SVN commit"
85
 
  bzr push
86
 
 
87
 
In this case, committing to the trunk only commits the merge locally.
88
 
To commit back to the master Subversion trunk, an additional command
89
 
(``bzr push``) is required.
90
 
 
91
 
Note: You'll need to give ``pull`` and ``push`` the relevant URLs
92
 
the first time you use those commands in the trunk branch. After that,
93
 
bzr remembers them.
94
 
 
95
 
The final piece of the puzzle in this setup is to put scripts in
96
 
place to keep the central Bazaar mirror synchronized with the Subversion
97
 
one. This can be done by adding a cron job, using a Subversion hook,
98
 
or whatever makes sense in your environment.
99
 
 
100
 
 
101
 
Limitations of bzr-svn
102
 
----------------------
103
 
 
104
 
Bazaar and Subversion are different tools with different capabilities
105
 
so there will always be some limited interoperability issues.
106
 
Here are some examples current as of bzr-svn 0.5.4:
107
 
 
108
 
 * Bazaar doesn't support versioned properties
109
 
 
110
 
 * Bazaar doesn't support tracking of file copies.
111
 
 
112
 
See the bzr-svn web page,
113
 
http://bazaar-vcs.org/BzrForeignBranches/Subversion,
114
 
for the current list of constraints.