~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commit.py

  • Committer: Robert Collins
  • Date: 2010-05-06 11:08:10 UTC
  • mto: This revision was merged to the branch mainline in revision 5223.
  • Revision ID: robertc@robertcollins.net-20100506110810-h3j07fh5gmw54s25
Cleaner matcher matching revised unlocking protocol.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006, 2007, 2008 Canonical Ltd
 
1
# Copyright (C) 2005-2010 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
49
49
# TODO: Change the parameter 'rev_id' to 'revision_id' to be consistent with
50
50
# the rest of the code; add a deprecation of the old name.
51
51
 
52
 
import os
53
 
import re
54
 
import sys
55
 
import time
56
 
 
57
 
from cStringIO import StringIO
58
 
 
59
52
from bzrlib import (
60
53
    debug,
61
54
    errors,
62
55
    revision,
63
56
    trace,
64
57
    tree,
65
 
    xml_serializer,
66
58
    )
67
59
from bzrlib.branch import Branch
68
60
from bzrlib.cleanup import OperationWithCleanups
72
64
                           StrictCommitFailed
73
65
                           )
74
66
from bzrlib.osutils import (get_user_encoding,
75
 
                            kind_marker, isdir,isfile, is_inside_any,
76
 
                            is_inside_or_parent_of_any,
 
67
                            is_inside_any,
77
68
                            minimum_path_selection,
78
 
                            quotefn, sha_file, split_lines,
79
69
                            splitpath,
80
70
                            )
81
 
from bzrlib.testament import Testament
82
 
from bzrlib.trace import mutter, note, warning, is_quiet
 
71
from bzrlib.trace import mutter, note, is_quiet
83
72
from bzrlib.inventory import Inventory, InventoryEntry, make_entry
84
73
from bzrlib import symbol_versioning
85
 
from bzrlib.symbol_versioning import (deprecated_passed,
86
 
        deprecated_function,
87
 
        DEPRECATED_PARAMETER)
88
 
from bzrlib.workingtree import WorkingTree
89
74
from bzrlib.urlutils import unescape_for_display
90
75
import bzrlib.ui
91
76
 
147
132
 
148
133
    def completed(self, revno, rev_id):
149
134
        self._note('Committed revision %d.', revno)
 
135
        # self._note goes to the console too; so while we want to log the
 
136
        # rev_id, we can't trivially only log it. (See bug 526425). Long
 
137
        # term we should rearrange the reporting structure, but for now
 
138
        # we just mutter seperately. We mutter the revid and revno together
 
139
        # so that concurrent bzr invocations won't lead to confusion.
 
140
        mutter('Committed revid %s as revno %d.', rev_id, revno)
150
141
 
151
142
    def deleted(self, path):
152
143
        self._note('deleted %s', path)
236
227
            commit.
237
228
        """
238
229
        operation = OperationWithCleanups(self._commit)
 
230
        self.revprops = revprops or {}
 
231
        # XXX: Can be set on __init__ or passed in - this is a bit ugly.
 
232
        self.config = config or self.config
239
233
        return operation.run(
240
234
               message=message,
241
235
               timestamp=timestamp,
246
240
               allow_pointless=allow_pointless,
247
241
               strict=strict,
248
242
               verbose=verbose,
249
 
               revprops=revprops,
250
243
               working_tree=working_tree,
251
244
               local=local,
252
245
               reporter=reporter,
253
 
               config=config,
254
246
               message_callback=message_callback,
255
247
               recursive=recursive,
256
248
               exclude=exclude,
257
249
               possible_master_transports=possible_master_transports)
258
250
 
259
251
    def _commit(self, operation, message, timestamp, timezone, committer,
260
 
            specific_files, rev_id, allow_pointless, strict, verbose, revprops,
261
 
            working_tree, local, reporter, config, message_callback, recursive,
 
252
            specific_files, rev_id, allow_pointless, strict, verbose,
 
253
            working_tree, local, reporter, message_callback, recursive,
262
254
            exclude, possible_master_transports):
263
255
        mutter('preparing to commit')
264
256
 
299
291
            self.specific_files = None
300
292
            
301
293
        self.allow_pointless = allow_pointless
302
 
        self.revprops = revprops
303
294
        self.message_callback = message_callback
304
295
        self.timestamp = timestamp
305
296
        self.timezone = timezone
371
362
        # Collect the changes
372
363
        self._set_progress_stage("Collecting changes", counter=True)
373
364
        self.builder = self.branch.get_commit_builder(self.parents,
374
 
            self.config, timestamp, timezone, committer, revprops, rev_id)
 
365
            self.config, timestamp, timezone, committer, self.revprops, rev_id)
375
366
 
376
367
        try:
377
368
            self.builder.will_record_deletes()