![我怎样才能在 git 中比较二进制文件?](https://linux22.com/image/1394939/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%9C%A8%20git%20%E4%B8%AD%E6%AF%94%E8%BE%83%E4%BA%8C%E8%BF%9B%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
为了在 git 中比较二进制文件,我假设我需要设置一个 difftool。
哪些 difftools 有效?如何输入参数?
答案1
如果您想强制 git 将二进制文件差异显示为纯文本差异,请使用--text
如下选项:
git diff --text
答案2
您可以textconv
为文件类型设置配置选项。请参阅“执行二进制文件的文本差异”gitattributes(5). 您应使用什么取决于文件类型。
示例 1
假设您想要比较 zip 文件的内容。在这种情况下,您应该输入以下文件之一$XDG_CONFIG_HOME/git/config
或$HOME/.gitconfig
或$GIT_DIR/config
。
[diff "zip"]
textconv = unzip -v
下次您要求对 repo 中的 zip 文件进行差异比较时,它将调用unzip -v
两个版本并对结果文本进行差异比较。
示例 2
对于 PDF 文件,您可以使用例如pdfinfo
;
[diff "pdf"]
textconv = pdfinfo
示例 3
如果没有针对某种文件类型的特定信息实用程序,您可以使用hexdump
(FreeBSD 和 OSX 自带,Linux 上也可用):
[diff "bin"]
textconv = hexdump -v -C
答案3
罗兰史密斯(Roland Smith)的回答很有帮助,但目前并不完整(参见评论) - 这分为两部分。
.git/config
您可以在存储库文件或个人全局$XDG_CONFIG_HOME/git/config/.gitconfig
(通常 )文件中定义新的 diff 命令$HOME/.gitconfig
,例如使用以下十六进制 diff 命令hexdump
:
[diff "hex"]
textconv = hexdump -v -C
binary = true
接下来,您需要使用存储库的.gitattributes
文件来告诉 git 应该使用这个特殊的 diff 命令来使用哪些文件:
# Binary files (no line-ending conversions), diff using hexdump
*.bin binary diff=hex
与文件一样.gitignore
,该.gitattributes
文件也应该被签入到您的存储库中。
就我而言,我有几个不同的文件扩展名,我想将它们视为二进制文件(例如,如果在 Windows 上使用 git,则避免任何行尾转换),并且还可以通过以下方式查看任何差异hexdump
:
https://github.com/peterjc/galaxy_blast/commit/5ec4695e6c3da3926fb100ca006f0f3e88c53c3d
也可以看看https://github.com/resin-io/etcher/pull/1367另一个例子是定义一个 hexdump diff 命令用于图像文件。
答案4
我喜欢@qwr回答以上,但我想在十六进制转储模式下看到它,而不是瘪(压缩)base85 “Git 二进制补丁”格式。如果我使用@peterjc 的回答从上面,我得到了两个十六进制转储之间的差异,这就像连接两个十六进制转储一样,所以不是很有用。
因此,我决定修补 git(Gentoo 上的 v2.37.3)以添加仅在模式下有效的--hexdump
参数,现在它看起来像这个例子:git diff
--binary
$ git diff --hexdump --binary HEAD~1 "./dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG"
diff --git a/txt/papersheets/dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG b/txt/papersheets/dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG
index 263d047bf61e2104157d4b1feda5b77a01000847..c78a9a1ddddd0267dc490711eaf1723e38767b09 100644
GIT binary hexdump (non-reusable, for human eyes only) patch
delta 34
CC A0 18 C7 FD 17 02 FF D8 83 87 11 87 87 11 01 |................|
87 87 11 02 87 87 11 03 87 87 11 04 B7 87 11 05 |................|
C5 FE |.. |
delta 4140
C7 FD 17 CC A0 18 7F FF D8 FF E1 11 83 45 78 69 |.............Exi|
66 00 00 49 49 2A 00 08 00 00 00 0A 00 0F 01 02 |f..II*..........|
00 0E 00 00 00 86 00 00 00 10 01 02 00 06 00 00 |................|
00 A6 00 00 00 12 01 03 00 01 00 00 00 01 00 00 |................|
00 1A 01 05 00 01 00 00 00 DE 00 00 00 1B 01 05 |................|
00 01 00 00 00 E6 00 00 00 28 01 03 00 01 00 00 |.........(......|
00 02 00 00 00 31 01 02 00 26 00 00 00 B6 00 00 |.....1...&......|
00 32 01 02 00 14 00 00 00 EE 00 00 00 13 02 03 |.2..............|
00 01 00 00 00 02 7F 00 00 00 69 87 04 00 01 00 |..........i.....|
00 00 02 01 00 00 76 02 00 00 53 6F 6E 79 20 45 |......v...Sony E|
72 69 63 73 73 6F 6E 00 00 00 00 00 00 00 00 00 |ricsson.........|
00 00 00 00 00 00 00 00 00 00 57 38 30 30 69 00 |..........W800i.|
00 00 00 00 00 00 00 00 00 00 52 31 42 43 30 30 |..........R1BC00|
32 20 20 20 20 20 70 72 67 43 58 43 31 32 35 30 |2 prgCXC1250|
30 39 32 5F 45 55 5F 31 5F 43 41 20 34 2E 35 00 |092_EU_1_CA 4.5.|
00 00 48 00 00 00 01 00 00 00 48 00 00 00 01 00 |..H.......H.....|
00 00 32 30 30 30 7F 3A 30 38 3A 30 39 20 31 31 |..2000.:08:09 11|
3A 31 38 3A 32 32 00 16 00 9A 82 05 00 01 00 00 |:18:22..........|
00 10 02 00 00 9D 82 05 00 01 00 00 00 18 02 00 |................|
00 27 88 03 00 01 00 00 00 64 00 00 00 00 90 07 |.'.......d......|
00 04 00 00 00 30 32 32 30 03 90 02 00 14 00 00 |.....0220.......|
00 20 02 00 00 04 90 02 00 14 00 00 00 34 02 00 |. ...........4..|
00 01 91 07 00 04 00 00 00 01 02 03 00 04 92 0A |................|
00 01 00 00 00 48 02 00 00 07 92 03 00 01 00 00 |.....H..........|
00 02 00 00 00 08 7F 92 03 00 01 00 00 00 00 00 |................|
00 00 09 92 03 00 01 00 00 00 00 00 00 00 00 A0 |................|
07 00 04 00 00 00 30 31 30 30 01 A0 03 00 01 00 |......0100......|
00 00 01 00 00 00 02 A0 04 00 01 00 00 00 60 06 |..............`.|
00 00 03 A0 04 00 01 00 00 00 C8 04 00 00 05 A0 |................|
04 00 01 00 00 00 58 02 00 00 01 A4 03 00 01 00 |......X.........|
00 00 00 00 00 00 02 A4 03 00 01 00 00 00 00 00 |................|
00 00 03 A4 03 00 01 00 00 00 00 00 00 00 04 A4 |................|
05 00 01 00 00 00 7F 50 02 00 00 06 A4 03 00 01 |.......P........|
00 00 00 03 00 00 00 0C A4 03 00 01 00 00 00 03 |................|
00 00 00 00 00 00 00 01 00 00 00 3C 00 00 00 1C |...........<....|
00 00 00 0A 00 00 00 32 30 30 30 3A 30 38 3A 30 |.......2000:08:0|
39 20 31 31 3A 31 38 3A 32 32 00 32 30 30 30 3A |9 11:18:22.2000:|
30 38 3A 30 39 20 31 31 3A 31 38 3A 32 32 00 00 |08:09 11:18:22..|
00 00 00 0A 00 00 00 64 00 00 00 64 00 00 00 02 |.......d...d....|
00 01 00 02 00 04 00 00 00 52 39 38 00 02 00 07 |.........R98....|
00 04 00 00 00 30 7F 31 30 30 00 00 00 00 07 00 |.....0.100......|
...
8B 38 FC B5 92 51 F3 79 D6 8E F1 B2 E0 E4 12 08 |.8...Q.y........|
03 F1 3F CC 55 88 A1 86 DA 15 86 DD 22 8A 31 9C |..?.U.......".1.|
22 49 85 1D F8 02 97 52 AD 64 7F FF D9 FF C4 01 |"I.....R.d......|
A2 00 00 01 05 01 01 01 01 81 0E 85 0E 01 85 0E |................|
02 85 0E 03 85 0E 04 B5 0E 05 B9 FE |............ |
lines 219-269/269 (END)
而不是通常的方式,通常的方式是这样的:
$ git diff --binary HEAD~1 "./dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG"
diff --git a/txt/papersheets/dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG b/txt/papersheets/dated/sheet0005_older/2006/sheet0620/20000809_1118(3)..JPG
index 263d047bf61e2104157d4b1feda5b77a01000847..c78a9a1ddddd0267dc490711eaf1723e38767b09 100644
GIT binary patch
delta 34
lcmX@JK;rmcai;$_n%f22+XWecm<foPftY1`yCCb)e*gxY4e<Z~
delta 4140
zcmb7Hc{o&U8$UCHv5cLv3?`I_-kFJ-8K#jU#=fSKWXVzyvQ2Tazh#UydNm>Y5-PGJ
zp@mUdK4eLjB1=RDsc3x1oA>&<zU%wvyRYka-M{mk`@Wy&{+;`e=d}LZ{yJL<+!)w+
zFB+*I?0FUdjEvL(UH}020bv*%5Q10?1QCeyK)wKi7z_cxAioJ2828_P1mdz=d=lcj
zw_@NB$3eNfAYTmu4{-^|&qEN0|EdEAp$E@cuD=Vxp{jvUmbH&}2u9z})5YK4#~XV8
z-*$|E#d`j>Xob@|jK$(Hn|9I9{jmLE99|2HCE`!(+n&aqK70tHxmOE{H-xZx@P9lW
zi^YN@EP;e2VsJPTjzGfWfo(uW#IL?YprhR0;!+S-`SaJAT{pK*L;_rp!{YH+MB=Z$
zFi;HF7T1J0Ea_Ja4C<9Dng7?;&^j`Ct9K}$7u<T-tjYHq2eP*|z+thl?Ei=k&;F&A
z6ZAz8Tbu=*gnNtIZ*H9TD}J*k{5OvHjdSJwY7(@75_q;=AfN=)Z+x@BreHb{&=B|`
zY>M{Zn*FaeDD?06O|>=whbqDU*361XfY?@hAk^PxC=x(yjSbY;{~WU}=%D|M*#N|U
zA2S&Imnvh>I(&=Y+MHj={`uPfcxd2<fGB{MhX={S%?l!tNIpJZew2hDN<aW5Eha83
zAt$3CFDHXWW0d!*U=-Dr(CFO<RMoLKO-)S&6(X5{*V(&I6A$C#<3kCcqyz<}@H@~u
z@c*}MGy$T#LO?K(jescva8VdS6m}n;4+Gx<C<G*yC_)sV01^69a$fLUWW|Y^-P6R9
zInvKhU(1R=ICv=FX7!fkXx6dTt0k&#Y)b`KIv?;^T505}a_jwBvuX1aopBZ#*!Y}u
z-znL!=}xepUB<J}mm(mf5FAjFB2e)VXRA%R<3N+AkgBtS1B!)}as#sUgXKY&`c8T_
zp_RBUJYyGHS7gWt@Mu$SXd-)Nor!`AXB<)<W3>+Tzs)KV%Pl_=qWv{8!H2!u-IARW
zLq?8UXwWq(e>(Ap^GMNQ9Me4~^wlq;UmjK3$)HXBuvnG5MlZV3Bzt2l!ECp(i*gcU
zxwqy>bgspa;e6<QOD+0&zjlz=;fIQC95;x#m*o-Tk(xhfT3VZ`l+=^q8{^_r<sdlr
z<)ilE+Z<EH{+ID^g1*I_!!F^>OFw#NJ$dyVi2Ot88ccMT&<ksKoOAau+@D?0T;<!M
zJ()~!<7f3Brx#E~@K3&%_UNLEN7Zg{W@cAP&J{$t(?v9feX9`l6mY?tlZq=ivPgZk
zBkd!;N$9aqFvmFyb0&{f|IDyf{n)gZd-vT5g~yR0WMgz@9p_R(hwO#@?=f`6u`iTi
...
z(Ts<g0S%htr2K@R8^Gzs+%<O-6^>pt1*Fd!+G!~e93M&((FohUZ$pbEi~~`zJRVmb
zxJaWDN4w-XZ`2A{Z;sd81GeLsHFYiAdp>RJo~W$GIFY@weVC!D>2!xU!urEx%cYP$
z#^Qsq2{B&8BIUL1pLb&3O2!N;UdJ&NjiTkg!PBkET)~aOjpwi&=wFW;23fdJv=A&>
R2p%njh!)~{D8yaI`8U9_qG|vD
lines 32-82/82 (END)
(我使用...
上面的方法编辑/剪掉大部分输出行)
这是补丁:
Index: /var/tmp/portage/dev-vcs/git-2.37.3/work/git-2.37.3/diff.c
===================================================================
--- git-2.37.3/diff.c
+++ git-2.37.3/diff.c
@@ -743,7 +743,8 @@ enum diff_symbol {
DIFF_SYMBOL_NO_LF_EOF,
DIFF_SYMBOL_CONTEXT_FRAGINFO,
DIFF_SYMBOL_CONTEXT_MARKER,
- DIFF_SYMBOL_SEPARATOR
+ DIFF_SYMBOL_SEPARATOR,
+ DIFF_SYMBOL_BINARY_HEXDUMP_DIFF_HEADER,
};
/*
* Flags for content lines:
@@ -1472,6 +1473,9 @@ static void emit_diff_symbol_from_struct
case DIFF_SYMBOL_BINARY_DIFF_HEADER:
fprintf(o->file, "%sGIT binary patch\n", diff_line_prefix(o));
break;
+ case DIFF_SYMBOL_BINARY_HEXDUMP_DIFF_HEADER:
+ fprintf(o->file, "%sGIT binary hexdump (non-reusable, for human eyes only) patch\n", diff_line_prefix(o));
+ break;
case DIFF_SYMBOL_BINARY_DIFF_HEADER_DELTA:
fprintf(o->file, "%sdelta %s\n", diff_line_prefix(o), line);
break;
@@ -3237,10 +3241,11 @@ static void emit_binary_diff_body(struct
mmfile_t *one, mmfile_t *two)
{
void *cp;
- void *delta;
+ void *delta,*plaindelta;
+ char *hexdump_ptr;
void *deflated;
void *data;
- unsigned long orig_size;
+ unsigned long orig_size,hexdump_size;
unsigned long delta_size;
unsigned long deflate_size;
unsigned long data_size;
@@ -3249,20 +3254,31 @@ static void emit_binary_diff_body(struct
* whichever is smaller.
*/
delta = NULL;
+ plaindelta=NULL;
+ hexdump_ptr=NULL;
+ hexdump_size=0;
deflated = deflate_it(two->ptr, two->size, &deflate_size);
if (one->size && two->size) {
- delta = diff_delta(one->ptr, one->size,
+ plaindelta = diff_delta(one->ptr, one->size,
two->ptr, two->size,
&delta_size, deflate_size);
- if (delta) {
- void *to_free = delta;
+ if (plaindelta) {
+ //void *to_free = plaindelta;
orig_size = delta_size;
- delta = deflate_it(delta, delta_size, &delta_size);
- free(to_free);
+ delta = deflate_it(plaindelta, delta_size, &delta_size);
+ //free(to_free);
+ if (!(o->output_format & DIFF_FORMAT_HEXDUMP)) {
+ free(plaindelta);
+ plaindelta=NULL;
+ }
}
}
if (delta && delta_size < deflate_size) {
+ //using delta (z packed aka deflated)
+ // show plaindelta & orig_size
+ hexdump_ptr=plaindelta;
+ hexdump_size=orig_size;
char *s = xstrfmt("%"PRIuMAX , (uintmax_t)orig_size);
emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_HEADER_DELTA,
s, strlen(s), 0);
@@ -3271,6 +3287,10 @@ static void emit_binary_diff_body(struct
data = delta;
data_size = delta_size;
} else {
+ //using deflated two (the second file, z packed ie. gzipped or similar)
+ // show two->ptr & two->size
+ hexdump_ptr=two->ptr;
+ hexdump_size=two->size;
char *s = xstrfmt("%lu", two->size);
emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_HEADER_LITERAL,
s, strlen(s), 0);
@@ -3280,6 +3300,64 @@ static void emit_binary_diff_body(struct
data_size = deflate_size;
}
+ if (o->output_format & DIFF_FORMAT_HEXDUMP) {
+#define LINELEN 16
+#define LINELENPLUSZERO (LINELEN+1)
+#define UNPRINTABLECHAR '.'
+ char line[LINELENPLUSZERO];
+ memset(line,'\0',LINELENPLUSZERO);
+ //line[LINELEN]=0;
+ assert(0 == line[LINELEN]);
+ int i=0;
+ const unsigned long origlen=hexdump_size;
+ for (; i<origlen; i++) {
+ const char c=hexdump_ptr[i];
+ const int mod=i%16;
+ if (isprint(c)) {
+ line[mod]=c;
+ } else {
+ line[mod]=UNPRINTABLECHAR;
+ }
+ fprintf(o->file,"%02X ", c & 0xff);
+ if (i>0){
+ if ((i+1) % 8==0) {
+ fprintf(o->file," ");
+ }
+ if ((i+1) % 16==0) {
+ assert(0 == line[16]);
+ fprintf(o->file," |%s|\n",line);
+ }
+ }
+ }
+ int weat=i%16;
+ if (weat != 0) {
+ line[weat]=0;
+ if (weat<8){
+ fprintf(o->file," ");
+ }
+ for (int i=weat;i<16;i++) {
+ fprintf(o->file," ");
+ }
+ fprintf(o->file," ");
+ fprintf(o->file," |%s",line);
+ for (int i=weat;i<16;i++) {
+ fprintf(o->file," ");
+ }
+ fprintf(o->file,"|\n");
+ }
+ //for (int i=0; i<origlen; i++) {
+ // printf("%02X ",fp[i] & 0xff);
+ //}
+ //fprintf(o->file,"\n");//this is FOOTER below
+ //emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_BODY,
+ // line, len, 0);
+
+ if (plaindelta) {
+ free(plaindelta);
+ plaindelta=NULL;
+ }
+ } else { //not re-indenting the below, for an easier-on-the-eyes patch.
+
/* emit data encoded in base85 */
cp = data;
while (data_size) {
@@ -3301,6 +3379,7 @@ static void emit_binary_diff_body(struct
emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_BODY,
line, len, 0);
}
+ }
emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_FOOTER, NULL, 0, 0);
free(data);
}
@@ -3308,7 +3387,11 @@ static void emit_binary_diff_body(struct
static void emit_binary_diff(struct diff_options *o,
mmfile_t *one, mmfile_t *two)
{
- emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_HEADER, NULL, 0, 0);
+ if (o->output_format & DIFF_FORMAT_HEXDUMP) {
+ emit_diff_symbol(o, DIFF_SYMBOL_BINARY_HEXDUMP_DIFF_HEADER, NULL, 0, 0);
+ } else {
+ emit_diff_symbol(o, DIFF_SYMBOL_BINARY_DIFF_HEADER, NULL, 0, 0);
+ }
emit_binary_diff_body(o, one, two);
emit_binary_diff_body(o, two, one);
}
@@ -4710,7 +4793,7 @@ void diff_setup_done(struct diff_options
DIFF_FORMAT_NAME_STATUS |
DIFF_FORMAT_CHECKDIFF |
DIFF_FORMAT_NO_OUTPUT))
- options->output_format &= ~(DIFF_FORMAT_RAW |
+ options->output_format &= ~(DIFF_FORMAT_RAW | DIFF_FORMAT_HEXDUMP | //this clears these bits
DIFF_FORMAT_NUMSTAT |
DIFF_FORMAT_DIFFSTAT |
DIFF_FORMAT_SHORTSTAT |
@@ -5389,6 +5472,9 @@ static void prep_parse_options(struct di
OPT_BIT_F(0, "raw", &options->output_format,
N_("generate the diff in raw format"),
DIFF_FORMAT_RAW, PARSE_OPT_NONEG),
+ OPT_BIT_F(0, "hexdump", &options->output_format,
+ N_("generate the diff in hexdump format for human eyes only(ie. can't git apply it!)"),
+ DIFF_FORMAT_PATCH | DIFF_FORMAT_HEXDUMP, PARSE_OPT_NONEG),
OPT_BITOP(0, "patch-with-raw", &options->output_format,
N_("synonym for '-p --raw'"),
DIFF_FORMAT_PATCH | DIFF_FORMAT_RAW,
@@ -6755,7 +6841,7 @@ void diffcore_std(struct diff_options *o
{
int output_formats_to_prefetch = DIFF_FORMAT_DIFFSTAT |
DIFF_FORMAT_NUMSTAT |
- DIFF_FORMAT_PATCH |
+ DIFF_FORMAT_PATCH | //DIFF_FORMAT_HEXDUMP | //we don't use hexdump here because it implies DIFF_FORMAT_PATCH.
DIFF_FORMAT_SHORTSTAT |
DIFF_FORMAT_DIRSTAT;
Index: /var/tmp/portage/dev-vcs/git-2.37.3/work/git-2.37.3/diff.h
===================================================================
--- git-2.37.3/diff.h
+++ git-2.37.3/diff.h
@@ -103,6 +103,7 @@ typedef struct strbuf *(*diff_prefix_fn_
#define DIFF_FORMAT_PATCH 0x0010
#define DIFF_FORMAT_SHORTSTAT 0x0020
#define DIFF_FORMAT_DIRSTAT 0x0040
+#define DIFF_FORMAT_HEXDUMP 0x0080
/* These override all above */
#define DIFF_FORMAT_NAME 0x0100
$ git diff -h
usage: git diff --no-index [<options>] <path> <path>
Diff output format options
-p, --patch generate patch
-s, --no-patch suppress diff output
-u generate patch
-U, --unified[=<n>] generate diffs with <n> lines context
-W, --function-context
generate diffs with <n> lines context
--raw generate the diff in raw format
--hexdump generate the diff in hexdump format for human eyes only(ie. can't git apply it!)
--patch-with-raw synonym for '-p --raw'
--patch-with-stat synonym for '-p --stat'
强制将文本文件视为二进制文件似乎没有什么帮助git diff
:
$ cat .gitattributes
*.log -diff
这是必需的,否则即使--binary
指定了,它也将被强制显示为文本。请参见man 5 gitattributes
部分Marking files as binary
。
$ GIT_PAGER=cat
即告诉git
不要使用less
。
$ git diff
diff --git a/genkernel-boot.log b/genkernel-boot.log
index 85ebc17..3d89503 100644
Binary files a/genkernel-boot.log and b/genkernel-boot.log differ
$ git diff --binary
diff --git a/genkernel-boot.log b/genkernel-boot.log
index 85ebc177502e392a41183f9baa730e01180b647d..3d89503b6824c39d7c70f446aa2fe1d400ab72f0 100644
GIT binary patch
delta 49
zcmV-10M7rgi2;U*0kFdsv-%c+6tlD|!V8m7LJpH20tb`eLI{&8LlFcZb75<f(Gf1Q
HkT)O==e`m1
delta 42
wcmZqcWZVEmhsBtSD|06^3Yly^EY>K(nvt2DpSM{+`y2OU0WPV{Y32&N08T9qbN~PV
这就是为什么我说它看起来没用,因为这是什么?:
$ git diff --binary --hexdump
diff --git a/genkernel-boot.log b/genkernel-boot.log
index 85ebc177502e392a41183f9baa730e01180b647d..3d89503b6824c39d7c70f446aa2fe1d400ab72f0 100644
GIT binary hexdump (non-reusable, for human eyes only) patch
delta 49
B0 89 01 86 89 01 B0 C3 16 B3 FA 16 81 14 B3 B4 |................|
2B C2 0B 93 50 42 0E 93 1E 02 07 93 E0 42 08 93 |+...PB.......B..|
2A 43 11 04 20 73 61 6B 93 D1 11 2E B3 90 37 20 |*C.. sak......7 |
0D |. |
delta 42
86 89 01 B0 89 01 B0 C3 16 03 73 79 6D 93 01 12 |..........sym...|
34 B3 C3 16 81 14 05 68 69 63 6F 6E B3 10 2B F6 |4......hicon..+.|
0B 93 10 0A 1A B3 66 37 20 0D |......f7 . |
$ git diff --text
diff --git a/genkernel-boot.log b/genkernel-boot.log
index 85ebc17..3d89503 100644
--- a/genkernel-boot.log
+++ b/genkernel-boot.log
@@ -95,7 +95,6 @@
[2020-11-23 14:52:20] Failed (1): 'modprobe u14-34f'
[2020-11-23 14:52:20] Failed (1): 'modprobe ultrastor'
[2020-11-23 14:52:20] Failed (1): 'modprobe wd7000'
-[2020-11-23 14:52:20] Failed (1): 'modprobe sym53c8xx'
[2020-11-23 14:52:20] Failed (1): 'modprobe dmx3191d'
[2020-11-23 14:52:20] Failed (1): 'modprobe imm'
[2020-11-23 14:52:20] Failed (1): 'modprobe in2000'
@@ -190,7 +189,6 @@
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-apple'
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-belkin'
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-cherry'
-[2020-11-23 14:52:20] Failed (1): 'modprobe hid-chicony'
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-cypress'
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-dummy'
[2020-11-23 14:52:20] Failed (1): 'modprobe hid-ezkey'
@@ -244,6 +242,7 @@
[2020-11-23 14:52:20] Failed (1): 'modprobe btrfs'
[2020-11-23 14:52:20] Failed (1): 'modprobe reiserfs'
[2020-11-23 14:52:20] Failed (1): 'modprobe jfs'
+[2020-11-23 14:52:21] Executed: 'mount -o move /sys /newroot/sys' sak
[2020-11-23 14:52:20] Failed (1): 'modprobe nfs'
[2020-11-23 14:52:20] Failed (1): 'modprobe xfs'
[2020-11-23 14:52:20] Failed (1): 'modprobe zfs'