~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commit.py

(robertc) Pull in patches from bzr.dev: Up to rev 4637, then 4639,
        4641, 4643, 4646, 4649, 4650, 4651. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
209
209
        :param timestamp: if not None, seconds-since-epoch for a
210
210
            postdated/predated commit.
211
211
 
212
 
        :param specific_files: If true, commit only those files.
 
212
        :param specific_files: If not None, commit only those files. An empty
 
213
            list means 'commit no files'.
213
214
 
214
215
        :param rev_id: If set, use this as the new revision id.
215
216
            Useful for test or import commands that need to tightly
264
265
        self.master_locked = False
265
266
        self.recursive = recursive
266
267
        self.rev_id = None
 
268
        # self.specific_files is None to indicate no filter, or any iterable to
 
269
        # indicate a filter - [] means no files at all, as per iter_changes.
267
270
        if specific_files is not None:
268
271
            self.specific_files = sorted(
269
272
                minimum_path_selection(specific_files))
285
288
        # the command line parameters, and the repository has fast delta
286
289
        # generation. See bug 347649.
287
290
        self.use_record_iter_changes = (
288
 
            not self.specific_files and
289
291
            not self.exclude and 
290
292
            not self.branch.repository._format.supports_tree_reference and
291
293
            (self.branch.repository._format.fast_deltas or
333
335
            self._gather_parents()
334
336
            # After a merge, a selected file commit is not supported.
335
337
            # See 'bzr help merge' for an explanation as to why.
336
 
            if len(self.parents) > 1 and self.specific_files:
 
338
            if len(self.parents) > 1 and self.specific_files is not None:
337
339
                raise errors.CannotCommitSelectedFileMerge(self.specific_files)
338
340
            # Excludes are a form of selected file commit.
339
341
            if len(self.parents) > 1 and self.exclude:
619
621
        """Update the commit builder with the data about what has changed.
620
622
        """
621
623
        exclude = self.exclude
622
 
        specific_files = self.specific_files or []
 
624
        specific_files = self.specific_files
623
625
        mutter("Selecting files for commit with filter %s", specific_files)
624
626
 
625
627
        self._check_strict()
626
628
        if self.use_record_iter_changes:
627
 
            iter_changes = self.work_tree.iter_changes(self.basis_tree)
 
629
            iter_changes = self.work_tree.iter_changes(self.basis_tree,
 
630
                specific_files=specific_files)
628
631
            iter_changes = self._filter_iter_changes(iter_changes)
629
632
            for file_id, path, fs_hash in self.builder.record_iter_changes(
630
633
                self.work_tree, self.basis_revid, iter_changes):