Pracowaliśmy nad projektem, a do tego stworzyliśmy szkielet zajęć w naszym głównym oddziale. Teraz zaczynamy kodować, a do tego mamy nową gałąź. Byłoby miło, gdybym mógł przenieść wszystkie nowe pliki z głównej gałęzi do nowej gałęzi. Jednak nie mogę ich jeszcze sprawdzić. Czy możliwe jest zintegrowanie wyrejestrowanej listy zmian? Dzięki.Czy mogę zintegrować wypakowane pliki do innego oddziału na perforce
Odpowiedz
Nigdy nie znalazłem sposobu, aby to zrobić w zręczności, ale możesz przynajmniej częściowo go zautomatyzować.
Zwykle, gdy musiałem coś takiego robić, sprawdzałem pliki w gałęzi, do której chcę przenosić elementy, a następnie użyłem WinMerge do zmiany gałęzi i skopiowania zmian. Gdy to zrobisz, możesz cofnąć zmiany w oryginalnej gałęzi i sprawdzić je w nowym oddziale.
To nie jest najlepsze rozwiązanie (bez automatycznego kasowania/dodawania/usuwania plików w nowym oddziale), ale było najszybszą metodą, jaką wymyśliłem.
Łatwa odpowiedź brzmi - nie, nie możesz. Szybki przegląd dokumentacji Perforce nie był na to gotowy, niestety, ale z mojego doświadczenia każda próba wyciągnięcia dywanu spod serwera Perforce spowoduje, że twoje zmiany zostaną utracone, co sprawi, że będziesz nieszczęśliwy obozowicz.
Utwórz kopię zapasową, utwórz nowy obszar roboczy w nowym oddziale i ponownie zastosuj zmiany, być może za pomocą strategii porównania/scalania określonej w odpowiedzi Herms.
Niezupełnie.
Można oczywiście po prostu otworzyć pliki do edycji w nowym oddziale i ręcznie skopiować zmienione pliki z obszaru roboczego głównej gałęzi do obszaru roboczego nowej gałęzi. Jest to prawdopodobnie najprostszy sposób, jeśli tylko kilka plików.
Here to kilka skryptów, które mogą być przydatne w przypadku większej liczby plików. Np. Za pomocą skryptu P4Shelf można utworzyć archiwum wszystkich zmienionych plików, a następnie automatycznie otworzyć je w dowolnym oddziale z przywróconymi zmianami.
Sprawdź również niektóre other nifty scripts dla Perforce autorstwa Jim Tilander.
Strona pomocy technicznej firmy Perforce wyjaśnia, jak to zrobić: Perforce Knowledge Base: Branching work in progress. Byłoby przyjemniej, gdyby był to pojedynczy krok, który nie wymagałby uruchomienia ośmiu różnych poleceń.
To jest odpowiednia odpowiedź - zrobiłem to ładuje się i jest bardzo łatwe. –
@ user38703: Proszę oznaczyć ją jako poprawną odpowiedź, jeśli jest. –
Zdumiewa mnie, że git jest niestosowny, ponieważ jest "trudny w użyciu", gdy odpowiednik p4 "git rebase" to około 15 poleceń. – RJFalconer
Od wydania 2013.1, droga do oddziału w toku to shelve
praca i unshelve
na oddziale. W szczegółach:
Shelve zaległych zmian:
$ p4 shelve ... Change 182535 created with 10 open file(s). Shelving files for change 182535. edit //info.ravenbrook.com/project/mps/master/code/arenavm.c#26 # etc.
Unshelve nich na oddziale (za pomocą opcji
-b
, który mapuje nazwę pliku za pomocą specyfikacji Branch):$ p4 unshelve -b mps/branch/2013-06-05/diag -s 182535 ... //info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - must resolve //info.ravenbrook.com/project/mps/master/code/[email protected]=182535 before submitting # etc.
Rozwiąż wszelkie połączenia wynikające z
unshelve
, używającp4 resolve -as
, aby szybko wykonać operacje "bezpieczne", a następnie wykonaj polecenie Reszta zp4 resolve
jak zwykle.$ p4 resolve -as //gdr-peewit/info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - copy from //info.ravenbrook.com/project/mps/master/code/arenavm.c # etc. $ p4 resolve No file(s) to resolve.
(Przykładem jest wyjście z prawdziwego przypadku użycia wpadłem właśnie teraz).
przeformułowanie odpowiedź Garetha Reesa powyżej w prostych słowach,
p4 unshelve -b target_branchspec -s changelist
:)
- 1. Perforce: jak zintegrować wiele oddziałów?
- 2. Perforce: przenoszenie nieprzesłanych zmian do innego strumienia
- 3. Unshelve do innego oddziału
- 4. Git: skopiuj wszystkie pliki do katalogu z innego oddziału
- 5. Perforce, jak zintegrować zmianę z inną gałęzią?
- 6. Zatwierdź jeden plik do innego oddziału
- 7. Połączyć żądanie pobrania do innego oddziału
- 8. Kopiowanie nieśledzonego folderu do innego oddziału
- 9. Czy mogę nie przyznać się do innego oddziału w tfs 2008?
- 10. Git: przenoszenie commitów z master do innego oddziału
- 11. Jak znaleźć pliki w Perforce używając P4V?
- 12. Jak połączyć główne zatwierdzenia z innego oddziału?
- 13. utworzyć oddział w Git z innego oddziału
- 14. Git: uzyskiwanie zmian z innego oddziału
- 15. Git kopiowanie zmian z jednego oddziału do innego
- 16. Jak przekazać moje bieżące zmiany do innego oddziału w git
- 17. Jak wyciągnąć z innego odległego oddziału git
- 18. git stosuje zmiany od jednego zatwierdzenia do innego oddziału
- 19. Git przekazuje zdalny punkt kontrolny do innego oddziału
- 20. Jak mogę zintegrować nakładkę radaru na MapView?
- 21. Jak zresetować oddział do innego oddziału z git?
- 22. Jak mogę znaleźć pierwsze zatwierdzenie oddziału?
- 23. Git - Jak sprawdzić, czy oddział został KIEDYKOLWIEK włączony do innego oddziału?
- 24. Perforce dodawanie folderu do składu
- 25. Jak interaktywnie dodawać pliki w Perforce (odpowiednik `git add -p`)
- 26. Sposób na ograniczenie dostępu do oddziału Git?
- 27. Jak mogę usunąć pliki z katalogu skopiowanego z innego katalogu?
- 28. Czy istnieje sposób na usunięcie oddziału na heroku?
- 29. Git: zignoruj niektóre pliki podczas scalania (zachowaj niektóre pliki ograniczone do jednego oddziału)
- 30. Czy mogę dołączyć istniejący div do innego już istniejącego div?
Zobacz link powyżej na temat prac rozgałęzionych w toku. –