Dokonałem zmian w wielu plikach w repozytorium SVN z Eclipse.
Następnie przechodzę do katalogu witryny na komputerze z systemem Linux, w którym chcę zaktualizować te zmiany z repozytorium do katalogu tam.
Chcę powiedzieć „svn update project100”, co spowoduje aktualizację katalogów pod „project100” o wszystkie moje dodane i zmienione pliki itp.
JEDNAK nie chcę koniecznie aktualizować zmian, których nie wprowadziłem. Pomyślałem więc, że mógłbym powiedzieć „svn status project100”, ale kiedy to zrobię, otrzymuję zupełnie inną listę zmian, które zostaną wprowadzone, żadnej z moich nie ma na liście, co jest dziwne.
Dlatego, aby mieć pewność, że tylko moje zmiany są aktualizowane w katalogu WWW, jestem zmuszony przejść do każdego katalogu, w którym wiem, że jest zmiana, którą wprowadziłem i jawnie aktualizować tylko te pliki, np. „Svn update newfile1.php” itp. co jest żmudne.
Czy ktoś może rzucić trochę światła na standardową procedurę działania, a mianowicie, jak uzyskać dokładną listę wszystkich zmian, które mają zostać wprowadzone, zanim wykonam polecenie „svn update”? Myślałem, że to polecenie „statusu”.
svn status -q -u
... Pokazuje tylko zmiany aktualizacji i zmiany lokalne, które odnoszą się do plików należących do repozytorium. Nie otrzymujesz znaków zapytania (?) Z plików, które nie są repozytorium.W zależności od tego, co chcesz wiedzieć między kopią roboczą a najnowszym repozytorium serwera svn, bez aktualizowania lokalnej kopii roboczej, oto co możesz zrobić:
jeśli chcesz wiedzieć, co zostało zmienione w repozytorium serwera svn, uruchom komendę:
jeśli chcesz wiedzieć, czy ten sam plik został zmodyfikowany zarówno w Twojej lokalnej kopii roboczej, jak iw repozytorium serwera svn, uruchom polecenie:
jeśli chcesz uzyskać listę plików zmienionych między konkretną wersją a HEAD, uruchom polecenie:
jeśli chcesz otrzymać listę plików zmienionych pomiędzy poszczególnymi wersjami, uruchom polecenie:
jeśli chcesz zobaczyć, co zostanie zaktualizowane (bez faktycznej aktualizacji), uruchom polecenie:
jeśli chcesz wiedzieć jaka zawartość konkretnego pliku została zmieniona w repozytorium serwera svn w porównaniu z twoją kopią roboczą, uruchom komendę:
jeśli chcesz wiedzieć jaka zawartość wszystkich plików została zmieniona w repozytorium serwera svn w porównaniu z twoją kopią roboczą, uruchom polecenie:
źródło
Możesz zobaczyć, co zostanie zaktualizowane (bez faktycznej aktualizacji), wydając:
Więcej szczegółów tutaj .
źródło
svn merge --dry-run --revision BASE:HEAD .
how do I ... without doing an update?
a:first, do an update, then ...
:) :) :)To jest to, czego szukałem. Najpierw sprawdziłem Google, ale w
svn help
końcu przeszedłem do mnie :)źródło
To samo, ale krócej krócej :):
źródło
Możesz użyć 'svn diff', aby zobaczyć różnicę między twoją kopią roboczą a repozytorium.
źródło
svn update
Teoretycznie możesz dokonać wszystkich zmian w gałęzi, którą stworzyłeś na własny użytek. Byłbyś wtedy dość pewien, że tylko ty się do tego zobowiązałeś.
Rozwój funkcji IMHO powinien odbywać się w ten sposób.
Następnie możesz zaktualizować tę maszynę docelową z tej gałęzi zamiast z linii głównej.
źródło