小编bm8*_*842的帖子

显然相同的提交给出不同的sha1,为什么?

在使用我的脚本从存储库重新编写子树历史后,我将其与git filter-branch ...在同一子树上执行的操作进行了比较.我看到初始提交有不同的sha1,虽然我期望它们是相同的(结果是这两个历史的所有提交都有不同的sha1).

git show --format=raw <commit-sha1>对两个提交执行a 会产生完全相同的输出(第一行除外,即commit <commit-sha1>引入结果).

对象文件完全不同,但由于它们是二进制文件,我无法找出根本原因.

假设所有git版本彼此一致,有什么可以解释为2个不同的sha1?

谢谢

git sha1 commit

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

如何要求两个特征的关联类型相同?

我有以下两个特点:

trait Filter {
    type Message;
    fn is_valid(&self, message: &Self::Message) -> bool;
}

trait Client {
    type Message;
    fn send(&self, message: &Self::Message) -> Result<(), Error>;
}
Run Code Online (Sandbox Code Playgroud)

我想要一个FilterClient使用相同Message类型的实现。

struct ClientWithFilter<C: Client, F: Filter> {
    filter: F,
    client: C,
}

impl<C: Client, F: Filter> ClientWithFilter<C, F> {
    /// C::Message or F::Message???
    fn check_and_send(&self, message: &C::Message) -> Result<(), Error> {
        if self.filter.is_valid(message) {
            self.client.send(message)
        } else {
            Err(Error::MessageInvalid)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这不编译:

if self.filter.is_valid(message) {
    |                   ^^^^^^^ …
Run Code Online (Sandbox Code Playgroud)

rust associated-types

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

标签 统计

associated-types ×1

commit ×1

git ×1

rust ×1

sha1 ×1