V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
wencan
V2EX  ›  Go 编程语言

fork 一个项目,两边并行提交,不定期 merge,怎么解决包名冲突的问题?

  •  1
     
  •   wencan · 2022-09-30 10:44:37 +08:00 · 2294 次点击
    这是一个创建于 783 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如
    张三有一个 Go 项目,包名为 git.com/zhangsan/pkg
    李四 fork 了一份,包名改为 git.com/lisi/pkg
    然后张三的修改提交到 git.com/zhangsan/pkg ,李四的修改提交到 git.com/lisi/pkg 。两边不定期把对方的 branch/commit 合并到自己的项目。怎么解决 merge 时的包名冲突问题?每次 merge 时挨个解决冲突吗?
    实际场景中,可能是 fork 一个开源项目到公司 group 下。
    9 条回复    2022-10-10 20:50:31 +08:00
    lookStupiToForce
        1
    lookStupiToForce  
       2022-09-30 11:26:02 +08:00
    这个总得根据文档提前商定的吧,包括命名规则规范之类
    这还只是包名冲突,如果函数内容在运行时才发现冲突,你们还打算把这本可以提前商定或者提交时 review 到就解决的东西,延到运行时发现冲突了才解决?
    hopingtop
        2
    hopingtop  
       2022-09-30 11:26:15 +08:00
    蹲一个好的解决方案
    hopingtop
        3
    hopingtop  
       2022-09-30 11:27:26 +08:00
    @#2
    hopingtop
        4
    hopingtop  
       2022-09-30 11:28:35 +08:00
    @hopingtop 两边不定期把对方的 branch/commit 合并到自己的项目。怎么解决 merge 时的包名冲突问题?这个需求采用直接分支 merge 的方法好吗?正常流程是不是走 pull request 好点?
    janus77
        5
    janus77  
       2022-09-30 11:50:59 +08:00
    import 用相对包名呗。然后包名前缀不同的部分放在一个单独的配置文件里 对这个文件做 gitignore
    lysS
        6
    lysS  
       2022-09-30 12:00:33 +08:00
    怎么有两个并行的主分支,而且还需要在之间同步?是单向同步吗?
    stackexplode
        7
    stackexplode  
       2022-09-30 14:48:13 +08:00
    定义一个主干
    wusu
        8
    wusu  
       2022-10-10 18:11:31 +08:00
    在原项目的目录下开发,把 remote 改成自己的项目 url ;定义 go module ,与项目路径无关
    wencan
        9
    wencan  
    OP
       2022-10-10 20:50:31 +08:00
    @wusu 重点是代码里的包名
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:59 · PVG 21:59 · LAX 05:59 · JFK 08:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.