~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

MergeĀ inĀ upstream.

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
import bzrlib.errors as errors
32
32
from bzrlib.errors import (BzrError, BzrCheckError, BzrCommandError, 
33
33
                           NotBranchError, DivergedBranches, NotConflicted,
34
 
                           NoSuchFile, NoWorkingTree, FileInWrongBranch)
 
34
                           NoSuchFile, NoWorkingTree, FileInWrongBranch,
 
35
                           NotVersionedError)
35
36
from bzrlib.log import show_one_log
36
37
from bzrlib.merge import Merge3Merger
37
38
from bzrlib.option import Option
769
770
            print fip
770
771
 
771
772
 
 
773
class cmd_reconcile(Command):
 
774
    """Reconcile bzr metadata in a branch.
 
775
 
 
776
    This can correct data mismatches that may have been caused by
 
777
    previous ghost operations or bzr upgrades. You should only
 
778
    need to run this command if 'bzr check' or a bzr developer 
 
779
    advises you to run it.
 
780
 
 
781
    If a second branch is provided, cross-branch reconciliation is
 
782
    also attempted, which will check that data like the tree root
 
783
    id which was not present in very early bzr versions is represented
 
784
    correctly in both branches.
 
785
 
 
786
    At the same time it is run it may recompress data resulting in 
 
787
    a potential saving in disk space or performance gain.
 
788
 
 
789
    The branch *MUST* be on a listable system such as local disk or sftp.
 
790
    """
 
791
    takes_args = ['branch?']
 
792
 
 
793
    def run(self, branch="."):
 
794
        from bzrlib.reconcile import reconcile
 
795
        dir = bzrlib.bzrdir.BzrDir.open(branch)
 
796
        reconcile(dir)
 
797
 
 
798
 
772
799
class cmd_revision_history(Command):
773
800
    """Display list of revision ids on this branch."""
774
801
    hidden = True
1798
1825
                interesting_ids = set()
1799
1826
                for filename in file_list:
1800
1827
                    file_id = tree.path2id(filename)
 
1828
                    if file_id is None:
 
1829
                        raise NotVersionedError(filename)
1801
1830
                    interesting_ids.add(file_id)
1802
1831
                    if tree.kind(file_id) != "directory":
1803
1832
                        continue