CVS

Z UMP

(Różnice między wersjami)
d (przywrócenie z ::)
(Wylistowanie zawartości katalogu, także z "martwymi" plikami)
(Nie pokazano 4 wersji pośrednich.)
Linia 1: Linia 1:
 +
= Pobieranie i uaktualnianie źródeł z CVS =
 +
 +
Początki edycji UMP-a można zacząć z konta guest - pobierając źródła, nanosząc zmiany, a następnie wysyłając diff-y, czyli pliki różnicowe na FlySpray. CVS zapisuje sobie informacje o nazwie użytkownika i jego hasło w pliku CVS/Root przy pierwszym użyciu danego archiwum. Wystarczy więc podać tylko '''cvs login''', a CVS pokaże nam:
 +
Logging in to :pserver:guest@cvs.ump.waw.pl:2401/home/cvsroot
 +
 +
a następnie '''cvs get''' lub '''cvs update''' dla ściągnięcia/uaktualnienia całości lub poszczególnych katalogów.
 +
 +
Aby po jakimś czasie zmienić dostęp typu guest na własne konto z uprawnieniami do zapisu wykonaj:
 +
 +
cvs -d :pserver:USERNAME@cvs.ump.waw.pl:/home/cvsroot/ login
 +
 +
zastępując oczywiście USERNAME własną nazwą użytkownika. Jeśli nie pomoże, trzeba 1) ręcznie poprawić wpisy we wszystkich plikach ''Root'', albo 2) użyć gotowego skryptu, który to zrobi we wszystkich plikach, albo 3) wykasować poszczególne katalogi i ściągnąć je na nowo.
 +
