aboutsummaryrefslogtreecommitdiff
blob: b313b2c4b7ef4245b8ea474dab2eb8909bc74c3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
# (Be in -*- python -*- mode.)
#
# ====================================================================
# Copyright (c) 2000-2008 CollabNet.  All rights reserved.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution.  The terms
# are also available at http://subversion.tigris.org/license-1.html.
# If newer versions of this license are posted there, you may use a
# newer version instead, at your option.
#
# This software consists of voluntary contributions made by many
# individuals.  For exact contribution history, see the revision
# history and logs, available at http://cvs2svn.tigris.org/.
# ====================================================================

"""This module contains various configuration constants used by cvs2svn."""


SVN_KEYWORDS_VALUE = 'Author Date Id Revision'

# The default names for the trunk/branches/tags directory for each
# project:
DEFAULT_TRUNK_BASE = 'trunk'
DEFAULT_BRANCHES_BASE = 'branches'
DEFAULT_TAGS_BASE = 'tags'

SVNADMIN_EXECUTABLE = 'svnadmin'
CO_EXECUTABLE = 'co'
CVS_EXECUTABLE = 'cvs'
SORT_EXECUTABLE = 'sort'

# A pickled list of the projects defined for this conversion.
PROJECTS = 'projects.pck'

# A file holding the Serializer to be used for
# CVS_REVS_SUMMARY_*_DATAFILE and CVS_SYMBOLS_SYMMARY_*_DATAFILE:
SUMMARY_SERIALIZER = 'summary-serializer.pck'

# The first file contains enough information about each CVSRevision to
# deduce preliminary Changesets.  The second file is a sorted version
# of the first.
CVS_REVS_SUMMARY_DATAFILE = 'revs-summary.txt'
CVS_REVS_SUMMARY_SORTED_DATAFILE = 'revs-summary-s.txt'

# The first file contains enough information about each CVSSymbol to
# deduce preliminary Changesets.  The second file is a sorted version
# of the first.
CVS_SYMBOLS_SUMMARY_DATAFILE = 'symbols-summary.txt'
CVS_SYMBOLS_SUMMARY_SORTED_DATAFILE = 'symbols-summary-s.txt'

# A mapping from CVSItem id to Changeset id.
CVS_ITEM_TO_CHANGESET = 'cvs-item-to-changeset.dat'

# A mapping from CVSItem id to Changeset id, after the
# RevisionChangeset loops have been broken.
CVS_ITEM_TO_CHANGESET_REVBROKEN = 'cvs-item-to-changeset-revbroken.dat'

# A mapping from CVSItem id to Changeset id, after the SymbolChangeset
# loops have been broken.
CVS_ITEM_TO_CHANGESET_SYMBROKEN = 'cvs-item-to-changeset-symbroken.dat'

# A mapping from CVSItem id to Changeset id, after all Changeset
# loops have been broken.
CVS_ITEM_TO_CHANGESET_ALLBROKEN = 'cvs-item-to-changeset-allbroken.dat'

# A mapping from id to Changeset.
CHANGESETS_INDEX = 'changesets-index.dat'
CHANGESETS_STORE = 'changesets.pck'

# A mapping from id to Changeset, after the RevisionChangeset loops
# have been broken.
CHANGESETS_REVBROKEN_INDEX = 'changesets-revbroken-index.dat'
CHANGESETS_REVBROKEN_STORE = 'changesets-revbroken.pck'

# A mapping from id to Changeset, after the RevisionChangesets have
# been sorted and converted into OrderedChangesets.
CHANGESETS_REVSORTED_INDEX = 'changesets-revsorted-index.dat'
CHANGESETS_REVSORTED_STORE = 'changesets-revsorted.pck'

# A mapping from id to Changeset, after the SymbolChangeset loops have
# been broken.
CHANGESETS_SYMBROKEN_INDEX = 'changesets-symbroken-index.dat'
CHANGESETS_SYMBROKEN_STORE = 'changesets-symbroken.pck'

# A mapping from id to Changeset, after all Changeset loops have been
# broken.
CHANGESETS_ALLBROKEN_INDEX = 'changesets-allbroken-index.dat'
CHANGESETS_ALLBROKEN_STORE = 'changesets-allbroken.pck'

# The RevisionChangesets in commit order.  Each line contains the
# changeset id and timestamp of one changeset, in hexadecimal, in the
# order that the changesets should be committed to svn.
CHANGESETS_SORTED_DATAFILE = 'changesets-s.txt'

# A file containing a marshalled copy of all the statistics that have
# been gathered so far is written at the end of each pass as a
# marshalled dictionary.  This is the pattern used to generate the
# filenames.
STATISTICS_FILE = 'statistics-%02d.pck'

# This text file contains records (1 per line) that describe openings
# and closings for copies to tags and branches.  The format is as
# follows:
#
#     SYMBOL_ID SVN_REVNUM TYPE CVS_SYMBOL_ID
#
# where type is either OPENING or CLOSING.  CVS_SYMBOL_ID is the id of
# the CVSSymbol whose opening or closing is being described (in hex).
SYMBOL_OPENINGS_CLOSINGS = 'symbolic-names.txt'
# A sorted version of the above file.  SYMBOL_ID and SVN_REVNUM are
# the primary and secondary sorting criteria.  It is important that
# SYMBOL_IDs be located together to make it quick to read them at
# once.  The order of SVN_REVNUM is only important because it is
# assumed by some internal consistency checks.
SYMBOL_OPENINGS_CLOSINGS_SORTED = 'symbolic-names-s.txt'

