/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 bzrlib/tests/interrepository_implementations/test_fetch.py

  • Committer: Robert Collins
  • Date: 2009-05-23 20:57:12 UTC
  • mfrom: (4371 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4441.
  • Revision ID: robertc@robertcollins.net-20090523205712-lcwbfqk6vwavinuv
MergeĀ .dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
17
17
 
18
18
import sys
53
53
        def check_push_rev1(repo):
54
54
            # ensure the revision is missing.
55
55
            self.assertRaises(NoSuchRevision, repo.get_revision, 'rev1')
56
 
            # fetch with a limit of NULL_REVISION and an explicit progress bar.
 
56
            # fetch with a limit of NULL_REVISION
57
57
            repo.fetch(tree_a.branch.repository,
58
 
                       revision_id=NULL_REVISION,
59
 
                       pb=bzrlib.progress.DummyProgress())
 
58
                       revision_id=NULL_REVISION)
60
59
            # nothing should have been pushed
61
60
            self.assertFalse(repo.has_revision('rev1'))
62
61
            # fetch with a default limit (grab everything)
77
76
 
78
77
    def test_fetch_inconsistent_last_changed_entries(self):
79
78
        """If an inventory has odd data we should still get what it references.
80
 
        
 
79
 
81
80
        This test tests that we do fetch a file text created in a revision not
82
81
        being fetched, but referenced from the revision we are fetching when the
83
82
        adjacent revisions to the one being fetched do not reference that text.
125
124
            to_repo.texts.get_record_stream([('foo', revid)],
126
125
            'unordered', True).next().get_bytes_as('fulltext'))
127
126
 
 
127
    def test_fetch_parent_inventories_at_stacking_boundary(self):
 
128
        """Fetch to a stacked branch copies inventories for parents of
 
129
        revisions at the stacking boundary.
 
130
 
 
131
        This is necessary so that the server is able to determine the file-ids
 
132
        altered by all revisions it contains, which means that it needs both
 
133
        the inventory for any revision it has, and the inventories of all that
 
134
        revision's parents.
 
135
        """
 
136
        to_repo = self.make_to_repository('to')
 
137
        if not to_repo._format.supports_external_lookups:
 
138
            raise TestNotApplicable("Need stacking support in the target.")
 
139
        builder = self.make_branch_builder('branch')
 
140
        builder.start_series()
 
141
        builder.build_snapshot('base', None, [
 
142
            ('add', ('', 'root-id', 'directory', ''))])
 
143
        builder.build_snapshot('left', ['base'], [])
 
144
        builder.build_snapshot('right', ['base'], [])
 
145
        builder.build_snapshot('merge', ['left', 'right'], [])
 
146
        builder.finish_series()
 
147
        branch = builder.get_branch()
 
148
        repo = self.make_to_repository('trunk')
 
149
        trunk = repo.bzrdir.create_branch()
 
150
        trunk.repository.fetch(branch.repository, 'left')
 
151
        trunk.repository.fetch(branch.repository, 'right')
 
152
        repo = self.make_to_repository('stacked')
 
153
        stacked_branch = repo.bzrdir.create_branch()
 
154
        stacked_branch.set_stacked_on_url(trunk.base)
 
155
        stacked_branch.repository.fetch(branch.repository, 'merge')
 
156
        unstacked_repo = stacked_branch.bzrdir.open_repository()
 
157
        unstacked_repo.lock_read()
 
158
        self.addCleanup(unstacked_repo.unlock)
 
159
        self.assertFalse(unstacked_repo.has_revision('left'))
 
160
        self.assertFalse(unstacked_repo.has_revision('right'))
 
161
        self.assertEqual(
 
162
            set([('left',), ('right',), ('merge',)]),
 
163
            unstacked_repo.inventories.keys())
 
164
 
128
165
    def test_fetch_missing_basis_text(self):
129
166
        """If fetching a delta, we should die if a basis is not present."""
130
167
        tree = self.make_branch_and_tree('tree')