Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/subrepo.py @ 13180:a79e0688a5ee
subrepo: fix git archive parsing of directories and symfiles
author | Eric Eisner <ede@mit.edu> |
---|---|
date | Mon, 20 Dec 2010 13:59:33 -0500 |
parents | b512a7074349 |
children | 413bef846806 |
comparison
equal
deleted
inserted
replaced
13179:b512a7074349 | 13180:a79e0688a5ee |
---|---|
884 tarstream = self._gitcommand(['archive', revision], stream=True) | 884 tarstream = self._gitcommand(['archive', revision], stream=True) |
885 tar = tarfile.open(fileobj=tarstream, mode='r|') | 885 tar = tarfile.open(fileobj=tarstream, mode='r|') |
886 relpath = subrelpath(self) | 886 relpath = subrelpath(self) |
887 ui.progress(_('archiving (%s)') % relpath, 0, unit=_('files')) | 887 ui.progress(_('archiving (%s)') % relpath, 0, unit=_('files')) |
888 for i, info in enumerate(tar): | 888 for i, info in enumerate(tar): |
889 if info.isdir(): | |
890 continue | |
891 if info.issym(): | |
892 data = info.linkname | |
893 else: | |
894 data = tar.extractfile(info).read() | |
889 archiver.addfile(os.path.join(prefix, self._relpath, info.name), | 895 archiver.addfile(os.path.join(prefix, self._relpath, info.name), |
890 info.mode, info.issym(), | 896 info.mode, info.issym(), data) |
891 tar.extractfile(info).read()) | |
892 ui.progress(_('archiving (%s)') % relpath, i + 1, | 897 ui.progress(_('archiving (%s)') % relpath, i + 1, |
893 unit=_('files')) | 898 unit=_('files')) |
894 ui.progress(_('archiving (%s)') % relpath, None) | 899 ui.progress(_('archiving (%s)') % relpath, None) |
895 | 900 |
896 | 901 |