在mercurial中,什么是.hg\store\dh目录?
我注意到我的mercurial repos有一个.hg\store\dh目录。该目录的用途是什么 另外,我注意到该目录中的目录名只有8个字符。在允许255个字符长的目录名的操作系统上,这似乎是一个问题在mercurial中,什么是.hg\store\dh目录?,mercurial,Mercurial,我注意到我的mercurial repos有一个.hg\store\dh目录。该目录的用途是什么 另外,我注意到该目录中的目录名只有8个字符。在允许255个字符长的目录名的操作系统上,这似乎是一个问题 Stephendh文件夹用于,以克服有限的文件名问题。根据找到的文件 所有散列的路径都存储在内部的目录“dh”中 “.hg/store”。非散列路径存储在“.hg/store/data”中 使用的散列是direncoded的sha1摘要(40个字符) “.hg/store”下面的路径,由mercu
Stephendh文件夹用于,以克服有限的文件名问题。根据找到的文件 所有散列的路径都存储在内部的目录“dh”中 “.hg/store”。非散列路径存储在“.hg/store/data”中 使用的散列是direncoded的sha1摘要(40个字符) “.hg/store”下面的路径,由mercurial.filelog.encodedir预编码 对于hashencoded路径,第一个n的前八个字符 采用目录级别(转换为小写),其中n为 如果空间允许,稍微调整以使用更多级别(参见 存储。杂交编码)。如果空间允许,则在哈希之前输入文件名 值由文件名中转换为小写的字符填充 输入路径的名称 如您所见,完成的路径编码可能会折叠多个文件 从不同的输入路径目录发起到同一个目录 编码路径目录。文件名的sha1摘要部分确保 文件名是不同的,不会发生名称冲突。
因此,不,8个字符不是问题,因为通过哈希方法解决了歧义。将
dh
文件夹用于,以克服有限的文件名问题。根据找到的文件
所有散列的路径都存储在内部的目录“dh”中
“.hg/store”。非散列路径存储在“.hg/store/data”中
使用的散列是direncoded的sha1摘要(40个字符)
“.hg/store”下面的路径,由mercurial.filelog.encodedir预编码
对于hashencoded路径,第一个n的前八个字符
采用目录级别(转换为小写),其中n为
如果空间允许,稍微调整以使用更多级别(参见
存储。杂交编码)。如果空间允许,则在哈希之前输入文件名
值由文件名中转换为小写的字符填充
输入路径的名称
如您所见,完成的路径编码可能会折叠多个文件
从不同的输入路径目录发起到同一个目录
编码路径目录。文件名的sha1摘要部分确保
文件名是不同的,不会发生名称冲突。
所以不,8个字符不是问题,因为歧义是通过哈希方法解决的