/breezy/unstable

To get this branch, use:
bzr branch https://code.breezy-vcs.org/breezy/unstable

« back to all changes in this revision

Viewing changes to breezy/msgeditor.py

  • Committer: Jelmer Vernooij
  • Date: 2017-05-24 01:39:33 UTC
  • mfrom: (3815.3776.6)
  • Revision ID: jelmer@jelmer.uk-20170524013933-ir4y4tqtrsiz2ka2
New upstream snapshot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
from subprocess import call
24
24
import sys
25
25
 
26
 
from bzrlib import (
 
26
from . import (
27
27
    cmdline,
28
28
    config,
29
29
    osutils,
31
31
    transport,
32
32
    ui,
33
33
    )
34
 
from bzrlib.errors import BzrError, BadCommitMessageEncoding
35
 
from bzrlib.hooks import Hooks
 
34
from .errors import BzrError, BadCommitMessageEncoding
 
35
from .hooks import Hooks
 
36
from .sixish import (
 
37
    StringIO,
 
38
    )
36
39
 
37
40
 
38
41
def _get_editor():
39
42
    """Return a sequence of possible editor binaries for the current platform"""
40
43
    try:
41
 
        yield os.environ["BZR_EDITOR"], '$BZR_EDITOR'
 
44
        yield os.environ["BRZ_EDITOR"], '$BRZ_EDITOR'
42
45
    except KeyError:
43
46
        pass
44
47
 
65
68
        try:
66
69
            ## mutter("trying editor: %r", (edargs +[filename]))
67
70
            x = call(edargs + [filename])
68
 
        except OSError, e:
 
71
        except OSError as e:
69
72
            if candidate_source is not None:
70
73
                # We tried this editor because some user configuration (an
71
74
                # environment variable or config file) said to try it.  Let
82
85
        else:
83
86
            break
84
87
    raise BzrError("Could not start any editor.\nPlease specify one with:\n"
85
 
                   " - $BZR_EDITOR\n - editor=/some/path in %s\n"
 
88
                   " - $BRZ_EDITOR\n - editor=/some/path in %s\n"
86
89
                   " - $VISUAL\n - $EDITOR" % \
87
90
                    config.config_filename())
88
91
 
153
156
        if edited_content == reference_content:
154
157
            if not ui.ui_factory.confirm_action(
155
158
                u"Commit message was not edited, use anyway",
156
 
                "bzrlib.msgeditor.unchanged",
 
159
                "breezy.msgeditor.unchanged",
157
160
                {}):
158
161
                # Returning "" makes cmd_commit raise 'empty commit message
159
162
                # specified' which is a reasonable error, given the user has
203
206
        if msgfilename is not None:
204
207
            try:
205
208
                os.unlink(msgfilename)
206
 
            except IOError, e:
 
209
            except IOError as e:
207
210
                trace.warning(
208
211
                    "failed to unlink %s: %s; ignored", msgfilename, e)
209
212
 
255
258
    # TODO: Rather than running the status command, should prepare a draft of
256
259
    # the revision to be committed, then pause and ask the user to
257
260
    # confirm/write a message.
258
 
    from StringIO import StringIO       # must be unicode-safe
259
 
    from bzrlib.status import show_tree_status
 
261
    from .status import show_tree_status
260
262
    status_tmp = StringIO()
261
263
    show_tree_status(working_tree, specific_files=specific_files,
262
264
                     to_file=status_tmp, verbose=True)
274
276
    # TODO: Rather than running the status command, should prepare a draft of
275
277
    # the revision to be committed, then pause and ask the user to
276
278
    # confirm/write a message.
277
 
    from StringIO import StringIO       # must be unicode-safe
278
 
    from bzrlib.diff import show_diff_trees
 
279
    from .diff import show_diff_trees
279
280
 
280
281
    template = make_commit_message_template(working_tree, specific_files)
281
282
    template = template.encode(output_encoding, "replace")
303
304
 
304
305
        These are all empty initially.
305
306
        """
306
 
        Hooks.__init__(self, "bzrlib.msgeditor", "hooks")
 
307
        Hooks.__init__(self, "breezy.msgeditor", "hooks")
307
308
        self.add_hook('set_commit_message',
308
309
            "Set a fixed commit message. "
309
310
            "set_commit_message is called with the "
310
 
            "bzrlib.commit.Commit object (so you can also change e.g. revision "
 
311
            "breezy.commit.Commit object (so you can also change e.g. revision "
311
312
            "properties by editing commit.builder._revprops) and the message "
312
313
            "so far. set_commit_message must return the message to use or None"
313
314
            " if it should use the message editor as normal.", (2, 4))
314
315
        self.add_hook('commit_message_template',
315
316
            "Called when a commit message is being generated. "
316
 
            "commit_message_template is called with the bzrlib.commit.Commit "
 
317
            "commit_message_template is called with the breezy.commit.Commit "
317
318
            "object and the message that is known so far. "
318
319
            "commit_message_template must return a new message to use (which "
319
320
            "could be the same as it was given). When there are multiple "