【问题标题】:Sparse checkout leaves no entry on working directory when using git-externals使用 git-externals 时,稀疏结帐不会在工作目录上留下任何条目
【发布时间】:2021-08-05 18:25:27
【问题描述】:

我们正在从 SVN 迁移到 git,现在遇到的问题是我们需要替换我们的 svn 外部。不幸的是,子模块并没有解决我们的问题,因为子模块的任何更改都需要更新父项目。所以我们找到了 git-externals 仓库(见https://github.com/develer-staff/git-externals) 一切运行良好,但在运行 git externals update 时,我们遇到以下错误消息:

externals sanity check passed!
External git-externals
Retrieving changes from server:  git-externals
Fetching origin
Checking out branch master
error: Sparse checkout leaves no entry on working directory
<GitError: 1 "git checkout master" None>

我已经在 SO 上查看了有关此问题的许多其他问题/答案,但对我没有任何帮助。我也不确定在运行echo my-test-dir/* &gt; .git/info/sparse-checkout 时需要传入哪个目录,因为当我运行git externals update 时,它首先将存储库检出到.git_externals-directory(而不是my-test-dir)。所以我不确定我是否需要做echo my-test-dir/* &gt; .git/info/sparse-checkoutecho .git_externals/* &gt; .git/info/sparse-checkout。但不幸的是,他们都没有工作到现在。

在我的例子中, git_externals.json 看起来像:

{
    "https://github.com/develer-staff/git-externals": {
        "branch": "master",
        "ref": null,
        "targets": {
            ".": [
                "my-test-dir"
            ]
        },
        "vcs": "git"
    }
}

我只是将 git-externals 存储库添加为外部。

有人知道我该如何解决这个问题吗?或者也许有人知道替换 svn externals 的任何其他好的替代品?

【问题讨论】:

    标签: git svn-externals sparse-checkout


    【解决方案1】:

    我是开发 Git X-Modules 团队的成员,该模块旨在将 svn:externals 体验带入 Git,并更好地替代 Git 子模块。由于您明确要求更换建议,因此我建议您检查一下。希望这不会违反 StackOverflow 规则 :-)

    Git X-Modules 是一个服务器端应用程序,它将外部存储库与父项目中的文件夹同步。对于最终用户来说,父项目只是一个常规的 Git 存储库,他们可以克隆、推送到等等。如果外部存储库更新,更改会自动提取到父项目。

    【讨论】:

    • 非常感谢,但 git-x 不是免费的,也不是开源工具,对吧?
    • 有一个命令行版本,它是免费的,很快就会开源。 Bitbucket 应用插件和即将推出的云服务是付费的。
    猜你喜欢
    • 1970-01-01
    • 2015-05-05
    • 2014-06-10
    • 2016-05-07
    • 2019-11-19
    • 2016-06-18
    • 2020-11-23
    • 1970-01-01
    • 2016-09-07
    相关资源
    最近更新 更多