унифицированный diff для изменений кодового блока - PullRequest
1 голос
/ 17 февраля 2012

У меня есть старый программный код, подобный этому:

X {
  Y {
    A;
    B {
      C;
    }
  }
  1;
}

и новая версия, в которой один блок изменяется следующим образом:

X {
  Z {
    q {
      x;
    }
    y;
  }
  2;
}

Теперь, когда я делаю унифицированный diff, тогда яget:

 X {
-  Y {
-    A;
-    B {
-      C;
+  Z {
+    q {
+      x;
     }
+    y;
   }
+  2;
 }

Что мне не нравится, так это то, что блок "Y" полностью изменен на "Z", но diff показывает "}" как неизмененные строки между другими изменениями, и это делает изменения большого блока не очень хорошочитаемый, где весь удаленный и добавленный блок нарезан с помощью "}", а не вместе как один большой блок.

Есть ли какой-нибудь способ получить разностный вывод примерно так?

 X {
-  Y {
-    A;
-    B {
-      C;
-    }
-  }
+  Z {
+    q {
+      x;
+    }
+    y;
+  }
+  2;
 }
...