我是怀俄明大学的一名学生,研究源代码差异。我一直在从符合以下要求的发行版克隆 git 存储库:
sudo cat /var/lib/apt/lists/* | grep Vcs-Git | awk '{print $2}' > ~/apt-sources
我想知道工程师们是否可行,只需镜像运行 git 服务器(而不是软件包镜像)。我知道大多数软件包实际上都是 Debian 中的上游……但有些东西确实会随着贡献而改变。
我该如何镜像该服务器?该命令的输出是什么?
答案1
您无法镜像服务器,但可以克隆项目。
使用awk
下面的命令进行试运行
find /var/lib/apt/lists/ -type f ! -name "*.gpg" ! -name "lock" -exec awk '/Vcs-Git/ {print "git clone "$2}' {} \; | sort -u
示例输出
git clone https://gitlab.uncompleted.org/debian/postfwd.git
git clone https://gitlab.uncompleted.org/debian/ps-watcher.git
git clone https://git.torproject.org/debian/tor.git
git clone http://smarden.org/git/bcron.git/
git clone http://smarden.org/git/dash.git/
git clone http://smarden.org/git/ipsvd.git/
git clone http://smarden.org/git/twoftpd.git/
git clone http://smarden.org/git/ucspi-tcp.git/
git clone https://mod.gnutls.org/mod_gnutls
git clone https://repo.or.cz/r/git/debian.git/
git clone https://www.github.com/ioerror/tlsdate/
git clone http://tcosproject.org/git/p910nd.git
git clone http://tcosproject.org/git/tcosconfig.git
git clone http://tcosproject.org/git/tcos-configurator.git
git clone http://tcosproject.org/git/tcosmonitor.git
git clone http://uv-cdat.llnl.gov/git/cmip5-cmor-tables.git
git clone http://www.project-moonshot.org/git/moonshot.git
git clone http://www.project-moonshot.org/git/moonshot-ui.git
在我的例子中,这个命令用于克隆存储库11,818
mkdir -p ~/src
mkdir -p ~/src/mirror
cd ~/src/mirror
find /var/lib/apt/lists/ -type f ! -name "*.gpg" ! -name "lock" -exec awk '/Vcs-Git/ {system("git clone "$2)}' {} \; | sort -u