【问题标题】:git svn clone of a single directory of SVN repositorygit svn clone SVN 存储库的单个目录
【发布时间】:2013-07-25 18:44:36
【问题描述】:

我正在尝试使用git svn 将 SVN 存储库的单个目录克隆到 Git 存储库中。

如果我使用git svn clone svn+ssh://path/to/repo/trunk/directory,我会得到一个没有分支的 Git 存储库,该分支镜像源 SVN 存储库中的分支。

如果我使用git svn --stdlayout svn+ssh://path/to/repo/trunk/directory,我会得到一个空的 Git 存储库。以下是命令的输出:

Initialized empty Git repository in /directory/.git/
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory'
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories

我已经读过解决上述问题的方法是添加一个修订范围,如-r 1000:HEAD,这仍然会产生一个空的回购。输出是:

Initialized empty Git repository in /directory/.git/
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo

关于如何使用 git-svn 克隆 SVN 存储库的子目录,仍然从源 SVN 存储库中获取所有分支和标签的任何想法?

【问题讨论】:

    标签: git svn version-control git-svn


    【解决方案1】:

    你不想要标准布局,你想要这样的:

    git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory
    

    【讨论】:

    • 这里的见解是您可以在--branches 参数中使用通配符。不错。
    • 请注意——如果您没有该特定目录的分支或标签,那么您可以放心地省略 --branches--tags 参数。那只是使用--trunk=... 而不是--stdlayout 应该可以正常工作。
    • 我可以使用多个directory 值而不是一个值来执行此操作吗?最好有一个特定目录名称的列表。背景:通过子目录将单个 SVN 存储库拆分为多个 Git 存储库(同时仅迁移这些子目录的历史记录,而不是整个 SVN 存储库)。
    【解决方案2】:

    准备并进入本地项目目录:

    mkdir local/project/path
    cd local/project/path
    

    使用 svn remote 初始化本地 git 仓库并获取数据:

    git svn init http://my_svn_server.com/repository/project/location
    git svn fetch
    

    感谢 Gabriel Saldaña:http://blog.gabrielsaldana.org/using-git-with-subversion-repository-subdirectory/

    【讨论】:

    • 请注意,这不允许添加用户(作者)映射文件。至少不是-A
    • 这实际上与通常的一步git svn clone 没有什么不同。
    • 这成功了。似乎也有效的另一件事是 git svn clone --no-metadata...
    • 这只是让您了解 svn 项目的当前内容还是所有历史记录?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多