~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: Robert Collins
  • Date: 2005-10-06 22:15:52 UTC
  • mfrom: (1185.13.2)
  • mto: This revision was merged to the branch mainline in revision 1420.
  • Revision ID: robertc@robertcollins.net-20051006221552-9b15c96fa504e0ad
mergeĀ fromĀ upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
323
323
    If branches have diverged, you can use 'bzr merge' to pull the text changes
324
324
    from one into the other.
325
325
    """
 
326
    takes_options = ['remember']
326
327
    takes_args = ['location?']
327
328
 
328
 
    def run(self, location=None):
 
329
    def run(self, location=None, remember=False):
329
330
        from bzrlib.merge import merge
330
331
        import tempfile
331
332
        from shutil import rmtree
337
338
            if stored_loc is None:
338
339
                raise BzrCommandError("No pull location known or specified.")
339
340
            else:
340
 
                print "Using last location: %s" % stored_loc
 
341
                print "Using saved location: %s" % stored_loc
341
342
                location = stored_loc
342
343
        cache_root = tempfile.mkdtemp()
343
344
        from bzrlib.errors import DivergedBranches
357
358
                    "  Try merge.")
358
359
                
359
360
            merge(('.', -1), ('.', old_revno), check_clean=False)
360
 
            if location != stored_loc:
 
361
            if stored_loc is None or remember:
361
362
                br_to.set_parent(location)
362
363
        finally:
363
364
            rmtree(cache_root)
695
696
 
696
697
    --message allows you to give a regular expression, which will be evaluated
697
698
    so that only matching entries will be displayed.
698
 
 
699
 
    TODO: Make --revision support uuid: and hash: [future tag:] notation.
700
 
  
701
699
    """
702
700
 
 
701
    # TODO: Make --revision support uuid: and hash: [future tag:] notation.
 
702
 
703
703
    takes_args = ['filename?']
704
704
    takes_options = ['forward', 'timezone', 'verbose', 'show-ids', 'revision',
705
705
                     'long', 'message', 'short',]
998
998
    
999
999
    def run(self, message=None, file=None, verbose=True, selected_list=None,
1000
1000
            unchanged=False):
1001
 
        from bzrlib.errors import PointlessCommit
 
1001
        from bzrlib.errors import PointlessCommit, ConflictsInTree
1002
1002
        from bzrlib.msgeditor import edit_commit_message
1003
1003
        from bzrlib.status import show_status
1004
1004
        from cStringIO import StringIO
1006
1006
        b = Branch.open_containing('.')
1007
1007
        if selected_list:
1008
1008
            selected_list = [b.relpath(s) for s in selected_list]
 
1009
 
1009
1010
            
1010
 
        if not message and not file:
 
1011
        if message is None and not file:
1011
1012
            catcher = StringIO()
1012
1013
            show_status(b, specific_files=selected_list,
1013
1014
                        to_file=catcher)
1014
1015
            message = edit_commit_message(catcher.getvalue())
1015
 
            
 
1016
 
1016
1017
            if message is None:
1017
1018
                raise BzrCommandError("please specify a commit message"
1018
1019
                                      " with either --message or --file")
1023
1024
            import codecs
1024
1025
            message = codecs.open(file, 'rt', bzrlib.user_encoding).read()
1025
1026
 
 
1027
        if message == "":
 
1028
                raise BzrCommandError("empty commit message specified")
 
1029
            
1026
1030
        try:
1027
1031
            b.commit(message,
1028
1032
                     specific_files=selected_list,
1032
1036
            # perhaps prepare the commit; get the message; then actually commit
1033
1037
            raise BzrCommandError("no changes to commit",
1034
1038
                                  ["use --unchanged to commit anyhow"])
 
1039
        except ConflictsInTree:
 
1040
            raise BzrCommandError("Conflicts detected in working tree.  "
 
1041
                'Use "bzr conflicts" to list, "bzr resolve FILE" to resolve.')
1035
1042
 
1036
1043
 
1037
1044
class cmd_check(Command):
1232
1239
    takes_args = ['branch?']
1233
1240
    takes_options = ['revision', 'force', 'merge-type']
1234
1241
 
1235
 
    def run(self, branch='.', revision=None, force=False, 
 
1242
    def run(self, branch=None, revision=None, force=False, 
1236
1243
            merge_type=None):
1237
1244
        from bzrlib.merge import merge
1238
1245
        from bzrlib.merge_core import ApplyMerge3
1239
1246
        if merge_type is None:
1240
1247
            merge_type = ApplyMerge3
1241
 
 
 
1248
        if branch is None:
 
1249
            branch = Branch.open_containing('.').get_parent()
 
1250
            if branch is None:
 
1251
                raise BzrCommandError("No merge location known or specified.")
 
1252
            else:
 
1253
                print "Using saved location: %s" % branch 
1242
1254
        if revision is None or len(revision) < 1:
1243
1255
            base = [None, None]
1244
1256
            other = [branch, -1]