Show More
@@ -56,6 +56,87 b' def recode(s):' | |||
|
56 | 56 | except: |
|
57 | 57 | return s.decode("utf-8", "replace").encode("utf-8") |
|
58 | 58 | |
|
59 | class converter_source: | |
|
60 | """Conversion source interface""" | |
|
61 | ||
|
62 | def __init__(self, path): | |
|
63 | """Initialize conversion source (or raise NoRepo("message") | |
|
64 | exception if path is not a valid repository)""" | |
|
65 | raise NotImplementedError() | |
|
66 | ||
|
67 | def getheads(self): | |
|
68 | """Return a list of this repository's heads""" | |
|
69 | raise NotImplementedError() | |
|
70 | ||
|
71 | def getfile(self, name, rev): | |
|
72 | """Return file contents as a string""" | |
|
73 | raise NotImplementedError() | |
|
74 | ||
|
75 | def getmode(self, name, rev): | |
|
76 | """Return file mode, eg. '', 'x', or 'l'""" | |
|
77 | raise NotImplementedError() | |
|
78 | ||
|
79 | def getchanges(self, version): | |
|
80 | """Return sorted list of (filename, id) tuples for all files changed in rev. | |
|
81 | ||
|
82 | id just tells us which revision to return in getfile(), e.g. in | |
|
83 | git it's an object hash.""" | |
|
84 | raise NotImplementedError() | |
|
85 | ||
|
86 | def getcommit(self, version): | |
|
87 | """Return the commit object for version""" | |
|
88 | raise NotImplementedError() | |
|
89 | ||
|
90 | def gettags(self): | |
|
91 | """Return the tags as a dictionary of name: revision""" | |
|
92 | raise NotImplementedError() | |
|
93 | ||
|
94 | class converter_sink: | |
|
95 | """Conversion sink (target) interface""" | |
|
96 | ||
|
97 | def __init__(self, path): | |
|
98 | """Initialize conversion sink (or raise NoRepo("message") | |
|
99 | exception if path is not a valid repository)""" | |
|
100 | raise NotImplementedError() | |
|
101 | ||
|
102 | def getheads(self): | |
|
103 | """Return a list of this repository's heads""" | |
|
104 | raise NotImplementedError() | |
|
105 | ||
|
106 | def mapfile(self): | |
|
107 | """Path to a file that will contain lines | |
|
108 | source_rev_id sink_rev_id | |
|
109 | mapping equivalent revision identifiers for each system.""" | |
|
110 | raise NotImplementedError() | |
|
111 | ||
|
112 | def putfile(self, f, e, data): | |
|
113 | """Put file for next putcommit(). | |
|
114 | f: path to file | |
|
115 | e: '', 'x', or 'l' (regular file, executable, or symlink) | |
|
116 | data: file contents""" | |
|
117 | raise NotImplementedError() | |
|
118 | ||
|
119 | def delfile(self, f): | |
|
120 | """Delete file for next putcommit(). | |
|
121 | f: path to file""" | |
|
122 | raise NotImplementedError() | |
|
123 | ||
|
124 | def putcommit(self, files, parents, commit): | |
|
125 | """Create a revision with all changed files listed in 'files' | |
|
126 | and having listed parents. 'commit' is a commit object containing | |
|
127 | at a minimum the author, date, and message for this changeset. | |
|
128 | Called after putfile() and delfile() calls. Note that the sink | |
|
129 | repository is not told to update itself to a particular revision | |
|
130 | (or even what that revision would be) before it receives the | |
|
131 | file data.""" | |
|
132 | raise NotImplementedError() | |
|
133 | ||
|
134 | def puttags(self, tags): | |
|
135 | """Put tags into sink. | |
|
136 | tags: {tagname: sink_rev_id, ...}""" | |
|
137 | raise NotImplementedError() | |
|
138 | ||
|
139 | ||
|
59 | 140 | # CVS conversion code inspired by hg-cvs-import and git-cvsimport |
|
60 | 141 | class convert_cvs: |
|
61 | 142 | def __init__(self, path): |
General Comments 0
You need to be logged in to leave comments.
Login now