Kiedyś korzystałem z Windows, SVN, Tortoise SVN i Beyond Compare. To była świetna kombinacja do robienia recenzji kodu.
Teraz używam OSX i Git. Udało mi się połączyć skrypt bashowy z Gitx i DiffMerge, aby znaleźć ledwo akceptowalne rozwiązanie.
Przez ponad rok miałem problemy z konfiguracją i podobnymi. Próbowałem także użyć przeglądarki różnic Github i przeglądarki różnic Gitx, więc to nie tak, że nie dałem im szansy.
Jest tak wielu inteligentnych ludzi, którzy robią świetne rzeczy z Git. Dlaczego nie różnicować się z opcją obejrzenia całego pliku? Z ludźmi, którzy korzystali z obu, nigdy nie słyszałem o kimś, kto bardziej lubi widok +/-, przynajmniej na więcej niż szybką kontrolę.
Odpowiedzi:
Nie mogę mówić w tej sprawie za Linusem, ale sposób, w jaki git radzi sobie z difftools, jest bardzo unikalny, mówiąc filozoficznie. git robi to, co robi bardzo dobrze, i używa zewnętrznych narzędzi do wszystkiego innego, w tym bardziej wyrafinowanego różnicowania i łączenia.
Używam DiffMerge z git również na OS X i nie musiałem uciekać się do żadnych powłok bashowych. To było trudne, ale skonfigurowałem ustawienia git dla narzędzia difftool i scaletool, aby bezpośrednio wywoływać DiffMerge, a teraz mogę wyświetlać różnice i rozwiązywać konflikty scalania w doskonałym, wizualnym narzędziu strony trzeciej.
Oto moja konfiguracja:
źródło
git diff --stat
. Daje ładną graficzną listę wszystkich zmienionych plików wraz z liczbą zmienionych linii.Zauważysz, że sama SVN również nie oferuje rozwiązania równoległego. To, co wymieniłeś, to narzędzia innych firm. Podobnie jak w przypadku większości rzeczy w git, jest to niezwykle konfigurowalne i ma świetne wsparcie narzędzi po wyjęciu z pudełka. Czy masz skonfigurowane narzędzie do łączenia ? Jeśli nie, powinieneś. Jeśli tak, spróbuj
git difftool
. Następnie zajrzyj na stronę podręcznika, aby uzyskać informacje o opcjach konfiguracji.Używam KDiff3 jako narzędzia do łączenia, ponieważ jest to miłe, wieloplatformowe narzędzie i bez dalszej konfiguracji
git difftool
robi dokładnie to, o co prosisz.źródło
To filozofia * nix. Wiele osób korzystających z tych narzędzi spędza dużo czasu w terminalu. Terminal nie wymaga od nas przesuwania rąk z klawiatury na mysz. Wiem, że wolę styl +/- niż wizualne narzędzia porównywania / scalania, głównie dlatego, że dbam tylko o różnice. Zależy mi na 3-4 liniach wokół zmiany i na samej zmianie. Wszystko inne to dodatkowe informacje, które naprawdę mi nie pomagają.
Różnice są powszechnie używane, aby szybko zobaczyć, co zostało zmienione. Nie czytać kodu.
Nigdy nie uważałem narzędzi wizualnego porównywania za bardzo przydatne w porównaniu do domyślnego porównania w systemach GNU. Jedyne, co mnie zmuszają, to zaczynać bawić się myszką i zmuszać mnie do przewijania pliku, wymyślenia interfejsu użytkownika, a następnie z trudem wracam do wiersza poleceń, gdzie mogę coś zrobić z problemem, który widzę w diff .
źródło
Z mojego osobistego użytku, myślę, że odpowiedź jest głównie taka, że różnice są na tyle krótkie, że to nie ma znaczenia.
Do recenzji kodu używam w pełni funkcjonalnego narzędzia do sprawdzania kodu, które zapewnia mi wszystko, co lubię - takie jak komentarze, podświetlanie składni i widok obok siebie.
Używam
git diff
prawie wyłącznie podczas kodowania pomostowego do zatwierdzenia; W takim przypadku różnice są wystarczająco małe i wystarczająco nowe, że nie muszę widzieć kontekstu, aby pamiętać, co się dzieje.Moje wybrane narzędzie do sprawdzania kodu Phabricator lub ewentualnie narzędzia zintegrowane z IDE, które uwzględniają kontekst językowy. Myślę, że przepływ żądań ściągania przez github jest okropny dla przeglądu kodu, głównie dlatego, że pokazuje zunifikowane diff, a nie obok siebie.
źródło