Więcej na ten temat na stronie [http://ump.fuw.edu.pl/wiki/Edycja#Jak_ju.C5.BC_dostaniesz_has.C5.82o_do_cvs Edycja]
 +
= CVS - przydatne komendy =
= CVS - przydatne komendy =
==Podstawy==
==Podstawy==
Linia 10: Linia 24:
cvs diff -r ''release'' [-r ''release-poprzedni''] ''plik'' > zmiany
cvs diff -r ''release'' [-r ''release-poprzedni''] ''plik'' > zmiany
patch ''plik'' zmiany
patch ''plik'' zmiany
-
Jak przywrócić plik do stanu z wczoraj? uwaga: Nie można cofnąć ostatniego (omyłkowego) commita.
+
Jak przywrócić plik do stanu z wczoraj?
cvs update -p -r 1.wersjaOK ''PLIK.zepsuty.txt'' > akuku.txt
cvs update -p -r 1.wersjaOK ''PLIK.zepsuty.txt'' > akuku.txt
Denerwuje mnie w windows ten wyskakujący notatnik (albo inny edytor w uniksie)
Denerwuje mnie w windows ten wyskakujący notatnik (albo inny edytor w uniksie)
cvs commit -m "Dodalem troche uliczek na Ochocie"
cvs commit -m "Dodalem troche uliczek na Ochocie"
-
== Znalezienie konkretnej zmiany ==
+
== Dodanie nowego pliku ==
 +
Jak dodać: stwórz pusty plik (o nazwie zgodnej z [[Znaczenie_plików_w_projekcie_UMP|konwencją]]), wydaj polecenia ''cvs add nazwapliku; cvs commit nazwapliku'' (plik binarny: dodaj ''-kb''). Wrzucaj zawartość, commituj.
-
żeby znaleźć kto coś konkretnego zmienił, na przykład w Zielonej było Lilli Wenedy, a zostało Wenedy:
+
Jak usunąć: skasuj plik z dysku, wydaj polecenia ''cvs remove nazwapliku; cvs commit''.
 +
Użytkownik nie może kasować katalogów.
-
cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | grep Wenedy
+
Zmiana nazwy: żeby nie stracić historii zmian w pliku, poproś na liście ump-devel@
 +
== Znalezienie konkretnej zmiany ==
 +
żeby znaleźć kto coś konkretnego zmienił, na przykład w Zielonej było Lilli Wenedy, a zostało Wenedy:
 +
cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | grep Wenedy
albo:
albo:
cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | less
cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | less
-
 
i oglądamy:
i oglądamy:
-
 
1.5 (UserX 03-Jan-08): [POLYLINE]
1.5 (UserX 03-Jan-08): [POLYLINE]
1.5 (UserX 03-Jan-08): Type=0x6
1.5 (UserX 03-Jan-08): Type=0x6
Linia 32: Linia 49:
1.5 (UserX 03-Jan-08): DirIndicator=1
1.5 (UserX 03-Jan-08): DirIndicator=1
1.60 (UserX 06-Nov-09): Data0=(51.92639,15.51941),(51.92633,15.5...
1.60 (UserX 06-Nov-09): Data0=(51.92639,15.51941),(51.92633,15.5...
-
 
więc wiadomo dzięki temu, które wersje sobie dokładniej obejrzeć.
więc wiadomo dzięki temu, które wersje sobie dokładniej obejrzeć.
Linia 58: Linia 74:
znajdzie poprawki licząc od wczoraj, żeby nie szukać konkretnych numerów wersji.
znajdzie poprawki licząc od wczoraj, żeby nie szukać konkretnych numerów wersji.
-
 
+
Odkręcenie:
 +
cvs up -A
== Historia zmian ==
== Historia zmian ==
Linia 89: Linia 106:
czyli także "martwe" wersje (pliki skasowane) oraz numerki bieżących
czyli także "martwe" wersje (pliki skasowane) oraz numerki bieżących
 +
Skasowane pliki można również wylistować w taki sposób:
 +
 +
cvs -q rlog -sdead -SNR UMP-PL-OBSZAR/src/Attic
== Przywrócenie poprzedniej wersji ==
== Przywrócenie poprzedniej wersji ==

Wersja z dnia 16:54, 27 lis 2016

Spis treści

Pobieranie i uaktualnianie źródeł z CVS

Początki edycji UMP-a można zacząć z konta guest - pobierając źródła, nanosząc zmiany, a następnie wysyłając diff-y, czyli pliki różnicowe na FlySpray. CVS zapisuje sobie informacje o nazwie użytkownika i jego hasło w pliku CVS/Root przy pierwszym użyciu danego archiwum. Wystarczy więc podać tylko cvs login, a CVS pokaże nam:

Logging in to :pserver:guest@cvs.ump.waw.pl:2401/home/cvsroot

a następnie cvs get lub cvs update dla ściągnięcia/uaktualnienia całości lub poszczególnych katalogów.

Aby po jakimś czasie zmienić dostęp typu guest na własne konto z uprawnieniami do zapisu wykonaj:

cvs -d :pserver:USERNAME@cvs.ump.waw.pl:/home/cvsroot/ login

zastępując oczywiście USERNAME własną nazwą użytkownika. Jeśli nie pomoże, trzeba 1) ręcznie poprawić wpisy we wszystkich plikach Root, albo 2) użyć gotowego skryptu, który to zrobi we wszystkich plikach, albo 3) wykasować poszczególne katalogi i ściągnąć je na nowo. Więcej na ten temat na stronie Edycja

CVS - przydatne komendy

Podstawy

Sprawdzenie kto ostatnio działał

cvs history -cap UMP-Siedlce

Kto co dłubał w pliku

cvs log plik | more

Co się zmieniło w pliku w ciągu ostatnich dwóch godzin

cvs diff -D "-2 hours" plik

Co sie zmieniło w pliku od ostatniego release, cofnij poprawki zrobione miesiąc temu

cvs diff -r release [-r release-poprzedni] plik > zmiany
patch plik zmiany

Jak przywrócić plik do stanu z wczoraj?

cvs update -p -r 1.wersjaOK PLIK.zepsuty.txt > akuku.txt

Denerwuje mnie w windows ten wyskakujący notatnik (albo inny edytor w uniksie)

cvs commit -m "Dodalem troche uliczek na Ochocie"

Dodanie nowego pliku

Jak dodać: stwórz pusty plik (o nazwie zgodnej z konwencją), wydaj polecenia cvs add nazwapliku; cvs commit nazwapliku (plik binarny: dodaj -kb). Wrzucaj zawartość, commituj.

Jak usunąć: skasuj plik z dysku, wydaj polecenia cvs remove nazwapliku; cvs commit. Użytkownik nie może kasować katalogów.

Zmiana nazwy: żeby nie stracić historii zmian w pliku, poproś na liście ump-devel@

Znalezienie konkretnej zmiany

