小编Áko*_*dra的帖子

git rebase -i-为什么更改提交哈希?

因此,我或多或少地熟悉了变基的工作原理,但是直到最近,我通常只做了一个git rebase -i HEAD~20,然后修改了需要修改的地方。

我惊讶地发现这将修改所有20次提交的哈希值,即使我所采取的唯一行动是压倒最后两个提交。

我不确定是什么原因导致其他18次提交的哈希值发生变化,因为他们的父母都没有,他们的内容也没有变化……或者是吗?也许是时间戳记?

还有办法防止这种情况吗?

git rebase

8
推荐指数
3
解决办法
3903
查看次数

如何从构建脚本(build.rs)访问当前的货物配置文件(调试/发布,...)

在嵌入式项目中,我通常使用 qemu 运行调试模式,但需要为具体的微控制器构建版本。

build.rs 需要知道实际模式是什么(调试或发布)才能生成正确的内存布局。

build.rs 如何做出这个决定?

相关:如何从构建脚本(build.rs)访问当前的货物配置文件(构建、测试、工作台、文档......)

embedded build rust

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

Nest.JS graphql 获取请求的字段

在 Nest.js Graphql 中,是否可以从解析器获取所需的字段列表?要确定执行哪些连接,不执行哪些连接,例如对于此数据库模式:

Employee
 id
 employer_id
 name

Employer
 id
 name
Run Code Online (Sandbox Code Playgroud)

如果有以下 graphql 查询:

  query {
    employees {
      id
      name
      employer {
        id
      }
    }
  }
Run Code Online (Sandbox Code Playgroud)

没有必要从数据库中获取/连接雇主数据,因为可以从雇员表访问雇主 ID。

typescript graphql nestjs

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

Scala模式匹配:参数化的提取器对象是否可能?

是否可以创建可以使用的Extractor对象,例如:

val x = 42

x match {
  case GreaterThan(80) => println("5")
  case GreaterThan(70) => println("4")
  case GreaterThan(60) => println("3")
  case GreaterThan(40) => println("2")
  case _ => println("1")
}
Run Code Online (Sandbox Code Playgroud)

现在我知道if if构造是可能的,但我觉得它使我的代码混乱(并且看起来多余了:) case MyMatcher(x) if MyCreteria(x) => _,我想避免这种情况.

scala pattern-matching

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

c#中的锁定错误

我正在尝试使用SerialPort在c#中执行请求 - 响应通信模块.这是一个非常简单的实现,只是为了证明它有点工作(SerialPort不能正常工作(它是一个USB虚拟COM端口),有时会吃几个字符,可能是一些Windows驱动程序错误).

但是演示不起作用: - /

当在表单上使用propertygrid时,它读取对象的属性,而对象的属性又发送从远程设备读取属性的请求,会发生一些非常奇怪的事情:同时发送多个同时调用SendCommand.

我尝试使用lock {}块来使调用顺序,但它不起作用.即使使用锁定,也会有多个呼叫进入受保护区域.

你能告诉我我做错了什么吗?

我的代码:

    SerialPort sp;

    public byte[] SendCommand(byte[] command)
      {
          //System.Threading.Thread.Sleep(100);
          lock (sp)
          {
              Console.Out.WriteLine("ENTER");
              try
              {

                  string base64 = Convert.ToBase64String(command);

                  string request = String.Format("{0}{1}\r", target_UID, base64);

                  Console.Out.Write("Sending request... {0}", request);

                  sp.Write(request);

                  string response;

                  do
                  {
                      response = sp.ReadLine();
                  } while (response.Contains("QQ=="));

                  Console.Out.Write("Response is: {0}", response);

                  return Convert.FromBase64String(response.Substring(target_UID.Length));
              }

              catch (Exception e)
              {
                  Console.WriteLine("ERROR!");
                  throw e;
              }
              finally
              {
                  Console.Out.WriteLine("EXIT");
              }
          }

      }
Run Code Online (Sandbox Code Playgroud)

输出:

ENTER
Sending request... C02UgAABAA=
Response is: cgAABAAARwAAAA==

EXIT …
Run Code Online (Sandbox Code Playgroud)

c# multithreading locking serial-port

5
推荐指数
2
解决办法
989
查看次数

我可以检测浏览器的网络活动是否空闲吗?

在 angularJS 应用程序中,用户和服务器之间存在相当大的延迟(带宽也可能有限),因此当用户请求新页面时,它必须等待大约 2-500 毫秒才能加载。

我正在考虑在后台“预加载”模型数据、模板、脚本,但仅在用户没有请求页面的情况下才打算这样做。如果用户请求一个特定页面,我想停止预加载过程并加载用户明确请求的资源。

