Istnieje wiele programów, które mogą stworzyć łatkę różnicującą, ale mam naprawdę dużo czasu, próbując ją zastosować. Próbuję rozpowszechniać łatkę i otrzymałem od użytkownika pytanie, jak ją zastosować. Próbowałem więc samodzielnie to rozgryźć i odkryłem, że nie mam pojęcia, a większość narzędzi, które mogę znaleźć, to wiersz poleceń. (Potrafię obsłużyć wiersz poleceń, ale wiele osób zgubiłoby się bez miłego, przyjaznego interfejsu GUI. Więc nie nadają się do tego celu).
Próbowałem użyć TortoiseSVN. Mam łatkę, którą chcę nałożyć. Klikam prawym przyciskiem myszy na poprawkę i w podmenu TortoiseSVN jest opcja, która mówi „Zastosuj poprawkę”. Wszystko, co robi, to podciąga puste okno.
Więc spróbowałem nacisnąć Open. Ma dwie opcje: scalanie i stosowanie ujednoliconych różnic. (Łatka jest na szczęście w ujednoliconym formacie różnic). Ale opcja zastosowania po prostu zwykła nie działa: prosi o łatkę i folder. Jakoś zapomniał poprosić o plik, do którego ma zostać zastosowana łatka! Więc TortoiseSVN po prostu nie działa. Czy istnieje narzędzie oparte na graficznym interfejsie użytkownika systemu Windows, które pobierze poprawkę i plik i zastosuje je poprawnie?
EDYCJA: Patrząc na dotychczasowe odpowiedzi, wydaje się, że Tortoise zrobi to dobrze tylko wtedy, gdy jest to plik, który jest już wersjonowany. Tak nie jest w tym przypadku. Muszę być w stanie zastosować poprawkę do pliku, który nie wyszedł z repozytorium SVN. Właśnie próbowałem użyć Tortoise, ponieważ tak się składa, że wiem, że SVN używa różnic i muszę wiedzieć, jak je zarówno tworzyć, jak i stosować.
Odpowiedzi:
Zastosuj poprawkę
Z TortoiseMerge:
Alternatywne screeny, jeśli otworzysz z TortoiseMerge. Na poniższym ekranie katalog odnosi się do katalogu „scalenia” wspomnianego w kroku 2 powyżej:
Zrzut ekranu graficznego interfejsu użytkownika WinMerge:
źródło
Stworzyłem czyste narzędzie Pythona właśnie do tego. Ma przewidywalne zachowanie na różnych platformach. Chociaż nie tworzy nowych plików (w momencie pisania tego) i nie ma GUI, może być używany jako biblioteka do tworzenia narzędzi graficznych.
AKTUALIZACJA : Powinno być wygodniej z niego korzystać, jeśli masz zainstalowany Python.
źródło
TortoiseMerge to osobne narzędzie dostarczane w pakiecie z TortoiseSVN.
Można go również pobrać osobno w archiwum TortoiseDiff.zip . Umożliwi to zastosowanie ujednoliconych różnic w plikach bez wersji.
źródło
Wiem, że powiedziałeś, że wolisz GUI, ale narzędzia wiersza poleceń dobrze wykonają pracę. Zobacz GnuWin, aby zapoznać się z portem narzędzi unixowych w systemie Windows. Potrzebowałbyś oczywiście polecenia patch ;-)
Możesz jednak napotkać problem z zakończeniem linii. Port GnuWin zakłada, że plik poprawki ma zakończenie linii w stylu DOS (CR / LF). Spróbuj otworzyć plik łatki w rozsądnie inteligentnym edytorze, a on skonwertuje go za Ciebie.
źródło
W TortoiseSVN stosowanie poprawek działa. Musisz zastosować poprawkę w tym samym katalogu, w którym została utworzona . Należy o tym zawsze pamiętać. Oto jak to zrobić w TortoiseSVN:
Kliknij prawym przyciskiem myszy folder, do którego chcesz zastosować poprawkę. Wyświetli okno dialogowe z pytaniem o lokalizację pliku poprawki. Wybierz plik, co powinno otworzyć małe okno z listą plików, które zawiera listę zmienionych plików, a kliknięcie każdego elementu powinno otworzyć okno porównania, które pokazuje, co łatka ma zamiar zrobić z tym plikiem.
Powodzenia.
źródło
Narzędzie patch.exe z instalacji Git działa w systemie Windows 10.
Zainstaluj Git dla Windows, a następnie użyj
"C:\Program Files\Git\usr\bin\patch.exe"
polecenia, aby zastosować poprawkę.Jeśli jakikolwiek komunikat o błędzie, taki jak a,
Hunk #1 FAILED at 1 (different line endings).
pojawił się na wyjściu podczas stosowania poprawki, spróbuj dodać-l
(to jest skrót do--ignore-whitespace
) lub--binary
przełączniki do wiersza poleceń.źródło
Możesz użyć tego natywnego portu Win32 narzędzia poprawki.
Jest dostarczany wraz z większym wyborem innych narzędzi iw przeciwieństwie do Cygwin i podobnych nie potrzebuje żadnych bibliotek DLL ani podobnych. Po prostu wybierz swój mały plik wykonywalny i przechowuj go w dowolnym miejscu.
Proste użycie:
Uzyskaj dodatkową pomoc:
źródło
patch.exe
.patch
. Windows uważa wszystkie exe ze słowempatch
za podejrzane.Możesz zainstalować Cygwin , a następnie użyć narzędzia do łatania wiersza poleceń, aby zastosować poprawkę. Zobacz także tę stronę podręcznika systemu Unix , która dotyczy poprawki .
źródło
Wygląda na to, że TortoiseSVN (TortoiseMerge) wymaga linii
Index: foobar.py
w pliku różnic / poprawek. To jest to, co musiałem zrobić, aby plik poprawki inny niż TortoiseSVN działał z poleceniem Zastosuj poprawkę, klikając prawym przyciskiem myszy TortoiseSVN .Przed:
Po:
Lub jeśli znasz konkretną wersję, nad którą pracował Twój współtwórca:
źródło
Używam MSYS2 z http://www.msys2.org/
Zapewnia on wiele narzędzi takich jak
patch
,which
,git
,tree
, i wiele innych.Po zainstalowaniu MSYS2 wystarczy uruchomić menedżera pakietów, aby zainstalować
patch
:źródło
Łatka informuje, do jakiego pliku zastosować. Nagłówek powinien wyglądać mniej więcej tak (wyświetl go w Notatniku lub ulubionym edytorze tekstu):
W przypadku poprawki do Subversion miałbyś również numery wersji (ponieważ nazwy plików są takie same).
Łata GNU pozwoli ci zastąpić te nazwy, ale nie znam żadnych narzędzi GUI, które zrobiłyby to samo. Sprawdziłbym różne programy porównujące - chociaż nie wygląda na to, że WinMerge obsługuje stosowanie łatek.
źródło
Eclipse powinno być w stanie to zrobić, przejdź do perspektywy TeamSynchronize, a następnie do Project-> Apply patch
źródło
W przypadku projektów Java używałem NetBeans do nakładania plików poprawek. Jeśli poprawiany kod Java nie jest jeszcze projektem NetBeans, utwórz dla niego projekt. Aby utworzyć nowy projekt:
Teraz, gdy masz już projekt, zastosuj poprawkę:
Otóż to. Twoja łatka powinna zostać zastosowana i powinieneś zobaczyć okno porównania pokazujące zmiany.
źródło
Używam już BeyondCompare (komercyjnego) do porównywania i scalania, a to narzędzie ma również możliwość tworzenia, przeglądania i stosowania poprawek.
źródło
Jeśli używasz Mercurial , odbywa się to poprzez „import”. Tak więc w wierszu
hg import
poleceń polecenie lub (--no-commit
opcja może się przydać) lub „Repozytorium” => „Importuj ...” w Hg Workbench.Zauważ, że te domyślnie zatwierdzą zmiany; możesz tego uniknąć, używając
hg import --no-commit
opcji, jeśli używasz wiersza poleceń lub jeśli używasz Hg Workbench, może okazać się przydatne wydaniehg rollback
po scaleniu.źródło
Kiedy stosuję poprawki za pomocą TortoiseSVN, zazwyczaj zapisuję ścieżkę w katalogu głównym pobranego repozytorium. Powinieneś wtedy móc kliknąć poprawkę prawym przyciskiem myszy, przejść do menu TortoiseSVN i kliknąć Zastosuj poprawkę. ApplyPatch powinien automatycznie ustalić, na jakim poziomie w hierarchii katalogów poprawka została utworzona.
W przeszłości miałem jednak problemy z nakładaniem poprawek zawierających nowe pliki lub wymagających zmiany nazw plików. Jakikolwiek algorytm użyty do tego przez Tortoise wydaje się nie radzić sobie zbyt dobrze z tymi scenariuszami. Unicode może powodować podobne problemy.
źródło
Czy masz dwa monitory? Miałem ten sam problem z TortoiseMerge i zdałem sobie sprawę, że kiedy wyłączyłem jeden z monitorów, pojawiło się małe okienko z listą plików. Mam nadzieję, że to ci pomoże.
źródło
Jeśli otrzymujesz komunikat o błędzie „Nie działa kopia”, spróbuj wybrać katalog z okna dialogowego TortoiseMerge, który jest katalogiem roboczym SVN.
źródło
BusyBox portu dla Windows posiada zarówno polecenie diff i patch, ale tylko obsługuje formatu zunifikowane.
źródło
Po prostu użyj:
pamiętaj, aby wykonać to polecenie tylko z folderu, w którym utworzyłeś poprawkę.
źródło