forcecharlie 最近的时间轴更新
forcecharlie

forcecharlie

V2EX 第 115646 号会员,加入于 2015-05-07 13:15:50 +08:00
今日活跃度排名 4406
根据 forcecharlie 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
forcecharlie 最近回复了
7 小时 59 分钟前
回复了 forcecharlie 创建的主题 git 分享一个在 Linux 上编译静态 Git 二进制的项目
@body007 这个和 git 依赖 cURL 有关,configure 阶段可能会禁用 CURL ,以及 CA 证书,git-minimal 解决了一些列问题,还提供了 tar.xz 可以解压后运行(通常因 RUNTIME_PREFIX 实现缺陷的原因导致 git 不能解压到任意位置运行,但这个项目中我写了一个启动器解决了这个问题。)
10 小时 6 分钟前
回复了 forcecharlie 创建的主题 git 分享一个在 Linux 上编译静态 Git 二进制的项目
@bli22ard 静态链接 glibc 是一个尝试,这个项目里面有静态链接 musl ,但实践过程发现 musl 性能还是太差了,一个是 malloc (这里连接了 mimalloc ),还有一些 SIMD 优化,这个暂时就没有办法了。
10 小时 32 分钟前
回复了 forcecharlie 创建的主题 git 分享一个在 Linux 上编译静态 Git 二进制的项目
@bli22ard 验证过暂时没有问题,Git Over HTTP/Git Over Git 没有啥问题。
2025 年 9 月 8 日
回复了 forcecharlie 创建的主题 git 分享一个 Git 存储库治理利器 - hot
@Devifish git lfs 就自带了 git lfs migrate 能力,所以这个我们并不提供。
2025 年 3 月 28 日
回复了 suikaChen 创建的主题 git 请教各位关于 Git 合并的问题
我建议可以使用 git reset 把 200 多个 commit 搞成一个,再去解决冲突进行合并,这个实际上和普通合并是一样的,只是能简化合并(比如分支有反复合并的情况等等),当然都需要解决冲突。

当然还有 cherry-pick 这样的机制,还有 diff patch 这样的机制。甚至手动 copy 目录/文件
ZIP 可以强制使用 UTF8 编码,这个时候在单个条目中会设置特殊的字段,其他时候就是 codepage ,一般而言与压缩和解压的代码页有关,如果你的是 CP936 ,压缩的 codepage 不是这个就可能乱码,正确的做法是 all UTF-8 ,但历史原因都做的不好,有一种解决方案,对文件名做编码检测,解压时自动转换,这个很少有 ZIP 解压软件做到。

利益相关:做包管理器解压 ZIP 刚好做过编码检测自动转换。
2023 年 7 月 18 日
回复了 LxnChan 创建的主题 问与答 求问一下 git 提交时报错 invalid format 怎么解
你这个问题可能的解决方案有两种:
第一种看文件的属性,Git for Windows ( MINGW64 )的 SSH 可能要求 SSH 私钥的 filemode 是 0600 ,你可以在 Git for Windows (MINGW64) 的 bash 中 stat /c/Users/Username/.ssh/id_rsa ,如果不正确,则使用 chmod 0600 /c/Users/Username/.ssh/id_rsa 然后重试。
第二种是看文件换行符,Git for Windows ( MINGW64 )的 SSH 需要 LF 的换行符,而 Windows 移植的 SSH 可能能处理 CRLF ,将私钥的换行符换回去就可以了。

在 cmd 中的 SSH 实际上是微软 PowerShell 团队移植的 [OpenSSH]( https://github.com/PowerShell/Win32-OpenSSH),与 Git for Windows ( MINGW64 )的并不一致。

这里我也只是做个推测,并没有验证。
2023 年 2 月 15 日
回复了 Yeen 创建的主题 程序员 问个 win32 技术问题
类似自解压软件的逻辑,可以把 exe 追加到 dll 尾部,然后解析 PE ,算出所有 sections 的大小就可以得出 exe 的偏移,然后解压出来。PE 文件可以,POSIX 系统中 ELF 也可以这么玩。
2023 年 1 月 5 日
回复了 balabalaXMX 创建的主题 C++ 为什么哈希表是无序的?
如果你知道 unordered_map 的存储原理,你就知道它为啥是无序的。
unordered_map 使用的是字符串哈希算法去将 Key 转变成一个数字,然后这个数对 bucket 取余,这样实现存储和读取,但是你迭代的时候可不是这么玩的,而是 bucket 一个个遍历。
当然,实际情况比这复杂。

不同的 STL 采用的哈希算法一般是不同的,比如 MSVC STL 使用的是 FNV1a:

```
// These FNV-1a utility functions are extremely performance sensitive,
// check examples like that in VSO-653642 before making changes.
#if defined(_WIN64)
_INLINE_VAR constexpr size_t _FNV_offset_basis = 14695981039346656037ULL;
_INLINE_VAR constexpr size_t _FNV_prime = 1099511628211ULL;
#else // defined(_WIN64)
_INLINE_VAR constexpr size_t _FNV_offset_basis = 2166136261U;
_INLINE_VAR constexpr size_t _FNV_prime = 16777619U;
#endif // defined(_WIN64)

_NODISCARD inline size_t _Fnv1a_append_bytes(size_t _Val, const unsigned char* const _First,
const size_t _Count) noexcept { // accumulate range [_First, _First + _Count) into partial FNV-1a hash _Val
for (size_t _Idx = 0; _Idx < _Count; ++_Idx) {
_Val ^= static_cast<size_t>(_First[_Idx]);
_Val *= _FNV_prime;
}

return _Val;
}

```

https://github.com/microsoft/STL/blob/main/stl/inc/xhash

而 libc++ 用的是 murmur2 ( 32bit ) cityhash64 ( 64bit ): https://github.com/llvm/llvm-project/blob/main/libcxx/include/__functional/hash.h
2022 年 9 月 26 日
回复了 x199ian 创建的主题 git git 协议可能被中间人攻击吗?
git 协议与 Git Over SSH/ Git Over HTTP 不一样,git 协议是非安全协议,传输流没有加密环节,公网传输可能是不安全的,Git Over SSH (ssh:// or [email protected]:some/some.git) 走的是 SSH 安全通道,Git Over HTTP 可以走 https 。

很多代码托管平台并不开放 git 协议,但可以使用 git 协议作为内部存储节点之间的传输协议。

利益相关:从事 git 代码托管开发多年。
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3159 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 29ms · UTC 12:43 · PVG 20:43 · LAX 04:43 · JFK 07:43
♥ Do have faith in what you're doing.