Связан ли `git diff` с `diff`?

использование в качестве файла awk

 { split($10,A,":") ;
  B[A[1]]=$14 ; C[A[1]] += $11  }
 END { for ( a in B ) printf "%s\t%s\t%d\n",a,B[a],C[a] ;}

дает

chromosome_1_unplaced_Contig0.12366 gi|526117831|ref|NM_001281196.1|        637
chromosome_1_unplaced_Contig0.12504 gi|526117831|ref|NM_001281196.1|        314
chromosome_1_unplaced_Contig0.3951  gi|526117967|ref|NM_001281232.1|        107
chromosome_1_Contig0.1980   gi|952977790|ref|NM_001317128.1|        849
chromosome_1_Contig0.3916   gi|733214878|ref|NM_001303082.1|        477

Я не понимал других требований. однако

  • split ($ 10, A, ":") разделит 10-е поле в массиве A в соответствии с ":"
  • B [A [1]] = $ 14; довольно просто

файл программы вызывается с использованием

awk -f se.awk data
3
07.04.2017, 21:56
2 ответа

Формат файла совместим. Git использует лучший формат, diff -u. Он также расширяет его для представления дополнительных типов изменений.

Эквивалентом patch является git apply.Он выполняет изменения в индексе, а также применяет их к рабочему дереву.

Я помню, что git apply был более строгим, чем patch, хотя в справочной документации явное сравнение не проводится. В нем упоминается несколько тестов/ошибок, которые можно включить или отключить.

В справочной документации также предполагается, что его можно использовать как «замену патча GNU» — даже вне репозитория git, если вы используете определенную опцию.

9
27.01.2020, 21:15

git -diff предлагает больше возможностей, чем diff, и я не думаю, что выходные патчи совместимы (без некоторых дополнительных опций ), так как diff будет выдавать такие строки, как

diff -ruNa dir1/file1.txt dir2/file1.txt

в то время как git -diff выдает такие строки, как

diff --git a/dir1/file1.txt b/dir2/file1.txt

(обратите внимание на префикс источника и получателя, переключаемый с помощью --no-prefixи различные параметры)

Вот некоторые дополнительные возможности git -diff:

  • Может записывать перемещенные/переименованные файлы, в то время как diff не может

  • Использует рекурсивный режим, унифицированные различия и обрабатывает новые/удаленные файлы по умолчанию(diff -ruN)

  • Поддерживает различные алгоритмы поиска различий

  • Поддерживает бинарные патчи git, которые кодируют бинарные данные как ASCII

0
12.07.2020, 03:24

Теги

Похожие вопросы