SVN: Tworzenie różnic dla wielu wersji
Miałem prywatną gałąź, do której zrobiłem mnóstwo commitów, potem połączyłem ją z trunkiem i zrobiłem tam kilka drobnych poprawek.
Teraz opiekun bagażnika chce diff z wszystkich moich zmian okrzyknąć, że potrzebujemy wycofania.
Jak mogę to stworzyć? Jeśli potrzebujesz liczb do swoich przykładów, Załóżmy, że
224446
Była moja główna wersja, gdzie połączyłem się z bagażnikiem,
224453
i 224462
Były moje drobne poprawki, i mam niezliczone zmiany, gdy w moim prywatnym branch.
Rozwiązanie (via Martin)
svn diff -r 224452:224453 > ~/tmp/diff.1
svn diff -r 224462:224463 > ~/tmp/diff.2
svn up -r224446
patch < ~/tmp/diff.1 -p0
patch < ~/tmp/diff.2 -p0
svn diff -r 224445 > ~/tmp/changes.patch
Następnie mail ~ / tmp / changes.zabezpiecz bagażnik.
2 answers
Jedną z możliwych procedur byłoby zrobienie tego:
- Tworzenie różnic dla 224453 i 224462 (np. przez
svn diff -r 224452:224453 > diff1.patch
). - Zobacz 224446 (
svn up -r224446
) - zastosuj diffs (np.
patch -p0 -i diff1.patch
) - stwórz diff tego przeciw 224445 (
svn diff -r 224445 > diff2.patch
)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-10 10:18:30
Jedną z opcji byłoby utworzenie gałęzi na 224446, a następnie połączenie w 224453 i 224462. Następnie weź różnicę między tym a 224445 na bagażniku. To powinny być wszystkie zmiany w jednym, i możesz utworzyć go jako plik łatki, jeśli potrzebujesz:
# Branch from your initial checkin
svn cp svn://xyz/trunk@224446 svn://xyz/branches/foo
# Check it out
svn checkout svn://xyz/branches/foo tmp
# Merge in the two changes
svn merge -c 224453,224462 svn://xyz/trunk tmp
# Commit the changes
svn commit tmp -m "Extra commits 224453 and 224462"
# Diff the branch from mainline before original
svn diff svn://xyz/trunk@224445 svn://xyz/branches/foo
Jest to w dużej mierze to samo, co odpowiedź Martina, tylko z różnymi sposobami stosowania zmian i uzyskiwania różnic. Zauważ, że chociaż w tym przypadku dokonałem zmian, tak naprawdę nie musisz - możesz po prostu zrobić svn diff svn://xyz/trunk@224445 tmp
zamiast ostatnie dwa polecenia. Dobrą rzeczą w posiadaniu go w repozytorium jest to, że każdy może zastosować diff w odwrotnej kolejności, aby go cofnąć, jeśli jest to wymagane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-13 06:50:35