Est-il possible de configurer git diff pour respecter l'indentation et la syntaxe? Je ne parle pas d'ignorer l'indentation et les espaces, mais plutôt d'utiliser des lignes vides, des niveaux d'indentation et éventuellement des crochets, pour aider à faire correspondre les anciennes lignes à de nouvelles lignes.git diff algorithme qui ne déchire pas les fonctions? (Différent de langue)
E.g. git diff coupe souvent des fonctions et leur docblock, comme ceci:
class C {
/**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
+
+ /**
* Gets your foo up to date.
*/
function foo() {
Quand je préférerais
class C {
+
+ /**
+ * Goes to the bar.
+ */
+ function bar() {
+ return 'bar';
+ }
/**
* Gets your foo up to date.
*/
function foo() {
Dans cet exemple, il est encore tout à fait inoffensif, mais il existe des exemples où les fonctions et leur docblock sont vraiment déchiré en raison de la mise en œuvre diff diffuse et naïf. Remarque: J'ai déjà configuré *.php diff=php
dans ~/.gitattributes
.
EDIT: Un autre exemple: diff Ici git mélange un docblock de propriété avec une méthode docblock:
/**
- * @var int
+ * @param string $str
*/
Je soupçonne que la réponse sera dans l'algorithme diff que vous choisissez, mais je ne pouvais pas trouver un qui a travaillé dans la façon dont vous voulez. – sevenseacat
Comment choisissez-vous un algorithme? – donquixote
Est-ce que --patience a quelque chose à voir avec ça? – donquixote