Jestem użytkownikiem Git, który próbuje nauczyć się Perforce.
Przykro mi.
Jak można tego dokonać za pomocą narzędzia Perforce?
Jestem lepszym użytkownikiem Git niż jestem użytkownikiem Perforce, więc popraw mnie, jeśli coś wydaje się nie tak. Gorąco polecam czytanie stron man i a tutorial.
To "nie może" być, przynajmniej nie tak, jak robi to Git.
Po utworzeniu odgałęzienia w git
tworzony jest cały katalog repozytorium dla całego stanu repozytorium. Perforce nie obsługuje tego, a raczej "rozgałęzianie" jest bardziej per-file: to znaczy, plik A rozgałęziony A do pliku B, w którym plik punktu B zawiera odwołanie do pliku A mówiącego "Przyszedłem stąd". To odwołanie zwrotne może następnie zostać użyte do określenia wspólnego przodka do celów scalania. Rozumiem jednak, że te referencje zwrotne dotyczą pliku, a Ty możesz dowolnie zintegrować (scalić) dowolny plik. (Porównaj z git, gdzie „nadrzędna popełnić” is your back-odniesienia, ale na całe repozytorium skali).
można rozgałęziać całych zestawów plików przy użyciu p4 integrate
, używając składni typowy z konieczności (np //depot/some/path/...
) . Zazwyczaj należy utworzyć cały katalog w całym katalogu, na przykład //depot/main/my_project
w //depot/release-1.0/my_project
lub coś podobnego. Perforce, o ile mi wiadomo, nie dba o ścieżki: po prostu "rozgałęzia" pliki z jednej lokalizacji do drugiej. Jakikolwiek wzór lub rozsądek na ścieżkach zależy od ciebie.
Dodatkowo można użyć p4 branch
, aby utworzyć "specyfikacje oddziałów", które są w zasadzie sposobem na zapisanie źródłowego zestawu plików i ich miejsc docelowych w celu ułatwienia rozgałęzienia. (Jeśli weźmiesz przykład zwolnienia, możesz ewentualnie połączyć zmiany z powrotem lub scalić kolejne zmiany w wydaniu itp.)
Za każdym razem, gdy współpracowałem z Perforce, gałęzie były bestiami o innym charakterze niż w Git, i tutaj jest trochę różnicy kulturowej. Gałęzie były stosunkowo rzadkie. (Widziałem tylko, że były używane do wydań, nigdy.) Nie używaliśmy ich do gałęzi z funkcjami, może poza największą z funkcji; w porównaniu do git
, gdzie dla mnie "gałąź funkcji" jest zwykle "zajęło" 1 zatwierdzenie ".
Czy używasz strumieni lub tylko tradycyjnych gałęzi perforowanych? Wiele z tego zależy od tego, jaki jest twój tryb działania i struktura. W strumieniach są lekkie gałęzie, a do tworzenia tymczasowych roboczych pseudo-zmian używa się regałów. Tak wiele zależy od struktury twojej organizacji. – gaige