żeby znaleźć kto coś konkretnego zmienił, na przykład w Zielonej było Lilli Wenedy, a zostało Wenedy:

       cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | grep Wenedy

albo:

       cvs annotate UMP-GorzowWlkp/src/ZIELONA_GORA.ulice.txt | less

i oglądamy:

1.5          (UserX  03-Jan-08): [POLYLINE]
1.5          (UserX  03-Jan-08): Type=0x6
1.58         (UserX  05-Nov-09): Label=Wenedy
1.5          (UserX  03-Jan-08): EndLevel=1
1.5          (UserX  03-Jan-08): DirIndicator=1
1.60         (UserX  06-Nov-09): Data0=(51.92639,15.51941),(51.92633,15.5...

więc wiadomo dzięki temu, które wersje sobie dokładniej obejrzeć.

ALE.... na przykład annotate WROCLAW.ulice.txt pokazuje tylko zmiany od 1.302 do 1.610, a wcześniejszych już nie. Nie wiem czy to błąd konfiguracji CVS-a, czy taki ficzer. Można obejrzeć starsze robiąc na przykład:

       cvs annotate -D "1 year ago" WROCLAW.ulice.txt | less

wtedy można np. złapać 1.1-1.186


Wyciągnięcie źródeł z konkretnej daty

cvs checkout -D "data"

wyciągnie źródła z zadanej daty. Najlepiej zrobić to w jakimś osobnym katalogu, czyli:

       mkdir /tmp/aaa
       cd /tmp/aaa
       cvs checkout -D "7 Dec 2009" UMP-JeleniaGora

analogicznie -D w innych przypadkach:

       cvs diff -D yesterday PLIK

znajdzie poprawki licząc od wczoraj, żeby nie szukać konkretnych numerów wersji.

Odkręcenie:

       cvs up -A

Historia zmian

Komenda 'cvs history':

       cvs history -l          - historia ostatnich swoich zmian
       cvs history -l -a       - wszystkich userów

Przy czym na umpowym CVSie coś dziwnie to działa (np. pokazuje rzeczy z 2007/2008, ale także jakieś pojedyncze z 10.2009) - być może historia nie jest w pełni zbierana...


Wylistowanie zawartości katalogu, także z "martwymi" plikami

Komendy 'cvs ls', a także 'rls' i 'dir'

Najlepiej być we właściwym katalogu, bo "'ls'" listuje wg lokalnie trzymanego CVS/Entries.

cvs ls -l -d UMP-JeleniaGora/src
---- 2009-12-04 14:12:18 +0100 1.14            BOLESLAWIEC.ulice.txt
---- 2009-07-21 20:10:25 +0200 1.22            CHOJNOW.ulice.txt
---- 2009-12-08 13:27:51 +0100 1.9             CIEPLICE.ulice.txt
---- 2009-12-08 13:27:51 +0100 1.79            GLOGOW.drogi.txt
---- 2008-07-04 13:52:20 +0200 1.11            GLOGOW.granice.txt
---- 2009-12-09 21:24:50 +0100 1.5        dead GLOGOW.inne.txt
---- 2009-12-09 21:24:50 +0100 1.4        dead GLOGOW.kolej.txt
---- 2008-04-27 18:27:28 +0200 1.3             GLOGOW.miasta.txt

czyli także "martwe" wersje (pliki skasowane) oraz numerki bieżących

Skasowane pliki można również wylistować w taki sposób:

cvs -q rlog -sdead -SNR UMP-PL-OBSZAR/src/Attic

Przywrócenie poprzedniej wersji

(dla zaawansowanych)

Z każdej maszyny klienckiej:

     cvs up -j wersja_aktualna -j wersja_poprzednia inne.drogi.txt

przywraca wersję poprzednią, którą można (poprawić i) wysłać - ale to zostawia wpis w historii w stylu: wersja A dodaje 35 linii, wersja A+n kasuje te same 35 linii.

Z poziomu serwera:

     cvs -d /home/cvsroot admin -o1.2:1.3 PLIK.zczymś.txt

zostaną bez śladów usunięte wersje 2 i 3, nawet jeśli 3 jest ostatnią. Jeśli 1.2 była popsuta, w 1.3 były jakieś inne zmiany, i 1.4 to odkręcenie 1.2, to zapis wersji powinien być

-o1.2::1.4