comparison mercurial/context.py @ 12270:166b9866580a

add: recurse into subrepositories with --subrepos/-S flag
author Martin Geisler <mg@lazybytes.net>
date Mon, 13 Sep 2010 13:09:20 +0200
parents fddacca3202e
children e0ee3e822a9a
comparison
equal deleted inserted replaced
12269:877236cdd437 12270:166b9866580a
767 # check current working dir 767 # check current working dir
768 return (self.p2() or self.branch() != self.p1().branch() or 768 return (self.p2() or self.branch() != self.p1().branch() or
769 self.modified() or self.added() or self.removed() or 769 self.modified() or self.added() or self.removed() or
770 (missing and self.deleted())) 770 (missing and self.deleted()))
771 771
772 def add(self, list): 772 def add(self, list, prefix=""):
773 join = lambda f: os.path.join(prefix, f)
773 wlock = self._repo.wlock() 774 wlock = self._repo.wlock()
774 ui, ds = self._repo.ui, self._repo.dirstate 775 ui, ds = self._repo.ui, self._repo.dirstate
775 try: 776 try:
776 rejected = [] 777 rejected = []
777 for f in list: 778 for f in list:
778 p = self._repo.wjoin(f) 779 p = self._repo.wjoin(f)
779 try: 780 try:
780 st = os.lstat(p) 781 st = os.lstat(p)
781 except: 782 except:
782 ui.warn(_("%s does not exist!\n") % f) 783 ui.warn(_("%s does not exist!\n") % join(f))
783 rejected.append(f) 784 rejected.append(f)
784 continue 785 continue
785 if st.st_size > 10000000: 786 if st.st_size > 10000000:
786 ui.warn(_("%s: up to %d MB of RAM may be required " 787 ui.warn(_("%s: up to %d MB of RAM may be required "
787 "to manage this file\n" 788 "to manage this file\n"
788 "(use 'hg revert %s' to cancel the " 789 "(use 'hg revert %s' to cancel the "
789 "pending addition)\n") 790 "pending addition)\n")
790 % (f, 3 * st.st_size // 1000000, f)) 791 % (f, 3 * st.st_size // 1000000, join(f)))
791 if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)): 792 if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)):
792 ui.warn(_("%s not added: only files and symlinks " 793 ui.warn(_("%s not added: only files and symlinks "
793 "supported currently\n") % f) 794 "supported currently\n") % join(f))
794 rejected.append(p) 795 rejected.append(p)
795 elif ds[f] in 'amn': 796 elif ds[f] in 'amn':
796 ui.warn(_("%s already tracked!\n") % f) 797 ui.warn(_("%s already tracked!\n") % join(f))
797 elif ds[f] == 'r': 798 elif ds[f] == 'r':
798 ds.normallookup(f) 799 ds.normallookup(f)
799 else: 800 else:
800 ds.add(f) 801 ds.add(f)
801 return rejected 802 return rejected