~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/ignores.py

  • Committer: Alexander Belchenko
  • Date: 2006-07-30 16:43:12 UTC
  • mto: (1711.2.111 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 1906.
  • Revision ID: bialix@ukr.net-20060730164312-b025fd3ff0cee59e
rename  gpl.txt => COPYING.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005, 2006 Canonical Ltd
 
1
# Copyright (C) 2005, 2006 Canonical Development 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
12
12
#
13
13
# You should have received a copy of the GNU General Public License
14
14
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 
15
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16
16
 
17
17
"""Lists of ignore files, etc."""
18
18
 
19
19
import errno
20
20
 
21
 
import bzrlib
22
 
from bzrlib import (
23
 
    atomicfile,
24
 
    config,
25
 
    globbing,
26
 
    )
 
21
from bzrlib import config
27
22
 
28
23
# This was the full ignore list for bzr 0.8
29
24
# please keep these sorted (in C locale order) to aid merging
107
102
        line = line.rstrip('\r\n')
108
103
        if not line or line.startswith('#'):
109
104
            continue
110
 
        ignored.add(globbing.normalize_pattern(line))
 
105
        ignored.add(line)
111
106
    return ignored
112
107
 
113
108
 
168
163
    ignored = get_user_ignores()
169
164
    to_add = []
170
165
    for ignore in new_ignores:
171
 
        ignore = globbing.normalize_pattern(ignore)
172
166
        if ignore not in ignored:
173
167
            ignored.add(ignore)
174
168
            to_add.append(ignore)
194
188
 
195
189
    This is used by some plugins that want bzr to ignore files,
196
190
    but don't want to change a users ignore list.
197
 
    (Such as a conversion script that needs to ignore temporary files,
198
 
    but does not want to modify the project's ignore list.)
 
191
    (Such as a conversion script, that needs to ignore some files,
 
192
    but must preserve as much of the exact content boing converted.)
199
193
 
200
194
    :param ignores: A list or generator of ignore patterns.
201
195
    :return: None
207
201
def get_runtime_ignores():
208
202
    """Get the current set of runtime ignores."""
209
203
    return _runtime_ignores
210
 
 
211
 
 
212
 
def tree_ignores_add_patterns(tree, name_pattern_list):
213
 
    """Retrieve a list of ignores from the ignore file in a tree.
214
 
 
215
 
    :param tree: Tree to retrieve the ignore list from.
216
 
    :return:
217
 
    """
218
 
    ifn = tree.abspath(bzrlib.IGNORE_FILENAME)
219
 
    if tree.has_filename(ifn):
220
 
        f = open(ifn, 'rt')
221
 
        try:
222
 
            igns = f.read().decode('utf-8')
223
 
        finally:
224
 
            f.close()
225
 
    else:
226
 
        igns = ""
227
 
 
228
 
    # TODO: If the file already uses crlf-style termination, maybe
229
 
    # we should use that for the newly added lines?
230
 
 
231
 
    if igns and igns[-1] != '\n':
232
 
        igns += '\n'
233
 
    for name_pattern in name_pattern_list:
234
 
        igns += name_pattern + '\n'
235
 
 
236
 
    f = atomicfile.AtomicFile(ifn, 'wb')
237
 
    try:
238
 
        f.write(igns.encode('utf-8'))
239
 
        f.commit()
240
 
    finally:
241
 
        f.close()
242
 
 
243
 
    if not tree.path2id('.bzrignore'):
244
 
        tree.add(['.bzrignore'])