小编ata*_*xis的帖子

检查 git apply 是否已经应用

这个问题是关于 git apply

有没有办法区分:它失败了,因为......

  1. ...补丁已经应用
  2. ...源代码真的不一样

我工作的目录不是 git 目录,因此我不能使用git log或其他东西。

我知道-R(反向)选项,因此我目前的解决方法是:

git apply abc.patch || git apply abc.patch -R --check && echo already applied
Run Code Online (Sandbox Code Playgroud)

这种方式git apply abc.patch -R --check && git apply abc.patch只会在git apply abc.patch失败时执行,然后检查它是否失败,因为补丁已经应用(git apply abc.patch -R --check),如果是这种情况,它会回应“已经应用”

但我不喜欢它,在 git 的 apply 中不是有类似内置解决方案的东西吗?

linux git patch git-apply

9
推荐指数
2
解决办法
2943
查看次数

docker-compose:不同的运行、执行和层会发生什么

据我了解dockerdocker-compose流程是这样的:

Dockerfile --build--> Docker Image --create--> Docker Container #1
                                   --create--> Docker Container #2
                                   --create--> ...
                                   --create--> Docker Container #n
Run Code Online (Sandbox Code Playgroud)

所以Image是由 中的命令制作的,Dockerfile但纯粹是某种“离线”版本。您可以将其“联机”,然后作为容器使用。

我的理解docker-compose up是通过service里面的定义为我们做这个两步过程docker-compose.yml,除了一些其他的东西,比如安装卷,暴露端口等等。


我的第一个问题是:

如果我运行docker-compose exec some_command,那么我正在操纵 docker 容器 - 对吗?

据我了解的文档,docker-compose run some_command几乎是一样的,但是,它事先创建了一个新的“层”,所以…… 像这样:

Docker Container #n (layer 0) ----> Docker Container #n (layer 1)
Run Code Online (Sandbox Code Playgroud)

some_command正确的-然后对层1中执行?此外,它似乎run正在传递some_command到入口点,而exec确实覆盖了定义的入口点。

我的第二个问题是:

run之后创建的新层会发生什么?有没有办法在不创建新层的情况下执行命令?我想知道,因为我添加了一个这样的入口点脚本:

#!/bin/sh

case "$@" in …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

9
推荐指数
2
解决办法
3464
查看次数

内置驱动程序是否始终优先于可加载模块?

根据这个注释

当多个内置模块(尤其是驱动程序)提供相同的功能时,它们将按 Makefile 中列出的顺序指定的链接顺序确定优先级。

此外:

但是,该文件中的顺序是不确定的(取决于文件系统列出已安装模块的顺序)。这会导致混乱。

解决方案分为两部分。此补丁更新了 kbuild,使其生成并安装 module.order,其中包含根据 Makefile 排序的模块名称。

如果系统有多个驱动程序提供相同的功能,其中一些是内置的,另一些是可加载模块,会发生什么?

在这种情况下,哪一个优先?总是内置的吗?我怎样才能改变优先级(如果可能的话)?

我考虑过在modules.alias或modules.order中对它们重新排序,但我想这行不通,因为内置函数没有在那里列出 - 对吧?

linux-device-driver linux-kernel

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

CMake:如何从工具链文件中获取项目的目录?

我有一个项目的结构如下

project:
-- CMakeLists.txt
-- toolchain.cmake
-- source
-- includes
-- tools
   -- arm-toolchain
      -- arm-gnueabihf-gcc
      -- ...
-- libraries
   -- lib1
      -- ...
      -- CMakeLists.txt
   -- lib2
      -- ...
      -- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

我想为另一个架构设置编译器,如下所示toolchain.cmake

...
set (CMAKE_C_COMPILER "${CMAKE_SOURCE_DIR}/tools/arm-toolchain/arm-gnueabihf-gcc")
...
Run Code Online (Sandbox Code Playgroud)

不幸的是,在编译项目时变量${CMAKE_SOURCE_DIR}确实发生了变化,起初它是:

CMAKE_SOURCE_DIR=/home/username/project
Run Code Online (Sandbox Code Playgroud)

这正是我所期望的。不幸的是,它随后更改为

CMAKE_SOURCE_DIR=/home/username/project/build/CMakeFiles/CMakeTmp
Run Code Online (Sandbox Code Playgroud)

因此我不能用作${CMAKE_SOURCE_DIR}我的文件夹的根目录project,是否还有另一个不会改变的变量?或者,我可以以某种方式存储第一个值吗?问题是工具链被多次调用,因此我存储初始值的变量${CMAKE_SOURCE_DIR}在第二次运行时被覆盖。

cmake

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

如何通过 Create React App 在开发模式下使用 Service Worker?

我正在使用create-react-app版本 4 和cra-template-pwa.

从serviceWorkerRegistration.js的源代码来看,由于该检查,服务工作线程似乎仅在生产中注册:

export function register(config) {
    if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {
        // Logic to register the service worker can be found here.
    }
Run Code Online (Sandbox Code Playgroud)

我也想在开发模式下注册服务工作者。我取出了process.env.NODE_ENV === 'production'支票和另一张isLocalhost支票。

开发版本尝试www.example.com/service-worker.js按照我希望的方式加载服务工作者。问题是服务工作线程文件未编译到该public文件夹​​中,因此www.example.com/service-worker.js返回一个404.

手动将文件复制到public文件夹也不起作用:

未捕获的语法错误:无法在模块外部使用 import 语句

有没有办法让 Service Worker 在开发模式下工作?

javascript node-modules reactjs service-worker create-react-app

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

有没有办法在 C++ 中“翻译”类型?

根据变量的类型,我想调用模板化函数(给出)。问题是,模板的预期类型不会直接适合。

示例:如果我的变量的类型是int,那么我想调用该函数foo<classA>()。如果类型是double我想打电话 foo<classB>()等等......

到目前为止,我已经在 switch case 中调用了该函数。

我的问题是:有没有办法“翻译”类型?…… 就像我传递的函数一样int,我会classA回来?这样我就可以简单地调用这个函数:foo<translate_type(variable)> foo()

正如我所写的,我尝试过的是一个开关盒。另一种可能性可能是围绕模板的模板化函数。一个接受 egint然后调用正确的函数foo<classA>()。此外,我想避免使用宏。

也许现代 C++ 有更好的方法?一种在不使用案例的情况下可维护性更好的方法。

c++ variables types

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