~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/branch.py

  • Committer: Martin Pool
  • Date: 2005-05-15 02:36:04 UTC
  • Revision ID: mbp@sourcefrog.net-20050515023603-7328f6cbabd2b09a
- Merge aaron's merge command

Show diffs side-by-side

added added

removed removed

Lines of Context:
303
303
                         """Inventory for the working copy.""")
304
304
 
305
305
 
306
 
    def add(self, files, verbose=False):
 
306
    def add(self, files, verbose=False, ids=None):
307
307
        """Make files versioned.
308
308
 
309
309
        Note that the command line normally calls smart_add instead.
328
328
        # TODO: Re-adding a file that is removed in the working copy
329
329
        # should probably put it back with the previous ID.
330
330
        if isinstance(files, types.StringTypes):
 
331
            assert(ids is None or isinstance(ids, types.StringTypes))
331
332
            files = [files]
 
333
            if ids is not None:
 
334
                ids = [ids]
 
335
 
 
336
        if ids is None:
 
337
            ids = [None] * len(files)
 
338
        else:
 
339
            assert(len(ids) == len(files))
332
340
        
333
341
        inv = self.read_working_inventory()
334
 
        for f in files:
 
342
        for f,file_id in zip(files, ids):
335
343
            if is_control_file(f):
336
344
                bailout("cannot add control file %s" % quotefn(f))
337
345
 
351
359
            if kind != 'file' and kind != 'directory':
352
360
                bailout('cannot add: not a regular file or directory: %s' % quotefn(f))
353
361
 
354
 
            file_id = gen_file_id(f)
 
362
            if file_id is None:
 
363
                file_id = gen_file_id(f)
355
364
            inv.add_path(f, kind=kind, file_id=file_id)
356
365
 
357
366
            if verbose:
414
423
 
415
424
        self._write_inventory(inv)
416
425
 
 
426
    def set_inventory(self, new_inventory_list):
 
427
        inv = Inventory()
 
428
        for path, file_id, parent, kind in new_inventory_list:
 
429
            name = os.path.basename(path)
 
430
            if name == "":
 
431
                continue
 
432
            inv.add(InventoryEntry(file_id, name, kind, parent))
 
433
        self._write_inventory(inv)
 
434
 
417
435
 
418
436
    def unknowns(self):
419
437
        """Return all unknown files.