Das Infolexikon
...und Blog über die Uni FrankfurtInformatik und Kram
Da wir lange nicht wußten, wo wir das für die Uni ausgearbeitete Material unterbringen sollten und auch einen schrecklichen Drang hatten der Welt diverse Sachen aufzudrücken...
| CVS easy Howto Server und Client |
Da ich selbst den ganzen CVS Kram eigentlich nicht zwingend jeden Tag nutze, mußte ich jetzt mal wieder alles nachschlagen. Da dachte ich mir ich schreibe es hier einfach mal nieder, damit zumindestens ich nicht jedes mal wieder quer durchs Netz muß bis ich mal wieder was nützliches und vielleicht nicht zu umfangreiches gefunden habe...
Zuerst wollen wir mal flott einen CVS Server aufsetzen, ganz ohne ssh und so Kram, weil wir ja kein NSA Projekt entwickeln sondern nur ein ganz einfaches GPL Projekt.
Also dann mal los, hands-on quasi:So da haben wir ja auch schon einen Server fertig.
Jetzt noch schauen wie das alles so funktionieren könnte mit dem CVSen von einem Client aus.
Auch alles direkt hier hands-on und so:So das wars auch schon,
und wieso das ganze?
Na ja, ist doch klar LapLock kriegt nen CVS-Server deshalb hier mal schnell zusammengefaßt, damit nicht immer wieder danach gesucht wird^^
Also dann mal los, hands-on quasi:
# installiere cvs
pacman -S cvs
# erstelle das repository
cvs -d /some/path/to/cvsroot init
# erstelle user (gruppe automatisch mit)
useradd cvs
# vergebe rechte
chown -R cvs.cvs /some/path/to/cvsroot
# füge zeile zur /etc/services bei
# (könnte schon drin sein, aber 2 mal macht auch nix)
echo "cvspserver 2401/tcp #CVS PServer" >> /etc/services
# wir werden mal xinetd benutzen, dafür folgendes file
cat > /etc/xinetd.d/cvspserver << "EOF"
service cvspserver
{
socket_type = stream
protocol = tcp
wait = no
user = root
passenv =
server = /usr/bin/cvs
server_args = --allow-root=/some/path/to/cvsroot pserver
disable = no
}
EOF
# so nun noch flott xinetd restarten
/etc/rc.d/xinetd restart
# jetzt können wir in den cvs user wechseln
su cvs
# dann noch das passwort für den anoncvs-user
# das macht man meist mit sowas zB:
cat > /tmp/passwd.pl << "EOF"
#!/usr/bin/perl
srand (time());
my $randletter = "(int(rand(26))+(int(rand(1)+.5)%2?65:97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "$plaintext:${crypttext}:cvs";
EOF
# so mit dem script können wir nun unsere passwd
# erstellen und an die richtige stelle packen
perl /tmp/passwd.pl anoncvs > /some/path/to/cvsroot/CVSROOT/passwd
# damit haben wir auch ein passwort erstellt
# das jetzt noch schnell sichern
chmod 400 /some/path/to/cvsroot/CVSROOT/passwd
Jetzt noch schauen wie das alles so funktionieren könnte mit dem CVSen von einem Client aus.
Auch alles direkt hier hands-on und so:
# ersteinmal den CVSROOT exportieren export CVSROOT=:pserver:anoncvs@meinserver.de:/some/path/to/cvsroot/ cvs login # dann das passwort eingeben, bei unserem beispiel war dies auch anoncvs # jetzt mal schaun was können wir alles machen # importiere existierendes projekt ins repository cd /path/to/my/projektname cvs import -m "initial cvs import" projektname firmenname start # "start" ist eine art versionsinfo, mit dem import wird _alles_ im aktuellen # verzeichniss als projekt angesehen und ins cvs importiert # toll jetzt kann man woanders das projekt auschecken cd /bla/workdir cvs co projektname # und er zieht alles komfortabel ins workdir # jetzt hat man was lokal geändert, weiß aber nicht was genau # im workdir einfach mal cvs update # zeigt einem mit einem "M" vor dem Dateinamen, dass hier # was geändert wurde # aber ich will natürlich genau sehen was geändert wurde cvs -Q diff -c # zeigt mir jetzt context-diffs, die mir schon genau zeigen wo und # was jetzt genau geändert wurde... # na ja und jetzt haben wir hier lokal was geändert und wollen # dass alle ihren spaß dran haben, also commiten wir einfach cvs commit -m "hier eine beschreibung dieses commits" # und fertig... # interessant sind noch cvs log cvs status # selbsterklärend eigentlich, aber na ja, man kann ja auch # nach der referenz im netz wühlen
und wieso das ganze?
Na ja, ist doch klar LapLock kriegt nen CVS-Server deshalb hier mal schnell zusammengefaßt, damit nicht immer wieder danach gesucht wird^^
| Erstellt | 8. Februar 2008 12:14:43 | Geändert | 8. Februar 2008 12:14:43 |
|---|---|---|---|
| Von | Markus Meissner | Kategorien | Linux |
| 0 Kommentar(e) | |||