为什么REPO连接远程地址和文件夹



我正在尝试使用repo为一个项目获取几个git存储库。我有一个个人git服务器,所有的git存储库都托管

我能够手动克隆个人转发执行这个命令:

git clone my_repo@my_repo_address:repo_a

但由于不同的项目需要相同的存储库,我决定使用REPO而不是手动克隆。

我创建了一个default.xml文件来使用,它包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote  name="project"
fetch="my_repo@my_repo_address"/>
<project name="repo_a" remote="project" revision="master" path="a"/>
<project name="repo_b" remote="project" revision="master" path="b"/>
<project name="repo_c" remote="project" revision="master" path="c"/>
</manifest>

我将这个default.xml文件托管在名为git-reo-fetch的存储库中的同一个git服务器上。我可以成功初始化回购,如下所示:

repo init -u my_repo@my_repo_address:git-repo-fetch

它成功地启动了。但当我执行回购同步时,我会得到错误:

Fetching project repo_c
fatal: 'git-repo-fetch/my_repo@my_repo_address/repo_c' does not appear to be a git repository
fatal: Could not read from remote repository.

我的问题是为什么repo将XML repo名称(git-reo-fetch)与fetch地址连接起来(my_repo@my_repo_address)

通过这样做,它尝试从git-reo-fetch中获取/my_repo@my_repo_address这是错误的。

据我所见(就像2011年的这个线程一样),repo一直支持ssh://URL方案

ssh://[user@]host.xz[:port]/path/to/repo.git/ 

并且而不是类似scp的语法user@host:repo

user@host:path在命令行中是一个很好的简写,但ssh://对于清单XML文件来说不那么模糊

使用scp语法,repo会"munge"URL,如2012年所述。

相关内容

最新更新