389 self._realopener = opener |
389 self._realopener = opener |
390 self._delayed = False |
390 self._delayed = False |
391 self._delaybuf = None |
391 self._delaybuf = None |
392 self._divert = False |
392 self._divert = False |
393 self.filteredrevs = frozenset() |
393 self.filteredrevs = frozenset() |
|
394 self._copiesstorage = opener.options.get('copies-storage') |
394 |
395 |
395 def tiprev(self): |
396 def tiprev(self): |
396 for i in pycompat.xrange(len(self) -1, -2, -1): |
397 for i in pycompat.xrange(len(self) -1, -2, -1): |
397 if i not in self.filteredrevs: |
398 if i not in self.filteredrevs: |
398 return i |
399 return i |
631 if branch in ("default", ""): |
632 if branch in ("default", ""): |
632 del extra["branch"] |
633 del extra["branch"] |
633 elif branch in (".", "null", "tip"): |
634 elif branch in (".", "null", "tip"): |
634 raise error.StorageError(_('the name \'%s\' is reserved') |
635 raise error.StorageError(_('the name \'%s\' is reserved') |
635 % branch) |
636 % branch) |
636 extrasentries = p1copies, p2copies, filesadded, filesremoved |
|
637 if extra is None and any(x is not None for x in extrasentries): |
|
638 extra = {} |
|
639 sortedfiles = sorted(files) |
637 sortedfiles = sorted(files) |
640 if extra is not None: |
638 if extra is not None: |
641 for name in ('p1copies', 'p2copies', 'filesadded', 'filesremoved'): |
639 for name in ('p1copies', 'p2copies', 'filesadded', 'filesremoved'): |
642 extra.pop(name, None) |
640 extra.pop(name, None) |
643 if p1copies is not None: |
641 if self._copiesstorage == 'extra': |
644 extra['p1copies'] = encodecopies(sortedfiles, p1copies) |
642 extrasentries = p1copies, p2copies, filesadded, filesremoved |
645 if p2copies is not None: |
643 if extra is None and any(x is not None for x in extrasentries): |
646 extra['p2copies'] = encodecopies(sortedfiles, p2copies) |
644 extra = {} |
647 if filesadded is not None: |
645 if p1copies is not None: |
648 extra['filesadded'] = encodefileindices(sortedfiles, filesadded) |
646 extra['p1copies'] = encodecopies(sortedfiles, p1copies) |
649 if filesremoved is not None: |
647 if p2copies is not None: |
650 extra['filesremoved'] = encodefileindices(sortedfiles, filesremoved) |
648 extra['p2copies'] = encodecopies(sortedfiles, p2copies) |
|
649 if filesadded is not None: |
|
650 extra['filesadded'] = encodefileindices(sortedfiles, filesadded) |
|
651 if filesremoved is not None: |
|
652 extra['filesremoved'] = encodefileindices(sortedfiles, filesremoved) |
651 |
653 |
652 if extra: |
654 if extra: |
653 extra = encodeextra(extra) |
655 extra = encodeextra(extra) |
654 parseddate = "%s %s" % (parseddate, extra) |
656 parseddate = "%s %s" % (parseddate, extra) |
655 l = [hex(manifest), user, parseddate] + sortedfiles + ["", desc] |
657 l = [hex(manifest), user, parseddate] + sortedfiles + ["", desc] |