1REPOMAPPER(1)                                                    REPOMAPPER(1)
2
3
4

NAME

6       repomapper - update and manipulate contributor maps
7

SYNOPSIS

9       repomapper [-i] [-h 'host'] 'contribmap' [ updatefiles ]
10

DESCRIPTION

12       Older, centralized version-control systems such as CVS and SVN carry a
13       repository on one host and identify users by their account names on
14       that host. Distributed version-control systems such as Git and
15       Mercurial identify users by a netwide-unique ID consisting of a
16       name-among-humans followed by an email address.
17
18       When moving a repository from a centralized to a distributed system,
19       therefore, one of the prerequisites is comopiling a contributor map
20       that associates each account name on the old system to a DVCS-style ID
21       on the new one. This tool automates parts of that process.
22
23       The main argument file must be a contributor map such as is read by the
24       "authors read" subcommand of reposurgeon(1). It may be a fresh or stub
25       map, produced by "authors write" before any human-name or email
26       information has been added to the repository. Or it may have
27       name-among-humans and email information filled in for some entries.
28
29       A stub map entry looks something like this:
30
31           foonly = foonly <foonly>
32
33       The same entry, fully filled in, might look something like this:
34
35           foonly = Fred Foonly <foonly@fubar.net>
36
37       The default behavior of the tool is to report all map entries, in
38       effect a sorting copy of the file.
39
40       With -i, it reports only entries that are not yet in DVCS form - that
41       is, either the fullname field on the right side of the equals sign is
42       identical to the account name on the left, or the email field contains
43       no @-sign, or both.
44
45       Additional argument files are mined for entries missing in the stub
46       map.
47
48       An argument file containing an equals sign ("=") in its first line, or
49       leading its first line with a hash sign ("#"), is interpreted as a
50       supplementary map file. Each contributor entry with a username not
51       matching any in the first contributor map is copied into the first map,
52       which is output.
53
54       An argument file containing multiple colons on the first line is
55       interpreted as a Unix password file. Only the username and the comment
56       (or 'gecos') field containing the user’s name-among-humans are used.
57       Other fields are ignored. For each entry in the contrib file, this
58       program looks for a username in the password file matching the name to
59       the left of the equal sign. If a match is found, the user’s
60       name-among-humans is extracted from the gecos field and replaces the
61       text between the "=" and the "<".
62
63       Thus, the stub line above and the '/etc/passwd' line
64
65           foonly:x:1000:1000:Fred Foonly,,,:/home/foonly:/bin/bash
66
67       will combine to produce this on output:
68
69           foonly = Fred Foonly <foonly>
70
71       Note that the email-address part (and, if present, the optional
72       trailing timezone field) are not normally modified when a password file
73       is processed.
74
75       However, if the -h option is given, the argument is taken to be a host
76       name which should be appended (after a @) to every email field that
77       does not already contain a @. The argument would typically be the
78       fully-qualified domain name of the repository host.
79
80       Thus, if the passwd file still contains an entry for every committer
81       (which might not be the case if inactive committer accounts were ever
82       removed), -p mode combined with an -h option can produce an entire,
83       valid contributor map.
84
85       If an argument file begins with "From " it is interpreted as a Unix
86       mailbox file - this mode is intended for mining a project’s email
87       archive. The headers are scanned for names. When a name with a user-id
88       part matching an incomplete entry is found, that email address is used
89       to fill in the entry. If there are multiple matches the last is kept.
90
91       Output from this tool is always a contribution map sorted by username.
92

SEE ALSO

94       reposurgeon(1).
95

AUTHOR

97       Eric S. Raymond esr@thyrsus.com. This tool is distributed with
98       reposurgeon; see the project <http://www.catb.org/~esr/reposurgeon>
99       page" .
100
101
102
103                                  2023-02-28                     REPOMAPPER(1)
Impressum