Mercurial > hg
comparison hgext/convert/subversion.py @ 6716:c9b8d2565b92
convert: reintegrate file retrieval code in sinks
It simplifies the sink interface and all the sinks to handle files data as they
want.
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 19 Jun 2008 00:14:24 +0200 |
parents | f2bd49752f0d |
children | f67d1468ac50 |
comparison
equal
deleted
inserted
replaced
6715:a3c41abfa828 | 6716:c9b8d2565b92 |
---|---|
1011 self.delexec.append(filename) | 1011 self.delexec.append(filename) |
1012 else: | 1012 else: |
1013 if 'x' in flags: | 1013 if 'x' in flags: |
1014 self.setexec.append(filename) | 1014 self.setexec.append(filename) |
1015 | 1015 |
1016 def delfile(self, name): | |
1017 self.delete.append(name) | |
1018 | |
1019 def copyfile(self, source, dest): | |
1020 self.copies.append([source, dest]) | |
1021 | |
1022 def _copyfile(self, source, dest): | 1016 def _copyfile(self, source, dest): |
1023 # SVN's copy command pukes if the destination file exists, but | 1017 # SVN's copy command pukes if the destination file exists, but |
1024 # our copyfile method expects to record a copy that has | 1018 # our copyfile method expects to record a copy that has |
1025 # already occurred. Cross the semantic gap. | 1019 # already occurred. Cross the semantic gap. |
1026 wdest = self.wjoin(dest) | 1020 wdest = self.wjoin(dest) |
1079 self.childmap[parent] = child | 1073 self.childmap[parent] = child |
1080 | 1074 |
1081 def revid(self, rev): | 1075 def revid(self, rev): |
1082 return u"svn:%s@%s" % (self.uuid, rev) | 1076 return u"svn:%s@%s" % (self.uuid, rev) |
1083 | 1077 |
1084 def putcommit(self, files, parents, commit): | 1078 def putcommit(self, files, copies, parents, commit, source): |
1079 # Apply changes to working copy | |
1080 for f, v in files: | |
1081 try: | |
1082 data = source.getfile(f, v) | |
1083 except IOError, inst: | |
1084 self.delete.append(f) | |
1085 else: | |
1086 e = source.getmode(f, v) | |
1087 self.putfile(f, e, data) | |
1088 if f in copies: | |
1089 self.copies.append([copies[f], f]) | |
1090 files = [f[0] for f in files] | |
1091 | |
1085 for parent in parents: | 1092 for parent in parents: |
1086 try: | 1093 try: |
1087 return self.revid(self.childmap[parent]) | 1094 return self.revid(self.childmap[parent]) |
1088 except KeyError: | 1095 except KeyError: |
1089 pass | 1096 pass |