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