小编pfa*_*con的帖子

如何以非交互方式运行git rebase --interactive?

可以做以下吗?

  1. git rebase --interactive标准样板输出到文件,而不是输出到文件并在编辑器中打开它.
  2. 让用户编辑文件.
  3. 让用户git rebase使用已编辑文件的名称重新运行.
  4. 继续通常的rebase过程.

用例:当然是脚本式的变基.例如,请参阅如何以非交互方式在Git中重新提交提交.

git scripting git-rebase non-interactive

41
推荐指数
6
解决办法
9717
查看次数

具有基本节点/边缘过滤的交互式Graphviz查看器

我看过Graphviz资源页面,问题12仍然找不到具体的答案.我的用例是浏览软件组件(例如可安装软件包)之间的依赖关系,其中一个特定特征是一些公共节点是许多边缘的目标.例如,几乎每个可执行包都依赖于libc.

根据这个特点,我想让查看器/库具有以下功能:

  1. 使用Graphviz"点"布局算法(强制布局算法,在不同的库中很多,不能为讨论的用例提供良好的布局质量).
  2. 以交互方式禁用/重新启用图中的某个节点(上面的libc示例).
  3. 以交互方式禁用/重新启用特定节点的所有边缘(例如,libpng依赖于libz,但这很明显,并且可以禁用以使视图不混乱).
  4. 在某个节点重新生成根图(显示只有从该节点可到达的节点的子图),并"缩小"以完成图形.

理想情况下,这将是一个Javascript库,可以轻松实现更复杂的操作功能.重要的是,如上所述的基本观看行为是开箱即用的 - 再次,我找不到类似的东西,许多解决方案是静态观看者,或"自由形式编辑器"允许拖动节点,但不是足够高水平和有用的行为.

最后,如果不存在这样的解决方案,欢迎提出实施这些功能的最佳框架的建议.

visualization interactive viewer graphviz

17
推荐指数
2
解决办法
1万
查看次数

真的压扁了git merge

关于StackOverflow上的"flattening merge"的问题很少,答案通常是"git rebase".这些答案虽然错过了一个关键点 - 提交顺序.

假设有一个分支A,其中包含6月1日和8月1日的提交,而分支B具有7月1日的提交(更新以恢复下面描述的用例:分支是完全独立的,没有共同的祖先,例如来自2个不同的存储库).将B合并到A中时,会有以下历史记录(每个git日志):

Merged branch 'B'
Aug 1
Jul 1
Jun 1
Run Code Online (Sandbox Code Playgroud)

现在,我正在寻找的是获得相同结果的方法,但是没有合并提交(因此具有基础线性历史的顺序,是的,这意味着重新提交提交).git rebase在这里没有用,就像它一样,你会得到以下历史:

Jul 1
Aug 1
Jun 1
Run Code Online (Sandbox Code Playgroud)

要么

Aug 1
Jun 1
Jul 1
Run Code Online (Sandbox Code Playgroud)

换句话说,git rebase总是将一个分支堆叠在另一个分支之上,而我正在寻找解决方案,它将按作者的提交日期排序提交.

显然,对于简单的情况,可以通过使用git rebase -i手动后处理git rebase来实现所需的安排,但这对大型历史来说并不实用,所以我一直在寻找自动命令/脚本.

用例?如果A和B代表同一个项目的不同部分碰巧在不同的回购中,并且时间已经通过将它们合并在一起来纠正,那么很自然地希望线性历史以实际的开发顺序展开.

git merge rebase git-rewrite-history

11
推荐指数
1
解决办法
2439
查看次数

ELF的代理共享库(sharedlib,shlib,so)?

在Windows上,创建"代理DLL"或多或少是常见的,代替原始DLL并将调用转发给它(在需要时执行任何其他操作之后).你可以在这里这里阅读它.

然而,Linux下的shlib munging文化是完全不同的.首先,LD_PRELOAD是Linux下的ld.so的内置功能,它只是将单独的shlib注入进程并使用它定义为覆盖的任何符号.而这种"注入"技术似乎定义了整个思维方向 - 这里是一个典型的ELF黑客工具或者这个问题,绅士似乎与我有相同的用法,但首先要问他如何修补现有的二进制文件.

不用了,谢谢.我不想注入或修改那些也不是我的东西.我想要做的就是创建一个独立的代理shlib,它将调用原始代理.理想情况下,会有一个工具可以用原始的.so提供,并创建一个C源代码,它只是重定向到原始的函数,同时让我轻松覆盖我想要的任何东西.那么,这样的工具在哪里?;-) 谢谢.

c dll proxy shared-libraries elf

7
推荐指数
1
解决办法
1245
查看次数

在GNU ld映射文件中包含静态符号?

将模块本地符号定义为静态(假设为C)是一种良好的编程习惯。不幸的是,这会干扰对结果对象/二进制文件的分析。例如,GNU ld映射文件(-Map = ...)不包含静态符号,因此错过了重要信息(例如,模块中实际上有多少个符号,定义的每个函数的大小等)。 。

是否可以要求GNU ld在映射文件中包含静态符号,而无需修改原始源代码?(很明显,可以使静态修饰符成为条件,但是在分析一堆第三方项目时,这是一件很麻烦的事情。)

c linker static map ld

5
推荐指数
1
解决办法
2211
查看次数

DEFLATE(zlib,gzip)格式使用的编码动态霍夫曼树的最大大小是多少?

https://www.ietf.org/rfc/rfc1951.txt的 "3.2.7.动态霍夫曼码的压缩(BTYPE = 10)"部分描述了压缩期间使用的动态霍夫曼树的编码.在DEFLATE比特流中可能出现的这种编码霍夫曼树表示的最大大小(以位为单位)是多少?使用外部参考支持特定数字的额外点;-).

这是理解DEFLATE属性的理论问题.但当然它有实际应用,例如,"应该使用多大的缓冲区来保证解码霍夫曼树?"

zlib deflate huffman-code

5
推荐指数
1
解决办法
1049
查看次数

Zephyr CMake错误

当我第一次尝试构建Zephyr时,我收到此错误消息:

CMake Error at CMakeLists.txt:1 (include):
  include could not find load file:

    /cmake/app/boilerplate.cmake


-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check …
Run Code Online (Sandbox Code Playgroud)

zephyr-rtos

4
推荐指数
1
解决办法
2881
查看次数

为什么Linux Foundation的Zephyr RTOS使用Apache许可证?

Zephyr RTOS https://www.zephyrproject.org/是Linux Foundation项目。Linux以其GPL许可证而闻名。为什么Zephyr RTOS使用Apache 2许可证?(这对新操作系统的采用者/用户有何影响?)

zephyr-rtos

3
推荐指数
1
解决办法
97
查看次数