/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/commit.py

  • Committer: Neil Martinsen-Burrell
  • Date: 2011-05-19 01:42:12 UTC
  • mfrom: (5876 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5899.
  • Revision ID: nmb@wartburg.edu-20110519014212-d48xtqqeauq164al
merge bzr.dev, fix release notes conflict

Show diffs side-by-side

added added

removed removed

Lines of Context:
229
229
               message_callback=None,
230
230
               recursive='down',
231
231
               exclude=None,
232
 
               possible_master_transports=None):
 
232
               possible_master_transports=None,
 
233
               lossy=False):
233
234
        """Commit working copy as a new revision.
234
235
 
235
236
        :param message: the commit message (it or message_callback is required)
262
263
        :param exclude: None or a list of relative paths to exclude from the
263
264
            commit. Pending changes to excluded files will be ignored by the
264
265
            commit.
 
266
        :param lossy: When committing to a foreign VCS, ignore any
 
267
            data that can not be natively represented.
265
268
        """
266
269
        operation = OperationWithCleanups(self._commit)
267
270
        self.revprops = revprops or {}
283
286
               message_callback=message_callback,
284
287
               recursive=recursive,
285
288
               exclude=exclude,
286
 
               possible_master_transports=possible_master_transports)
 
289
               possible_master_transports=possible_master_transports,
 
290
               lossy=lossy)
287
291
 
288
292
    def _commit(self, operation, message, timestamp, timezone, committer,
289
293
            specific_files, rev_id, allow_pointless, strict, verbose,
290
294
            working_tree, local, reporter, message_callback, recursive,
291
 
            exclude, possible_master_transports):
 
295
            exclude, possible_master_transports, lossy):
292
296
        mutter('preparing to commit')
293
297
 
294
298
        if working_tree is None:
400
404
 
401
405
        # Collect the changes
402
406
        self._set_progress_stage("Collecting changes", counter=True)
 
407
        self._lossy = lossy
403
408
        self.builder = self.branch.get_commit_builder(self.parents,
404
 
            self.config, timestamp, timezone, committer, self.revprops, rev_id)
 
409
            self.config, timestamp, timezone, committer, self.revprops,
 
410
            rev_id, lossy=lossy)
405
411
        if not self.builder.supports_record_entry_contents and self.exclude:
406
412
            self.builder.abort()
407
413
            raise errors.ExcludesUnsupported(self.branch.repository)
449
455
            self._set_progress_stage("Uploading data to master branch")
450
456
            # 'commit' to the master first so a timeout here causes the
451
457
            # local branch to be out of date
452
 
            self.master_branch.import_last_revision_info_and_tags(
453
 
                self.branch, new_revno, self.rev_id)
 
458
            (new_revno, self.rev_id) = self.master_branch.import_last_revision_info_and_tags(
 
459
                self.branch, new_revno, self.rev_id, lossy=lossy)
 
460
            if lossy:
 
461
                self.branch.fetch(self.master_branch, self.rev_id)
454
462
 
455
463
        # and now do the commit locally.
456
464
        self.branch.set_last_revision_info(new_revno, self.rev_id)
487
495
        # A merge with no effect on files
488
496
        if len(self.parents) > 1:
489
497
            return
490
 
        # TODO: we could simplify this by using self.builder.basis_delta.
491
 
 
492
 
        # The initial commit adds a root directory, but this in itself is not
493
 
        # a worthwhile commit.
494
 
        if (self.basis_revid == revision.NULL_REVISION and
495
 
            ((self.builder.new_inventory is not None and
496
 
             len(self.builder.new_inventory) == 1) or
497
 
            len(self.builder._basis_delta) == 1)):
498
 
            raise PointlessCommit()
499
498
        if self.builder.any_changes():
500
499
            return
501
500
        raise PointlessCommit()