2011-10-13 9 views
39

Jeden z członków naszego zespołu (znajdujący się w innym regionie) odłożył zmiany w P4 za pomocą listy zmian 1234.Jak wyświetlić zmiany P4 z półki?

Teraz, jeśli chcę zobaczyć, jakie pliki są modyfikowane, jakie zmiany, jak mogę to zrobić?

Co to jest polecenie P4, którego powinienem użyć, aby zobaczyć zmiany wprowadzone przez naszego członka zespołu?

Odpowiedz

45

p4 describe -S 1234 powinien załatwić sprawę, zobacz the documentation on describe.

Aby zobaczyć zawartość pliku, użytkownik powinien odrzucić pliki do swojego obszaru roboczego (zakładając, że masz obszar roboczy dla tego samego projektu, nad którym pracuje twój kolega).

Utwórz nowy (pusty) listy zmian z p4 change (skutkuje np 2345), a następnie użyć p4 unshelve (docu), aby uzyskać zmodyfikowane pliki do obszaru roboczego:

p4 unshelve -s 1234 -c 2345 

Jeśli nie chcesz zmodyfikowany pliki w twoim obszarze roboczym dłużej, możesz p4 revert -c 2345 je.

+0

Dzięki! A jeśli chcę pobrać te pliki (które odłożyły zmiany w moim obszarze roboczym P4, jakie byłoby polecenie? – Mike

+2

Możesz użyć P4V do tego – cristobalito

+1

Dziękuję za pomocną odpowiedź. Całkiem irytujące, że nowa argumentacja jest konieczna do wyświetlenia odłożonej zmiany: –

30

Korzystając z GUI, przejdź do Oczekiwanie i usuń wszystkie filtry oprócz użytkownika, w którym wstawisz identyfikator drugiego programisty. Stamtąd powinieneś być w stanie zobaczyć jej Changelists, w tym te z półkami. Kliknij prawym przyciskiem ikonę Półki i wybierz Unshelve. Będziesz musiał mieć aktywny obszar roboczy, który zawiera pliki, które próbujesz uniezależnić.

+22

W rzeczywistości łatwiej jest nacisnąć Ctrl-G i wprowadzić numer listy zmian – ModdyFire

1

Jeśli chcesz zobaczyć tylko lista plików wewnątrz listy zmian (czy jest to półka, w oczekiwaniu lub złożone CL), bez dodatkowych danych, grep Rezultat:

p4 describe -S 12345 | grep -oP '(?=//).*(?=#)' 
+0

'p4 describe -sS' wykonuje zadanie z mniejszą ilością kłopotów.Nasze litery' s' ograniczają wyświetlanie różnic .. – user1167662

+0

-s nadal pokazuje opis listy zmian Ta odpowiedź jest najlepsza podana "jeśli chcesz zobaczyć ** tylko listę plików **" – Timbo

+0

Dzięki tej metodzie możesz nadal trzeba użyć -sS, ponieważ w przeciwnym razie każdy plik pojawi się dwa razy na wyjściu – AliA

6

Załóżmy, że listy zmian 123456 jest przedmiotową listą zmian. Jak wspomniano w poprzedniej odpowiedzi, sposób wyświetlania plików jest związany z tą listą zmian za pomocą polecenia p4 describe -s <changelist>. Tak:

$ p4 describe -s 123456 
Change 123456 by [email protected] on 2013/10/24 15:38:10 *pending* 

    [Shelving my changes for Jane.] 
    Fix memory corruption caused by uninitialized pointer. 

Affected files ... 

... //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 edit 

Gdy wiesz plik (i) w kwestii, istnieje kilka sposobów, aby Diff plików bez odpowiedniej przestrzeni roboczej. Sposób nr 1 jest użycie p4 print:

$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1  > /tmp/old 
$ p4 print -q //depot/branches/JohnsBranch/kernel/vm/[email protected]=123456 > /tmp/new 
$ diff /tmp/old /tmp/new # Or use kdiff3, tkdiff, etc. 
      ... 
    <diff output here> 

Inną metodą jest użycie p4 diff2:

$ p4 diff2 //depot/branches/JohnsBranch/kernel/vm/pageutils.c#1 //depot/branches/JohnsBranch/kernel/vm/[email protected]=123456 
      ... 
    <diff output here based on Perforce server's diff algorithm> 

Obie metody mogą być łatwo włączone do języka skryptowego wyboru.

9

Używając klienta interfejsu użytkownika, naciśnij Ctrl + G. Wyświetlone zostanie okno dialogowe. Wybierz Changelist w combobox i wprowadź numer listy zmian.

+0

Dzięki człowieku, to działa! –

2

Rozwiązanie jhwist jest dobre, jeśli chcesz zobaczyć różnice w plikach.

Jeśli chcesz zobaczyć tylko półki, użyj p4 describe -sS 1234.

Małe litery s ograniczają wyjście z uwzględniania różnic między plikami.

+1

-sS to ważne informacje tutaj! – syam

1

W P4V UI, wybierz

Search - > Go To 

następnie wybrać typ listy zmian (w przypadku 'Czeka na listy zmian'), wprowadź numer listy zmian i kliknij "OK".

Powiązane problemy