gpt4 book ai didi

git - 将单独的 SVN 目录导入为 git 分支

转载 作者:太空狗 更新时间:2023-10-29 13:53:54 27 4
gpt4 key购买 nike

我想将现有的 SVN 存储库转换为非标准布局,如下所示:

/ (root)
/trunk
regular trunk stuff that I would like to make the "master" branch
/folder1
files that I would like to make a separate branch "folder1"
/folder2
files that I would like to make a separate branch "folder2"
/folder3
files that I would like to make a separate branch "folder3"

... 到 git 存储库,保留历史记录。

要注意的是 folder1folder2folder3 没有从 trunk 中的某个点分支出来;它们是一组单独的文件,并且它们不在某个方便的子目录中(这就是这个问题与 that one 不同的原因)。

所需的 git 分支布局如下所示:

master -----+------(trunk r1)------(trunk r2)----...
|
folder1 \-----(folder1 r1)----(folder1 r2)---...
|
folder2 \-----(folder2 r1)----(folder2 r2)---...
|
folder3 \-----(folder3 r1)----(folder3 r2)---...

(这些修订号不是实际的 svn 修订号,只是该特定文件夹中的提交号)

我试过使用 git svn 但它似乎希望分支位于一个目录中,每个分支包含一个子文件夹。问题是,如果我这样做,我将不得不使用 / (根目录)作为分支目录,这将使 trunk 成为一个单独的分支(虽然我想将其用作 master 分支)。

最佳答案

您可以通过编辑 .git/config 文件为 git svn 指定多个“trunks”来完成此操作。

像往常一样初始化你的 git 仓库:

git svn init {url-to-repository} -T trunk

现在,如果你编辑你的 .git/config 文件,你会发现如下所示的部分:

[svn-remote "svn"]
url = {url-to-repository}
fetch = trunk:refs/remotes/trunk

只需添加如下几行,这会将每个文件夹添加为要获取的单个文件夹(而不是要获取的分支文件夹或标签文件夹):

    fetch = folder1:refs/remotes/folder1
fetch = folder2:refs/remotes/folder2
...

关于git - 将单独的 SVN 目录导入为 git 分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com