所以我的问题归结为:

  • 有没有办法“仅当”没有网络活动时发出 ajax 请求?
  • 有没有办法“暂停”当前正在运行的ajax请求?或者
  • 有没有办法优先处理ajax请求?

谢谢,

javascript ajax web-applications angularjs

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

存根具有副作用的 void 方法

我们如何替换存根的 void 方法的方法体?

像这样的东西:

interface Foo {
    void foo(Integer j);
}

(...)

Foo mockFoo = mock(Foo.class);

Answer<Void> ans = invocation -> {
            Object[] args = invocation.getArguments();
            System.out.println("called with arguments: " + Arrays.toString(args));
            return null;
        };

when(mockFoo.foo(any())).thenAnswer(ans);

(...)

mockFoo.foo(5) // Should print out "called with arguments: [5]"
Run Code Online (Sandbox Code Playgroud)

能够访问参数并能够执行一些使用这些参数的代码很重要。

我们尝试了doAnswer(ans).when(mockFoo).foo(any());,但它似乎在设置模拟时执行了几次 ans lambda 的主体,并且由于.when(mockFoo).foo(any())调用之间的某些奇怪原因,它将我们的 mockFoo 变量重置为“null” 。

如此有效:

Foo mockFoo = mock(Foo.class)
// mockFoo is an instance of a Foo$MockitoMock

Foo o = doAnswer(ans).when(mockFoo);
// mockFoo just …
Run Code Online (Sandbox Code Playgroud)

java mocking mockito vert.x

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

Postgresql:部分外键?

是否可以在一般的 sql/postgresql 中创建部分外键(类似于部分索引)?在以下情况下,我还没有找到强制参照完整性的方法:

表 A 是可软删除的(它有一个列已删除的_at,当一行被标记为这样时,它被设置为一个值),而表 B 是可硬删除的(意味着我们实际上删除了行)

表一:

  • ID
  • 删除_at
  • 其他一些东西
  • id 的部分唯一索引,其中 deleted_at 为空

表B:

  • ID
  • 删除_at
  • 其他一些东西
  • id 的部分唯一索引,其中 deleted_at 为空

表 C:

  • 推荐类型
  • 参考编号
  • 其他一些东西

表 A、B、C 中的行代表某个类的对象。它们之间的关系是每个 C 需要引用 A 或 B,由“类型”列的值标记,“id”将标记引用对象的哪个实例。

我想要实现的是强制完整性,以便对于表 C 中引用类型为“MyData::A”的所有行,referred_id 必须与表 A 的部分索引中的行匹配(其中deleted_at 为空),类似地对于 B

就像是

ADD CONSTRAINT name FOREIGN KEY table_C(referred_id)
    REFERENCES table_A(id where deleted_at is not null)
    where referred_type = 'MyData::A
ADD CONSTRAINT name FOREIGN KEY table_C(referred_id)
    REFERENCES table_B(id where deleted_at is not null)
    where referred_type = 'MyData::B …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql constraints foreign-keys

5
推荐指数
0
解决办法
1829
查看次数

Generalizing over pointer mutability

My use case is a bit more complex than this, but I'm trying to simplify the issue with this abstract example.

Say I have a structure:

struct Foo {
    bar: u32,
    baz: u32,
    ....
}
Run Code Online (Sandbox Code Playgroud)

How can I write a get_bar function which can generalize over the mutability of the self parameter?

Pseudocode:

struct Foo {
    bar: u32,
    baz: u32,
    ....
}
Run Code Online (Sandbox Code Playgroud)

If called with a mutable pointer, it would return a mutble pointer to the inner field, if called …

generics rust

5
推荐指数
0
解决办法
83
查看次数

将 git 完整克隆转换为浅克隆

如何将存储库的深层克隆就地转换为浅拷贝?

我正在使用 git 管理软件的单独安装,以跟踪安装运行时对代码的任何更改(未跟踪和脏文件),但存储库非常大(800MB),因此大约有数百个副本这不是最好的主意。

因此,如果这些存储库可以转换为仅包含当前部署的提交而不是完整树的浅表副本,那就太好了。在升级期间,存储库将被转换回深度克隆,检出特定提交,然后变成新提交的浅层克隆。

git fetch --depth=1 --update-shallow不会缩小 .git 目录大小,我猜它会获取任何新的提交,但不会删除旧数据。添加--shallow-exclude=HEAD^2会使 git 抛出错误,但不完全确定它应该如何工作,我会冒险猜测删除 HEAD^2 会产生冲突的要求,但想要检查 HEAD,这将取决于深度克隆中的 HEAD^2。

error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

git shallow-clone

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