The krep project on the branch contains the stuffs on the upstream cm
branch and was implemented as a workable toolkit with several sub-commands to
handle git repositories and/or git-repo projects to immigrate into owned
gerrit or git server.
The toolkit based on the tool framework on branch cm, which provides most of
the basic git functions and git-repo supports.
Currently, the toolkit supports the following sub-commands printed by help
sub-command:
$ krep help
Usage: krep subcmd [args] ...
The commands of krep are:
help Print the command summaries
batch Load and executes projects from specified files
git-b Download and import git bare repository
git-p Download and import git repository
pkg-import Import package file or directory to the remote server
pki Alias of "pkg-import"
repo Download and import git-repo manifest project
repo-mirror Download and import git-repo mirror project
topic Print the topic summaries
See more info with "krep help <command>"Though the main idea comes from git-repo, it extends to load the component
named topic in the directory topics, and the sub-commands in the directory
krep_subcmds. The implemented sub-commands prefer to use the standard Python
libraries and the exported class from the exported topic classes, which are
guaranteed to be used continuously. Other classes might be visited but not
encouraged to use at all.
The tool can also support to immigrate the git into a git or gerrit server, for
example, to immigrate the official linux git repository:
$ krep git-p -n kernel/linux --remote git://some-git-server --refs official \
--all --git git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.gitAnd the repo-mirror command supports git-repo projects, for example, AOSP
project:
$ krep repo-mirror --remote git://some-git-server --head-refs aosp --all \
--manifest-url git://android.googlesource.com/platform/manifestThe parameters of the two sub-commands can be coded into a XML file, for
example, project.xml and use the batch sub-command to run together (As
repo-mirror supports the multiple threads, it's not supported to run the two
sub-commands in parellel.)
<?xml version="1.0" encoding="utf-8"?>
<projects>
<project name="aosp" group="android">
<option name="manifest" value="git://android.googlesource.com/platform/manifest" />
<option name="schema" value="repo-mirror" />
<option name="working-dir" value="mirror" />
<option name="refs" value="aosp" />
<replace-patterns category="revision-rp">
<pattern name="tools/repo$" value="~aosp/~~" />
</replace-patterns>
</project>
<project name="kernel/linux" group="gpl,linux,kernel">
<option name="git" value="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git" />
<option name="schema" value="git-p" />
<option name="working-dir" value="linux-stable" />
<option name="refs" value="official" />
</project>
</projects>With the file, batch command could be:
$ krep batch --remote git://some-git-server -f project.xmlThe tool would read the tool configuration file from /etc/default/krepconfig
and ~/.krepconfig. Some configurable values can be put to the files to
simplify the command line, for example:
job = 8
remote = git://some-git-serverNOTE: The project updates to use LGPL v3 as the license. It's appreciated to contribute the fixes and the ideas to improve the tool but it's not mandatory to open source of the plug-ins.