Czy jest możliwe skonfigurowanie git diff w celu przestrzegania wcięć i składni? Nie mówię o ignorowaniu wcięć i spacji, ale raczej o pustych liniach, poziomach wcięć i ewentualnie nawiasach, aby dopasować stare linie do nowych linii.algorytm git diff, który nie rozdziela funkcji? (diff z różnicą językową)
E.g. git diff często przecina funkcji i ich bloku dokumentacyjnym, tak:
class C {
/**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
+
+ /**
* Gets your foo up to date.
*/
function foo() {
Kiedy wolałbym
class C {
+
+ /**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
/**
* Gets your foo up to date.
*/
function foo() {
W tym przykładzie jest to nadal dość nieszkodliwe, ale istnieją przykłady, gdzie funkcje i ich bloku dokumentacyjnym są naprawdę rozdarta z powodu chciwej i naiwnej implementacji diff.
Uwaga: skonfigurowałem już *.php diff=php
w ~/.gitattributes
.
EDIT: Inny przykład: Tutaj git diff miesza się bloku dokumentacyjnym nieruchomości metodą w bloku dokumentacyjnym:
/**
- * @var int
+ * @param string $str
*/
Mam podejrzenie, że odpowiedź będzie w którym algorytm diff Państwo odebrać, ale nie mogłem znaleźć taki, który pracował w sposób chcesz. – sevenseacat
Jak wybrać algorytm? – donquixote
Czy --patience ma coś z tym wspólnego? – donquixote