2012-03-09 8 views
7

Czy ktoś ma taki skrypt do udostępnienia?Perforce w oczekiwaniu na skrypt zmiany listy zmian

  • trwa w oczekiwaniu na numer listy zmian jako wejście
  • wyprowadza unified diff (w tym plików otwartych dla ADD)

wiem z doświadczenia wielu ludzi, którzy pracują z Perforce cały dzień są one kopanie wokół. Naprawdę mogłem skorzystać z pomocy w kwestii "plików nie w widoku klienta" podczas porównywania nowo dodanych plików poprzez "p4 diff".

+0

Szukałem czegoś takiego: (http://confluence.atlassian.com/display/CRUCIBLE/Creating+a+Patch+Review#CreatingaPatchReview-PerforcePatchCreationViaTheCommandLine lub to: https://answers.atlassian.com/ questions/9522/automatic-patch-review-script-for-perforce – user675801

Odpowiedz

2

nie miałem czasu, aby znaleźć odpowiednie rozwiązanie, więc użyłem tej jednej wkładki:

p4 describe $CHANGELIST | sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' | xargs p4 diff -du 

Oto jak to działa:

Od -

. .. Oczekujące listy zmian są oznaczone jako "oczekujące", a różnice plików nie są wyświetlane.

p4 describe $CHANGELIST 

sama nie zrobi, ale można go używać jako punkt wyjścia. Dostaje (między innymi) listę plików, które zostały zmienione w twoim $CHANGELIST.

sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' 

Drukuje <depot-file> tylko część linii postaci ... <depot-file>#<revision> <action>

xargs p4 diff -du 

przyjmuje listę plików depot i uruchomić p4 diff -du na nim. Flaga -d przechodzi u (ujednolicony format) do Twojego programu $P4DIFF (powinno to być diff).

+0

Czy to działa w systemie Windows, otrzymuję "sed" nie jest rozpoznawana polecenia.Jak mogę uzyskać różnicę w pliku (skasowanie i dodanie włącznie) w kolorowym formacie, który mogę przesłać pocztą e-mail do peera w celu sprawdzenia? – noobcode

+0

'sed',' xargs' i 'diff' są zwykle obecne w systemach uniksopodobnych. W systemie Windows można instalować zewnętrzne narzędzia podobne do systemu Unix lub próbować korzystać z PowerShell. Zobacz: http://stackoverflow.com/q/127318/110488 –

-1

Czy p4 describe -du changelist nie działa dla Ciebie?

+1

Nie, oto dlaczego: wynik skryptu byłby "różnicą" lub "łatką" (w zależności od preferowanej terminologii). być podane do narzędzia łatki unix, aby w pełni odtworzyć zmiany? "Zauważ, że opis p4 nie zawiera treści plików" otwieranych do dodania ", więc łatka nie będzie zawierać wszystkich nowo dodanych plików – user675801

+0

Ah, widzę - jak obejście można uruchomić "p4 add" w całym katalogu i zignorować pliki, które już istnieją.) Lepsze rozwiązanie (polecenie stanu) nadchodzi w następnym wydaniu. Gdy wiesz, które pliki są dodawane, możesz zrzucić ich zawartość s atch. Będzie więc wymagać skryptu, który myślę. –

+0

'p4 describe' nie wyświetla żadnych różnic, nawet dla zmodyfikowanych plików, jeśli lista zmian jest w toku. –

0

Działa to dla mnie:

p4 diff2 //depot/a/b/c/... //depot/a/b/c/[email protected]=$CHANGELIST | grep -v '<none>' 

Im bardziej specyficzna ścieżka, tym szybsze wykonanie. Możesz również zmienić listę zmian w innej gałęzi.

Powiązane problemy