注意:独立于 ssh 问题,您可以git clone url/arguments
在t/t5603-clone-dirname.sh
.
当 url 以斜杠结尾时,该文件的第一个版本显示了一些失败的克隆命令,git 2.4.8(2015 年 8 月 3 日,在即将到来的 2.5.1 中修复,2015 年 9 月):
test_clone_dir ssh://host/foo.git/ foo fail
test_clone_dir ssh://host/foo.git/// foo fail
test_clone_dir host:foo.git/ foo fail
test_clone_dir host:foo.git/// foo fail
请参阅Jeff King ( )的提交 db2e220和提交 d6a31e0(2015 年 8 月 10 日) 。(由Junio C Hamano 合并 -- --在提交 52f6893中,2015 年 8 月 25 日)peff
gitster
clone
: 使用计算长度guess_dir_name
提交 7e837c6(clone
:在 2015-07-09 中简化字符串处理guess_dir_name()
)将克隆更改为使用 strip_suffix 而不是手动滚动指针操作。
但是,strip_suffix
将从 NUL 终止字符串的末尾剥离,并且我们可能已经剥离了一些字符(如目录分隔符或“ /.git
”)。
这会导致如下命令:
git clone host:foo.git/
未能剥离“ .git
”。
请注意,在 Git 2.34(2021 年第四季度)中,“ git submodule add
” (man)的更多部分已用 C 重写。
这涉及guess_dir_name()
那些脚本使用的,并被重构:
请参阅Atharva Raykar ( ) 的提交de0fcbe、提交15fe88d、提交 ba8a3b0、提交 f006132、提交 a6226fd、提交 ed86301、提交 0c61041、提交 ab6f23b、提交 6baf4e4(2021 年 8 月 10 日)。
请参阅Junio C Hamano ( ) 的提交 59dcbb8(2021 年 8 月 10 日)。(由Junio C Hamano 合并 -- --在提交 bbeca06中,2021 年 9 月 20 日)tfidfwastaken
gitster
gitster
dir
: libify 和导出辅助函数clone.c
签字人:Atharva Raykar
指导者:Christian Couder
指导者:Shourya Shukla
这些函数对 Git 的其他部分很有用。
让我们将它们移动到dir.c
,同时重命名它们以使其功能更加明确。