curran / curran/google-diff-match-patch
diff_cleanupMerge() could be improved
- Lingua principale
- Python
- Stelle
- 17
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
```
Here are some cases I've discovered where diff_cleanupMerge() could do a better
job.
Probably it's not the best place to put those fixes. Or maybe such situations
will never happen upstream in diff itself. Please let me know then.
// this works already
diffs = diffList(new Diff(EQUAL, "g"), new Diff(DELETE, "gg"), new Diff(EQUAL,
"abc"));
dmp.diff_cleanupMerge(diffs);
assertEquals("diff_cleanupMerge: Deletion move left.",
diffList(new Diff(DELETE, "gg"), new Diff(EQUAL, "gabc")), diffs);
// but this and the other two cases - don't
diffs = diffList(new Diff(EQUAL, "gg"), new Diff(DELETE, "g"), new Diff(EQUAL,
"abc"));
dmp.diff_cleanupMerge(diffs);
assertEquals("diff_cleanupMerge: Deletion multi-move left.",
diffList(new Diff(DELETE, "g"), new Diff(EQUAL, "ggabc")), diffs);
diffs = diffList(new Diff(EQUAL, "gdgd"), new Diff(DELETE, "gd"), new
Diff(EQUAL, "abc"));
dmp.diff_cleanupMerge(diffs);
assertEquals("diff_cleanupMerge: Deletion multi-move left.",
diffList(new Diff(DELETE, "gd"), new Diff(EQUAL, "gdgdabc")), diffs);
diffs = diffList(new Diff(EQUAL, "ggg"), new Diff(DELETE, "gg"), new
Diff(EQUAL, "abc"));
dmp.diff_cleanupMerge(diffs);
assertEquals("diff_cleanupMerge: Deletion tricky move left.",
diffList(new Diff(DELETE, "gg"), new Diff(EQUAL, "gggabc")), diffs);
The same applies to right shifts too.
```
Original issue reported on code.google.com by `2sa...@gmail.com` on 10 Jul 2012 at 9:43
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Individua diff_cleanupMerge() nell’implementazione Python e ispeziona i test di cleanup esistenti o i relativi punti di ingresso dei test. Riproduci i quattro casi di left-shift forniti, quindi copri il comportamento analogo di right-shift; il lavoro è completo quando gli elenchi di diff risultanti corrispondono alle trasformazioni previste e i test esistenti passano.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100