~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/builtins.py

  • Committer: John Arbash Meinel
  • Date: 2006-10-31 19:39:21 UTC
  • mfrom: (2077.1.2 bzr.lp4559)
  • mto: This revision was merged to the branch mainline in revision 2105.
  • Revision ID: john@arbash-meinel.com-20061031193921-6d047611ba22c665
(Kent Gibson) Fix bug #4559, strip trailing slashes from ignore patterns

Show diffs side-by-side

added added

removed removed

Lines of Context:
1544
1544
 
1545
1545
    To remove patterns from the ignore list, edit the .bzrignore file.
1546
1546
 
 
1547
    Trailing slashes on patterns are ignored. 
1547
1548
    If the pattern contains a slash, it is compared to the whole path
1548
1549
    from the branch root.  Otherwise, it is compared to only the last
1549
1550
    component of the path.  To match a file only in the root directory,
1550
1551
    prepend './'.
1551
1552
 
 
1553
    Ignore patterns specifying absolute paths are not allowed.
 
1554
 
1552
1555
    Ignore patterns are case-insensitive on case-insensitive systems.
1553
1556
 
1554
1557
    Note: wildcards must be quoted from the shell on Unix.
1557
1560
        bzr ignore ./Makefile
1558
1561
        bzr ignore '*.class'
1559
1562
    """
1560
 
    # TODO: Complain if the filename is absolute
1561
1563
    takes_args = ['name_pattern*']
1562
1564
    takes_options = [
1563
1565
                     Option('old-default-rules',
1571
1573
            for pattern in ignores.OLD_DEFAULTS:
1572
1574
                print pattern
1573
1575
            return
1574
 
        if name_pattern_list is None or name_pattern_list == []:
 
1576
        if not name_pattern_list:
1575
1577
            raise errors.BzrCommandError("ignore requires at least one "
1576
1578
                                  "NAME_PATTERN or --old-default-rules")
 
1579
        for name_pattern in name_pattern_list:
 
1580
            if name_pattern[0] == '/':
 
1581
                raise errors.BzrCommandError(
 
1582
                    "NAME_PATTERN should not be an absolute path")
1577
1583
        tree, relpath = WorkingTree.open_containing(u'.')
1578
1584
        ifn = tree.abspath('.bzrignore')
1579
1585
        if os.path.exists(ifn):
1591
1597
        if igns and igns[-1] != '\n':
1592
1598
            igns += '\n'
1593
1599
        for name_pattern in name_pattern_list:
1594
 
            igns += name_pattern + '\n'
 
1600
            igns += name_pattern.rstrip('/') + '\n'
1595
1601
 
1596
1602
        f = AtomicFile(ifn, 'wb')
1597
1603
        try: