Py学习  »  Git

分支不对齐时的git svn合并

jwm • 6 年前 • 1300 次点击  

我怀疑这可能只是 git svn ,但我想征求SO社区的意见。

我在做一个项目 视觉神经网络 用于版本控制。这不会改变,我无法控制。我很高兴在我的分支上做我的工作 git-svn . 然而,我遇到了一个奇怪的问题,与svn项目的奇怪设置方式有关。

在SVN中,项目如下所示:

  • 项目根
    • 分支机构
      • 迈科
        • DR1
        • DR2
        • 等。
    • 大旅行箱
      • 投影仪
        • DR1
        • DR2
        • 等。

git/CONFIG:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[svn-remote "svn"]
    url = http://svn-repo
    fetch = project/trunk:refs/remotes/trunk
    branches = project/branches/*:refs/remotes/*
    tags = project/tags/*:refs/remotes/tags/*

创建分支时,它们是在下面一级创建的 trunk . 我也无法控制。

当我试图从 MyBranch 大旅行箱 ,我的树向上合并一层。也就是说, MyBranch/Dir1 与…没有关系 trunk/Proj_Main/Dir1 . 在 视觉神经网络 在本机上,它确实理解这种关系,我可以使用 视觉神经网络 工具,但 Git 迷路了。

有没有办法告诉你 Git 那个 master 指向 trunk/Proj_Main 而不是仅仅 大旅行箱 ?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43178
文章 [ 2 ]  |  最新文章 6 年前
jwm
Reply   •   1 楼
jwm    7 年前

@EFTShift0的进近正确。有时无法挽救糟糕的局面。我确保一切都与svn同步,然后重新开始。

git svn clone -r<start>:HEAD http://svn-repo/project \
    --prefix=mine/ \
    --trunk=trunk/Proj_Main --branches=branches --tags=tags \
    --no-minimize-url

因为这是一个非常成熟的SVN回购协议,而且我不关心5年前的历史,所以为了时间,我限制了克隆的范围。

这个 --prefix 是基于 git-svn docs .

而不是 -s --stdlayout ,我明确指定了svn中的布局方式。注意,早期应用此方法的尝试遇到了 git-svn bug 正在获取,可能与已删除的SVN分支有关。这是限制获取范围的另一个原因。

这个 --no-minimize-url 是因为服务器上存在其他回购协议。如果没有这个开关,git svn就会提升一个级别并考虑 全部的 试图解决分支、合并等问题的回购协议。那对我来说不是件好事。

eftshift0
Reply   •   2 楼
eftshift0    7 年前

编辑fetch行如下:

fetch = project/trunk/Proj_Main:refs/remotes/trunk

应该可以…… 然而 ,我不知道您是否需要再次从修订版1中获取这样的更改才能正常工作。