Line 1: |
Line 1: |
− | Initial script to take the latest version of a module and move it to Gitea. | + | ==Initial script to take the latest version of a module and move it to Gitea.== |
− | | |
| <syntaxhighlight lang="shell"> | | <syntaxhighlight lang="shell"> |
| #!/bin/bash | | #!/bin/bash |
Line 67: |
Line 66: |
| echo "Created $1 Repo in $RemoteRepoURL" | | echo "Created $1 Repo in $RemoteRepoURL" |
| exit 0 | | exit 0 |
| + | </syntaxhighlight> |
| | | |
− | | + | ==Issues:== |
− | | |
− | </syntaxhighlight>Issues:
| |
| | | |
| # How to partition the repos between smecontribs and core? different User? - smecontribs and smeserver directories? Then module name.With contribs10 / sme10 directories underneath, and also the common directory. | | # How to partition the repos between smecontribs and core? different User? - smecontribs and smeserver directories? Then module name.With contribs10 / sme10 directories underneath, and also the common directory. |
Line 77: |
Line 75: |
| # Are going to hold the rpm's in the git repo as well? Otherwise we need the .gitignore set to *.rpm | | # Are going to hold the rpm's in the git repo as well? Otherwise we need the .gitignore set to *.rpm |
| # I presume we will hold the file tree tar file in git? | | # I presume we will hold the file tree tar file in git? |
− | # I also presume that we will have one git repo per module? Rather than share a repo across all modules? | + | # I also presume that we will have one git repo per module? Rather than share Importing the a repo across all modules? |
− | #
| + | |
− | #
| + | |
− | #
| + | ==Bringing across all the CVS history as well...== |
| + | |
| + | According to google, git has a parameter "cvsimport" since version 2.1, however the version in my Rocky 8 system is 2.3.1, but has not such parameter. Latest comments I can find are for 2012, and some say it is not very reliable, so I suspect it has been withdrawn. |
| + | |
| + | Only tool I can find is "cvs-fast-import" which will work with git-fast-import to import all the CVS data (inc history) |
| + | |
| + | No rpms seem to exist, so I am having to build it on the Rocky 8 system (on which I also have CVS installed, and have access to the SME CVS) |
| + | |
| + | Code for cvs-fast-import is here : https://gitlab.com/esr/cvs-fast-export |
| + | |
| + | I needed |
| + | |
| + | <syntaxhighlight lang="shell"> |
| + | |
| + | git clone https://gitlab.com/esr/cvs-fast-export |
| + | cd cvs-fast-export |
| + | sudo dnf install dnf-plgins-core |
| + | sudo dnf install epel-release |
| + | sudo dnf config-manager --set-enabled powertools |
| + | sudo buildprep --doc |
| + | make install-bin |
| + | make install |
| + | |
| + | [brianr@rockysmebuild cvs-fast-export]$ cvs-fast-export --help |
| + | Usage: cvs-fast-export [OPTIONS] [FILE]... |
| + | Parse RCS files and emit a fast-import stream. |
| + | |
| + | Mandatory arguments to long options are mandatory for short options too. |
| + | -h --help This help |
| + | -g --graph Dump the commit graph |
| + | -V --version Print version |
| + | -w --commit-time-window=WINDOW Time window for commits(seconds) |
| + | -c --content-only Don't trust commit-IDs |
| + | -l --log=LOG_FILE Log file |
| + | -a --authorlist Report committer IDs from repository |
| + | -A --authormap=AUTHOR_MAP Author map file |
| + | -R --revision-map=REV_MAP Revision map file |
| + | -r --reposurgeon Issue cvs-revision properties |
| + | -T Force deterministic dates |
| + | -e --remote=REMOTE Relocate branches to refs/remotes/REMOTE |
| + | -s --strip=PREFIX Strip the given PREFIX instead of longest common prefix |
| + | -p --progress Enable load-status reporting |
| + | -P --promiscuous Process files without ,v extension |
| + | -v --verbose Show verbose progress messages |
| + | -q --quiet Suppress normal warnings |
| + | -i --incremental=TIME Incremental dump beginning after specified RFC3339-format TIME. |
| + | -t --threads=N Use threaded scheduler with N threads for CVS master analyses. |
| + | -E --embed-id Embed CVS revisions in the commit messages. |
| + | |
| + | Example: find | cvs-fast-export |
| + | [brianr@rockysmebuild cvs-fast-export]$ |
| + | |
| + | </syntaxhighlight> |
| + | |
| + | It includes a "cvsconvert" script which runs cvs-fast-convert and writes to a git repo. |
| + | |
| + | HOWEVER it needs access to the CVS files, not just the cvs client! |