Sublime Text – Sublimerge Pro czyli mega Diff

Łukasz Piotrowski Komentarzy 0

    Hejka

    Dziś w kolejnym artykule z cyklu Pluginy do Sublime Text prezentuje świetne narzędzie bo tak można określić ten plugin do robienia Merge i Diff.

    Zwolennicy Vim już się pewnie zaczną czepiać i mówić jaki to VimDiff jest najlepszy :) Powiem szczerze, że Vim i Sublime są bardzo zaawansowane i proste zarazem i jeden drugiemu nie ujmuje funkcjonalności. Ale nie o tym dziś.


    Czym jest Sublimerge Pro

    W sumie łatwiej byłoby powiedzieć czym on nie jest :) Sublimerge Pro jest narzędziem przy pomocy którego możemy zrobić Diff plików, Diff Katalogów (tak, tak :) ), oraz użyć go jako Merge Tool.
    Do tego jest bardzo prosty w obsłudze, przejrzysty i posiada najistotniejsze funkcje które powinno mieć takie narzędzie.

    DirCompare

    Sam plugin posiada możliwości niezliczone. Kilka z nich:

    • 2-way diff czyli porównujemy 2 pliki
    • 3-way diff czyli to sam tylko dla 3 plików (przydatne do pracy z GITem)
    • diff katalogów z możliwością kopiowania w lewo lub prawo
    • podstawową integrację z VCS pozwalającą na porównanie aktualnego pliku z inną jego rewizją z repozytorium
    • możliwość tworzenia tzw. snapshoot otwartego pliku
    • porównywanie otwartych plików

    … oraz wiele wiele innych.

    2-way-diff

    2-way i 3-way diff

    Obecnie w Sublimerge Pro są zaimplementowane 2 podstawowe algorytmy porównywania. Z 2-way generalnie korzysta się dużo bardziej a to za sprawą różnych potrzeb. Jednakże częściej porównujemy 2 pliki ze sobą, czy to przez repozytorium SVN które wspiera tylko 2-way diff, czy też 2 pliki różnych projektów które mamy otwarte, albo jakieś inne twory które mamy na dysku. 2-way działa dosyć wydajnie i sprawnie. Plugin wspiera synchroniczne przewijanie dzięki czemu jesteśmy "w tym samym" miejscu po lewej jak i prawej.

    Z 3-way diff korzystamy już trochę rzadziej. Jednak GITowcy będą zadowoleni, ponieważ nie wiele jest dobrych narzędzi które oferują ten algorytm porównywania. W tej chwili 2-way jak i 3-way jest możliwy do uruchomienia nie tylko poprze GUI ale też spod konsoli dzięki czemu możemy zintegrować je z GIT, SVN czy też Mercurial. O tym jak tego dokonać będzie dalej.

    3-way-merge

    Directory Diff

    Cóż, Meld jest chyba jednym z bardziej znanych programów który potrafi robić Diff dla katalogów. Jednak nie jest dostępny pod Windows (mnie to tam nie przeszkadza :) ). Nasza opisywana wtyczka potrafi dokonać porównania 2 dowolnych katalogów.

    Plugin sprawdza najgłębszą różnicę dzięki czemu na dzień dobry widzimy który katalog ma różnicę. Nie koniecznie musi to być różnica na poziomie 1-ego zagnieżdżenia ale może być na poziomie ostatniego. Dzięki temu widzimy które drzewo się zmieniło.

    Command Line

    Na chwilę obecną z tego co mi wiadomo Command Line jest dość ubogi. Zawiera jedynie udokumentowane 2 opcje dla 2-way i 3-way Diff.
    Jednakże sytuacja i potrzeba zmusiła mnie do napisania do Twórcy o zapytanie dla Dir Diff. Okazało się że to też jest tylko jeszcze brak dokumentacji. Może jeszcze jest w fazie testów? Kto wie.

    Ja jednak przedstawię 3 komendy które możemy wykonać z poziomu konsoli:

    • 2-way diff
      subl -n –wait "file_1" "file_2" –command "sublimerge_diff_views {\"left_read_only\": true, \"right_read_only\": true}"
    • 3-way diff
      subl -n --wait "remote_file" "base_file" "local_file" "merged" --command "sublimerge_diff_views"
    • Directory Diff – nieoficjalnie
      subl --command "sublimerge_diff {\"left\": \"/somewhere/Project/devel\", \"right\": \"/somewhere/Project/stable\"}"

    Tak jak wspominałem command na porównanie katalogów jest udostępniany nieoficjalnie. Brak w dokumentacji oznak o jej istnieniu więc i działanie może być różne. Mogą się zmienić np. parametry sposób wywołania itp. Raczej nie zostanie wywalone więc o to mogę być spokojny :)

    Klawiszologia

    Tutaj nie ma co się zbytnio rozpisywać. Jest dosłownie kilkanaście skrótów które trzeba opanować. Jednak tych najpotrzebniejszych jest dosłownie kilka.

    [ctrl]+[alt]+[d] = Wyświetla meu Sublimerge
    [ctrl]+[alt]+[d] - Wyświetla menu nawigatora
    [ctrl]+[alt]+[=] - Przejdź do następnej różnicy
    [ctrl]+[alt]+[-] - J.w. tyle że do poprzeniej
    [ctrl]+[alt]+[,] - Przenieś zmiany z Prawj do lewej ( < )
    [ctrl]+[alt]+[.] - To samo tyle że odwrotnie ( > )
    [ctrl]+[alt]+[/] + [,] - Wszystkie z Prawej do Lewej ( << )
    [ctrl]+[alt]+[/] + [.] - Wszystkie z Lewej do Prawej ( >> )

    Skróty są takie same jak w przypadku widoku dla plików, działanie również analogiczne. Jeden wyjątek:

    [ctrl]+[alt]+[d] - Wejście do katalogu niżej

    Aby wyjść wyżej z katalogu trzeba przesunąć się za pomocą [ctrl]+[alt]+[-] na samą górę i jeszcze wyżej :)

    • Podstawowy widok projektu
    • Widok porównywania plików
    • Porównywanie Katalogów

    diff-toolbar

    Podstawowa integracja z VCS

    Autor postanowił zaimplementować jedna bardzo przydatną dla mnie funkcję. Mianowicie możemy aktualny plik porównać z jego dowolną wersją w repozytorium w którym się znajdujemy. Dzięki czemu mamy możliwość podglądu zmian z wcześniejszych wersji. Jednakże zmiany porównujemy z aktualnego stanu otwartego pliku, a nie jego ostatniej wersji.

    Pozostałe

    Sublimerge ma jeszcze wiele, wiele innych opcji. Opisywanie ich tutaj zajęło by jeszcze pewnie 2x tyle :)
    Jednak z ważniejszych można wymienić: Porównywanie ze schowkiem, wyświetlanie nieskomitowanych zmian, nie pushowanych zmian, porównywanie rewizji i inne.

    Podsumowanie

    Sublimerge Pro jest bardzo trafionym narzędziem (bo tak można go określić zamiast miana plugin) który bardzo ułatwia prace dla programistów i webdeveloperów. Prostota i klarowność ułatwiają kontakt z okienkami, a ilość skrótów jest na tyle minimalna, że bardzo łatwo jest się ich nauczyć.

    Najistotniejsze jest to że Autor pobiera za plugin opłatę licencyjną. Nie jest ona wysoka bo zaledwie 19$. Są to śmieszne pieniądze ale warte wydania, bo autor się bardzo napracował. Jeżeli nie wykupimy to tak jak w przypadku samego Sublime wyskakuje nam czasami okienko :)

    Na kolejny wielki plus zasługuje sam autor. Wielokrotnie do Niego pisałem z problemami i pytaniami. Czas reakcji jest niebywale krótki. Czasami potrafił odpisywać na problemy w przeciągu 5 min.

    Dokumentację znajdziecie pod adresem: Sublimerge Pro

    Tym miłym akcentem żegnam się, i czekam na uwagi, sugestię lub pytania jeżeli takowe ktoś posiada.
    Hej

    Inne artykuły

    Top