
Ich bin Student an der UWyo und untersuche Unterschiede im Quellcode. Ich habe Git-Repositorys von Distributionen geklont, die den folgenden Anforderungen entsprechen:
sudo cat /var/lib/apt/lists/* | grep Vcs-Git | awk '{print $2}' > ~/apt-sources
Ich würde für die Ingenieure da draußen gerne wissen, ob es machbar ist, einfach den Git-Server zu spiegeln, auf dem die Dinge laufen (nicht den Paketspiegel). Ich weiß, dass die meisten Pakete eigentlich Upstream in Debian sind … aber einige Dinge ändern sich, wenn sie beigesteuert werden.
Wie würde ich vorgehen, um diesen Server zu spiegeln? Was sind einige Ihrer Ausgaben für diesen Befehl?
Antwort1
Sie können die Server nicht spiegeln, Sie können die Projekte klonen.
Verwenden Sie den awk
folgenden Befehl für einen Probelauf
find /var/lib/apt/lists/ -type f ! -name "*.gpg" ! -name "lock" -exec awk '/Vcs-Git/ {print "git clone "$2}' {} \; | sort -u
Beispielausgabe
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
und dieser Befehl zum Klonen der Repositories, in meinem Fall11.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
Antwort2
Wenn Sie den Code möchten, der tatsächlich in Ubuntu verpackt ist, Patches und alles, dann sind sie aufLaunchpad, einfach klonbar mitBasar. Sie müssen lediglich den Namen des Quellpakets eines bestimmten Pakets kennen.
Dann können Sie Folgendes tun:
bzr branch lp:ubuntu/<source-package-name>
Anpassen des von Ihnen verwendeten Codes:
awk '/Source/{print $2}' /var/lib/apt/lists/*Packages |
sort -u |
xargs -i bzr branch lp:ubuntu/{}