# Skeleton version of the repository filesystem.  See class
# RepositoryMirror for how these work.
MIRROR_NODES_INDEX_TABLE = 'mirror-nodes-index.dat'
MIRROR_NODES_STORE = 'mirror-nodes.pck'

# Offsets pointing to the beginning of each symbol's records in
# SYMBOL_OPENINGS_CLOSINGS_SORTED.  This file contains a pickled map
# from symbol_id to file offset.
SYMBOL_OFFSETS_DB = 'symbol-offsets.pck'

# Pickled map of CVSFile.id to instance.
CVS_FILES_DB = 'cvs-files.pck'

# A series of records.  The first is a pickled serializer.  Each
# subsequent record is a serialized list of all CVSItems applying to a
# CVSFile.
CVS_ITEMS_STORE = 'cvs-items.pck'

# The same as above, but with the CVSItems ordered in groups based on
# their initial changesets.  CVSItems will usually be accessed one
# changeset at a time, so this ordering helps disk locality (even
# though some of the changesets will later be broken up).
CVS_ITEMS_SORTED_INDEX_TABLE = 'cvs-items-sorted-index.dat'
CVS_ITEMS_SORTED_STORE = 'cvs-items-sorted.pck'

# A record of all symbolic names that will be processed in the
# conversion.  This file contains a pickled list of TypedSymbol
# objects.
SYMBOL_DB = 'symbols.pck'

# A pickled list of the statistics for all symbols.  Each entry in the
# list is an instance of cvs2svn_lib.symbol_statistics._Stats.
SYMBOL_STATISTICS = 'symbol-statistics.pck'

# These two databases provide a bidirectional mapping between
# CVSRevision.ids (in hex) and Subversion revision numbers.
#
# The first maps CVSRevision.id to the SVN revision number of which it
# is a part (more than one CVSRevision can map to the same SVN
# revision number).
#
# The second maps Subversion revision numbers (as hex strings) to
# pickled SVNCommit instances.
CVS_REVS_TO_SVN_REVNUMS = 'cvs-revs-to-svn-revnums.dat'

# This database maps Subversion revision numbers to pickled SVNCommit
# instances.
SVN_COMMITS_INDEX_TABLE = 'svn-commits-index.dat'
SVN_COMMITS_STORE = 'svn-commits.pck'

# How many bytes to read at a time from a pipe.  128 kiB should be
# large enough to be efficient without wasting too much memory.
PIPE_READ_SIZE = 128 * 1024

# Records the author and log message for each changeset.  The database
# contains a map metadata_id -> (author, logmessage).  Each
# CVSRevision that is eligible to be combined into the same SVN commit
# is assigned the same id.  Note that the (author, logmessage) pairs
# are not necessarily all distinct; other data are taken into account
# when constructing ids.
METADATA_INDEX_TABLE = 'metadata-index.dat'
METADATA_STORE = 'metadata.pck'

# The same, after it has been cleaned up for the chosen output option:
METADATA_CLEAN_INDEX_TABLE = 'metadata-clean-index.dat'
METADATA_CLEAN_STORE = 'metadata-clean.pck'

# The following four databases are used in conjunction with --use-internal-co.

# Records the RCS deltas for all CVS revisions.  The deltas are to be
# applied forward, i.e. those from trunk are reversed wrt RCS.
RCS_DELTAS_INDEX_TABLE = 'rcs-deltas-index.dat'
RCS_DELTAS_STORE = 'rcs-deltas.pck'

# Records the revision tree of each RCS file.  The format is a list of
# list of integers.  The outer list holds lines of development, the inner list
# revisions within the LODs, revisions are CVSItem ids.  Branches "closer
# to the trunk" appear later.  Revisions are sorted by reverse chronological
# order.  The last revision of each branch is the revision it sprouts from.
# Revisions that represent deletions at the end of a branch are omitted.
RCS_TREES_INDEX_TABLE = 'rcs-trees-index.dat'
RCS_TREES_STORE = 'rcs-trees.pck'

# Records the revision tree of each RCS file after removing revisions
# belonging to excluded branches.  Note that the branch ordering is arbitrary
# in this file.
RCS_TREES_FILTERED_INDEX_TABLE = 'rcs-trees-filtered-index.dat'
RCS_TREES_FILTERED_STORE = 'rcs-trees-filtered.pck'

# At any given time during OutputPass, holds the full text of each CVS
# revision that was checked out already and still has descendants that will
# be checked out.
CVS_CHECKOUT_DB = 'cvs-checkout.db'

# End of DBs related to --use-internal-co.

# If this run will output directly to a Subversion repository, then
# this is the name of the file that each revision will temporarily be
# written to prior to writing it into the repository.
DUMPFILE = 'svn.dump'

# flush a commit if a 5 minute gap occurs.
COMMIT_THRESHOLD = 5 * 60