Show More
@@ -704,6 +704,27 b' exit 1' | |||
|
704 | 704 | class svn_sink(converter_sink, commandline): |
|
705 | 705 | commit_re = re.compile(r'Committed revision (\d+).', re.M) |
|
706 | 706 | |
|
707 | # iterates sublist of given list for concatenated length is within limit | |
|
708 | def limit_arglist(self, files): | |
|
709 | if os.name != 'nt': | |
|
710 | yield files | |
|
711 | return | |
|
712 | # When I tested on WinXP, limit = 2500 is NG, 2400 is OK | |
|
713 | limit = 2000 | |
|
714 | bytes = 0 | |
|
715 | fl = [] | |
|
716 | for fn in files: | |
|
717 | b = len(fn) + 1 | |
|
718 | if bytes + b < limit: | |
|
719 | fl.append(fn) | |
|
720 | bytes += b | |
|
721 | else: | |
|
722 | yield fl | |
|
723 | fl = [] | |
|
724 | bytes = 0 | |
|
725 | if fl: | |
|
726 | yield fl | |
|
727 | ||
|
707 | 728 | def prerun(self): |
|
708 | 729 | if self.wc: |
|
709 | 730 | os.chdir(self.wc) |
@@ -842,12 +863,14 b' class svn_sink(converter_sink, commandli' | |||
|
842 | 863 | if not os.path.exists(self.wjoin(d, '.svn', 'entries'))] |
|
843 | 864 | if add_dirs: |
|
844 | 865 | add_dirs.sort() |
|
845 | self.run('add', non_recursive=True, quiet=True, *add_dirs) | |
|
866 | for fl in self.limit_arglist(add_dirs): | |
|
867 | self.run('add', non_recursive=True, quiet=True, *fl) | |
|
846 | 868 | return add_dirs |
|
847 | 869 | |
|
848 | 870 | def add_files(self, files): |
|
849 | 871 | if files: |
|
850 | self.run('add', quiet=True, *files) | |
|
872 | for fl in self.limit_arglist(files): | |
|
873 | self.run('add', quiet=True, *fl) | |
|
851 | 874 | return files |
|
852 | 875 | |
|
853 | 876 | def tidy_dirs(self, names): |
@@ -881,15 +904,18 b' class svn_sink(converter_sink, commandli' | |||
|
881 | 904 | self._copyfile(s, d) |
|
882 | 905 | self.copies = [] |
|
883 | 906 | if self.delete: |
|
884 |
self. |
|
|
907 | for fl in self.limit_arglist(self.delete): | |
|
908 | self.run0('delete', *fl) | |
|
885 | 909 | self.delete = [] |
|
886 | 910 | entries.update(self.add_files(files.difference(entries))) |
|
887 | 911 | entries.update(self.tidy_dirs(entries)) |
|
888 | 912 | if self.delexec: |
|
889 | self.run0('propdel', 'svn:executable', *self.delexec) | |
|
913 | for fl in self.limit_arglist(self.delexec): | |
|
914 | self.run0('propdel', 'svn:executable', *fl) | |
|
890 | 915 | self.delexec = [] |
|
891 | 916 | if self.setexec: |
|
892 | self.run0('propset', 'svn:executable', '*', *self.setexec) | |
|
917 | for fl in self.limit_arglist(self.setexec): | |
|
918 | self.run0('propset', 'svn:executable', '*', *fl) | |
|
893 | 919 | self.setexec = [] |
|
894 | 920 | |
|
895 | 921 | fd, messagefile = tempfile.mkstemp(prefix='hg-convert-') |
@@ -900,8 +926,7 b' class svn_sink(converter_sink, commandli' | |||
|
900 | 926 | output = self.run0('commit', |
|
901 | 927 | username=util.shortuser(commit.author), |
|
902 | 928 | file=messagefile, |
|
903 |
encoding='utf-8' |
|
|
904 | *list(entries)) | |
|
929 | encoding='utf-8') | |
|
905 | 930 | try: |
|
906 | 931 | rev = self.commit_re.search(output).group(1) |
|
907 | 932 | except AttributeError: |
General Comments 0
You need to be logged in to leave comments.
Login now