V2EX forcecharlie
 forcecharlie's recent timeline updates
forcecharlie

forcecharlie

V2EX member #115646, joined on 2015-05-07 13:15:50 +08:00
Today's activity rank 16283
Per forcecharlie's settings, the topics list is hidden
Deals info, including closed deals, is not hidden
forcecharlie's recent replies
@body007 这个和 git 依赖 cURL 有关,configure 阶段可能会禁用 CURL ,以及 CA 证书,git-minimal 解决了一些列问题,还提供了 tar.xz 可以解压后运行(通常因 RUNTIME_PREFIX 实现缺陷的原因导致 git 不能解压到任意位置运行,但这个项目中我写了一个启动器解决了这个问题。)
@bli22ard 静态链接 glibc 是一个尝试,这个项目里面有静态链接 musl ,但实践过程发现 musl 性能还是太差了,一个是 malloc (这里连接了 mimalloc ),还有一些 SIMD 优化,这个暂时就没有办法了。
@bli22ard 验证过暂时没有问题,Git Over HTTP/Git Over Git 没有啥问题。
@Devifish git lfs 就自带了 git lfs migrate 能力,所以这个我们并不提供。
Mar 28, 2025
Replied to a topic by suikaChen git 请教各位关于 Git 合并的问题
我建议可以使用 git reset 把 200 多个 commit 搞成一个,再去解决冲突进行合并,这个实际上和普通合并是一样的,只是能简化合并(比如分支有反复合并的情况等等),当然都需要解决冲突。

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

利益相关:做包管理器解压 ZIP 刚好做过编码检测自动转换。
你这个问题可能的解决方案有两种:
第一种看文件的属性,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 )的并不一致。

这里我也只是做个推测,并没有验证。
Feb 15, 2023
Replied to a topic by Yeen 程序员 问个 win32 技术问题
类似自解压软件的逻辑,可以把 exe 追加到 dll 尾部,然后解析 PE ,算出所有 sections 的大小就可以得出 exe 的偏移,然后解压出来。PE 文件可以,POSIX 系统中 ELF 也可以这么玩。
Jan 5, 2023
Replied to a topic by 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
Sep 26, 2022
Replied to a topic by 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 代码托管开发多年。
About     Help     Advertise     Blog     API     FAQ     Solana     3350 Online   Highest 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 12ms UTC 12:57 PVG 20:57 LAX 05:57 JFK 08:57
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86