2011-01-01 9 views
7

Byłem zajęty refaktoryzowaniem pliku w naszym projekcie i jako część moich zmian zmieniłem funkcję w bardziej logiczny sposób. Jednak teraz, gdy próbuję przejrzeć moje zmiany, dostaję bałaganu: Aplikacje diff nie mają pojęcia, że ​​funkcje zostały po prostu zmienione i oznaczają 80% zmienionej zawartości pliku.Różne aplikacje wariują, jeśli funkcje w pliku zostały zmienione

Próbowałem zobaczyć różnicę zarówno z "Beyond Compare" i "WinMerge" do tego samego wyniku. Czy jest jakieś ustawienie, które może mi w tym pomóc?

Jak oznaczono, używam C# w systemie Windows.

+2

Czy istnieje opcja ignorowania białych znaków? Może być w dół do tabs vs. spacje. –

+3

jeśli rozpoczęto refaktoryzację za pomocą TYLKO funkcji ponownego zamawiania (tj. Bez faktycznych zmian), powinieneś być pewny swojej zmiany. –

+0

@Alex: Tak, ale wydaje się, że to nie pomaga. – VitalyB

Odpowiedz

3

BeyondCompare (i prawdopodobnie także inne narzędzia) ma funkcję, w której można wybrać linię i wybrać linię w drugim pliku, która ma służyć jako odniesienie. W ten sposób możesz przynajmniej porównać każdą metodę jeden po drugim. W zależności od tego, ile metod masz, może to być opcja. Jednak nadal wymaga to ręcznej i prawdopodobnie żmudnej pracy.

Innym sposobem byłoby po prostu przestawienie metod bez zmiany czegokolwiek i sprawdzenie go. Następnie, gdy już masz zmienioną klasę, możesz użyć narzędzia różnicowego dla wszelkich zmian wprowadzanych w ramach każdej metody.

+0

Good point @ Line reference. Dzięki! – VitalyB

1

Potrzebne jest narzędzie, które rozumie struktury kodu (wyrażenia, instrukcje, deklaracje, funkcje) oraz rodzaje operacji, które użytkownik wykonuje: wstawianie, usuwanie, przenoszenie, kopiowanie, kopiowanie i zmiana nazwy itp. brzmi, jakbyś zrobił kilka "ruchów kodu". Tekstowe programy różnicowe z definicji nie mogą tego zrobić.

Nasza Smart Differencer może to zrobić dla wielu języków: C#, C++, COBOL, Java, PHP, ... Zgłasza różnice w zakresie konstrukcji językowych i jest precyzyjna względem linii/kolumny.

+0

Twoja witryna nie zawiera żadnych informacji o cenach. –

+0

Nie widzę też linku pobierania ... – VitalyB

+0

@Joe White: Cóż, tam * znajduje się * strona z cenami, którą można łatwo znaleźć w menu rozwijanym strony. Nie * było * usterką na stronie cenowej dotyczącej ceny Smart Differencer; to jest teraz naprawione. –

2

Tradycyjne różnice tekstowe są oparte wyłącznie na treści tekstowej. Z tego powodu 80% zawartości pliku zostało zmienione.

Plastic SCM ma inteligentny mechanizm różnicowy o nazwie XDiff. Jest w stanie znaleźć różnice w przeniesionym lub refaktoryzowanym kodzie. Zajrzyj do this post, aby dowiedzieć się więcej o XDiff. Działa również dla wsparcia merge.

Plastic SCM to kompletne rozwiązanie SCM. Możesz go zainstalować i używać tylko narzędzia do porównywania/scalania.

+0

Zainstalowałem Plastic SCM, ale nie widzę danych binarnych "XDiff", o których wspomniałeś. Masz na myśli "binmergetool.exe"? – VitalyB

+0

@VitalyB: Narzędzie do porównywania/scalania to mergetool.exe. XDiff to tylko funkcja. Możesz go uruchomić i ręcznie wybrać pliki. Ale możesz też uwierzytelnić proces. Działa jako narzędzie różnicowe, gdy przekazujesz dwa argumenty (lewy i prawy plik) i narzędzie scalania, jeśli przekazujesz 4 argumenty (źródło, miejsce docelowe, baza, plik wyników). Plik binmergetool.exe jest narzędziem do scalania binarnego. Służy do zarządzania różnicami/scaleniami obrazów i plików binarnych. –

+0

Och. Rozumiem. Wypróbuję to. Dzięki! – VitalyB

Powiązane problemy