目前我正在处理的基于 Git 的项目,我通常总是在一个子目录中。
下面是我git log --name-only从存储库根目录的子目录运行命令时的输出。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
child_dir1_from_root/file1 | 184 +--
child_dir2_from_root/file2 | 2 +-
Run Code Online (Sandbox Code Playgroud)
我如何git log才能输出类似下面的内容?这使得比较列出的文件非常容易,只需复制文件路径并运行,git diff HEAD~ {copied_file_path}而不必手动修改文件路径然后运行命令。
commit 678bd5ba6fc5474c4c61406768bf6cba5937c5d1
Author: thegreendroid
Date: Mon Mar 27 09:36:24 2017 +1300
Commit message
file1 | 184 +--
../child_dir2_from_root/file2 | 2 +-
Run Code Online (Sandbox Code Playgroud)
我查看了git log文档,但没有任何突出之处。我可以编写一个脚本来做到这一点,但我很好奇 Git 是否有内置方式。
这是问题 - 我想在服务器上生成二进制文件的增量(大小> 1 MB),并通过HTTP将增量发送到内存受限(低RAM和无动态内存)嵌入式设备.Deltas是首选(与从服务器发送完整的二进制文件相反),因为通过线路传输数据涉及高成本.
麻烦的是,嵌入式设备无法解码增量并在内存中创建新文件的内容.我已经研究了各种二进制增量编码/解码算法,如bsdiff,VCDiff等,但无法找到支持流媒体的库.
也许,而不是询问是否有合适的库,我可以采取的其他方法仍然可以解决原始问题(通过线路发送最少的数据)?虽然如果有合适的delta库支持流解码(用C或C++编写而不使用动态内存),它肯定会有所帮助.
每种实现的权衡,优缺点是什么?他们有什么不同吗?我想要实现的是将一个盒子的矢量存储到一个protobuf中.
Impl 1:
package foo;
message Boxes
{
message Box
{ required int32 w = 1;
required int32 h = 2;
}
repeated Box boxes = 1;
}
Run Code Online (Sandbox Code Playgroud)
Impl 2:
package foo;
message Box
{ required int32 w = 1;
required int32 h = 2;
}
message Boxes
{ repeated Box boxes = 1;
}
Run Code Online (Sandbox Code Playgroud)
Impl 3:将这些消息的多个流式传输到同一个文件中.
package foo;
message Box
{ required int32 w = 1;
required int32 h = 2;
}
Run Code Online (Sandbox Code Playgroud) 在定义嵌入式系统架构时,在定义HAL时有两种选择 -
哪一个更好,为什么?
embedded ×2
architecture ×1
c ×1
c++ ×1
compression ×1
delta ×1
diff ×1
driver ×1
git ×1
git-diff ×1
git-difftool ×1
hal ×1