V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
newghost
V2EX  ›  程序员

各位公司用 SVN 的多还是用 GIT 做版本控制的多?

  •  1
     
  •   newghost ·
    newghost · 2018-05-11 12:58:33 +08:00 · 22413 次点击
    这是一个创建于 2379 天前的主题,其中的信息可能已经有所发展或是发生改变。

    个人感觉不适合大团队,每个人都喜欢 commit 到本地,然后还要 merge 半天。

    每个人在本地 commit 一堆代码后,Git 的 merge 和 sync 都会变得很复杂,感觉还是提交一次,合并一次的 svn 操作比较简单,省时间。

    各位公司里都是用的什么呀?

    86 条回复    2020-07-31 12:03:38 +08:00
    lommo
        1
    lommo  
       2018-05-11 13:02:51 +08:00
    都有 git 多一些
    shintendo
        2
    shintendo  
       2018-05-11 13:03:20 +08:00   ❤️ 1
    svn 主要优势是目录级权限控制吧
    TabGre
        3
    TabGre  
       2018-05-11 13:06:34 +08:00 via iPhone
    分支没有利用上吧
    kikyous
        4
    kikyous  
       2018-05-11 13:07:32 +08:00 via Android
    全 git
    nullcc
        5
    nullcc  
       2018-05-11 13:12:46 +08:00
    已经 6 年没碰过 SVN,全是 GIT
    Linxing
        6
    Linxing  
       2018-05-11 13:13:00 +08:00 via iPhone
    大福建地区 基本都是 SVN
    firedsxist0
        7
    firedsxist0  
       2018-05-11 13:14:23 +08:00
    有用 SVN 有用 GIT 的,科室用 SVN,我自己用 GIT 管理自己本地代码
    lzhCoooder
        8
    lzhCoooder  
       2018-05-11 13:15:36 +08:00
    上家用 svn 目前这家用 perforce .....
    nullcoder
        9
    nullcoder  
       2018-05-11 13:15:51 +08:00
    请问,如果你 commit 一次 push 一次和 SVN 是否有区别?
    newghost
        10
    newghost  
    OP
       2018-05-11 13:34:56 +08:00
    @nullcoder

    操作次数不一样呀。
    git 一般先 commit,再 push 吧?
    svn 直接 commit.
    newghost
        11
    newghost  
    OP
       2018-05-11 13:35:56 +08:00
    @nullcc
    @firedsxist0

    我也发现用 git 的应该都用过 svn
    whypool
        12
    whypool  
       2018-05-11 13:38:20 +08:00
    都在用
    chenyu0532
        13
    chenyu0532  
       2018-05-11 13:41:17 +08:00
    我们小单位,用的 svn。
    SaKuLa
        14
    SaKuLa  
       2018-05-11 13:46:45 +08:00
    @Linxing 不能用基本吧,我在厦门待过的公司都用 Git
    CoderGeek
        15
    CoderGeek  
       2018-05-11 13:48:33 +08:00
    都有 新项目部分用 git~
    grantonzhuang
        16
    grantonzhuang  
       2018-05-11 13:50:10 +08:00 via Android
    没有用过 svn,一直用 git,也只会 branch 和 stash 这几个,但觉得够用
    IMuMa3
        17
    IMuMa3  
       2018-05-11 13:51:16 +08:00
    git 的优势在分支
    xiaxiaokang
        18
    xiaxiaokang  
       2018-05-11 13:53:23 +08:00
    svn:文件(图片设计稿之类的)
    git:纯文本(如代码,文章)
    qloog
        19
    qloog  
       2018-05-11 13:53:54 +08:00
    必须是 Git
    xlmo
        20
    xlmo  
       2018-05-11 13:54:25 +08:00
    svn +1
    xomix
        21
    xomix  
       2018-05-11 13:55:58 +08:00
    ……微软深度伙伴,TFS,真好用,服务端就直接光盘下一步,配合 sql server,自动生成网站,配合 ad 管理不要太赞。
    fcten
        22
    fcten  
       2018-05-11 13:57:26 +08:00
    喜欢攒一堆 commit 不提交然后冲突了那不是自己的锅么。git 给了你选择,svn 不给你选择,你却觉得这是 git 的不对。
    想起以前在学校的时候用 svn,有一次服务器挂了之后代码仓库就完蛋了。只能建一个新仓库导入代码,旧的 commit 全部丢失,故障期间完全无法提交代码……
    zjsxwc
        23
    zjsxwc  
       2018-05-11 14:01:25 +08:00
    也就上上家公司是 svn 的,其他公司都是毫无疑问 git,

    个人体会是 git 比 svn 方便,而且用的人多碰到的坑也容易解决,反而 svn 用的人少,尤其很多 svn 用户连命令行都不会用,碰到问题就歇菜了
    linxl
        24
    linxl  
       2018-05-11 14:11:34 +08:00
    大福建地区 git 开发用, svn 产品用.
    iappled
        25
    iappled  
       2018-05-11 14:11:58 +08:00
    全 git
    newtype0092
        26
    newtype0092  
       2018-05-11 14:14:33 +08:00
    你喜欢 commit 完就 push 可以自己写个 alias 啊,想强制完全可以服务端 hook 不让一次 push 多个 commit 啊。用 git 肯定是因为喜欢 git 的方式,不喜欢为何不用 svn ?据我所知现在用 ftp 的也不是完全没有。。。
    cuzfinal
        27
    cuzfinal  
       2018-05-11 14:15:43 +08:00
    上一家 TFS,现在 git
    hasbug
        28
    hasbug  
       2018-05-11 14:19:37 +08:00
    喜欢 git svn 怎么说呢,公司用 svn,但····你们知道怎么搞的吗 全部项目被放到一个仓库里···这让我怎么搞某个项目的分支,反正我是不会用。
    pony279
        29
    pony279  
       2018-05-11 14:22:16 +08:00
    > 个人感觉不适合大团队,每个人都喜欢 commit 到本地,然后还要 merge 半天。


    如果每次都需要手动 merge,很可能你们的代码结构有问题,导致大量同时修改同一个文件的情况

    多数情况是自动 merge 就可以了,如果嫌 log 里一堆分支 merge 难看,团队可以要求用 rebase 啊。
    815lbh
        30
    815lbh  
       2018-05-11 14:24:30 +08:00
    经历三家公司,有 git, 有 svn。感觉 svn 更简单。
    ryd994
        31
    ryd994  
       2018-05-11 14:25:41 +08:00 via Android
    把 git 当 SVN 用就是这个结果
    firedsxist0
        32
    firedsxist0  
       2018-05-11 14:55:41 +08:00
    @newghost 我到新公司之前没用过 SVN,但我课经理一直用 SVN,so...
    Linxing
        33
    Linxing  
       2018-05-11 14:59:23 +08:00
    @SaKuLa #14 那就大福州吧 待过的公司没有看到 Git 的
    carakan
        34
    carakan  
       2018-05-11 15:06:32 +08:00
    vss svn....让我我受不了了....自己弄了一个 git..
    he583899772
        35
    he583899772  
       2018-05-11 15:09:31 +08:00
    git
    Mutoo
        36
    Mutoo  
       2018-05-11 15:11:50 +08:00
    手上有份远程工作,用的是 SVN,简直想死。后来用 git-svn 中转好多了。
    BearD01001
        37
    BearD01001  
       2018-05-11 15:52:04 +08:00
    跳槽之后终于摆脱了 SVN 0.0
    chinvo
        38
    chinvo  
       2018-05-11 16:03:01 +08:00
    git 的 branch 和 local commit 的优势就是你可以开个分支在自己本地随便改来回 revert,最后 rebase 一下 squash 一下 再 push 非常清爽。

    如果 merge 和 sync 变得一团乱麻一定是团队管理工作以及工作流标准化做的不够到位。
    murmur
        39
    murmur  
       2018-05-11 16:11:05 +08:00
    svn 上手快客户端完备 小公司用很爽
    AntiGameZ
        40
    AntiGameZ  
       2018-05-11 16:16:55 +08:00
    git 不适合大团队? LZ 怕不会是团队代码的更新都在 master 分支上做吧。

    建议可以回顾一下 Git Workflow,然后对照一下目前的工作流程,看看是否有可以调整的部分。如果是因为工具的问题,看看是否可以上新的工具或者购买对应的服务。

    参考: https://github.com/xirong/my-git/blob/master/git-workflow-tutorial.md
    Richman
        41
    Richman  
       2018-05-11 16:22:44 +08:00   ❤️ 1
    2018 年了,还有那么多公司在用 svn 吗?真的超乎我的想象。
    moshao6
        42
    moshao6  
       2018-05-11 16:27:16 +08:00
    我司还在使用
    newghost
        43
    newghost  
    OP
       2018-05-11 16:34:40 +08:00
    @Richman
    @AntiGameZ

    git 上手确实慢,让那么多人都熟练掌握人力成本有点高吧,还是比较适合专业程序员用。
    inspoy
        44
    inspoy  
       2018-05-11 16:41:02 +08:00
    自己在家用 git
    整个公司用的一个大的 svn 仓库,通过权限控制来分部门...

    话说 svn 的外链真(svn:externals)是好用,git 暂时没有看到替代方案
    jy02534655
        45
    jy02534655  
       2018-05-11 17:45:22 +08:00
    Git Extensions 了解下,有中文翻译界面可视化,完全不输 svn。
    xuhaoyangx
        46
    xuhaoyangx  
       2018-05-11 17:47:29 +08:00
    肯定 git。svn 每次 push 都要合并,反人类
    yogogo
        47
    yogogo  
       2018-05-11 17:49:14 +08:00
    @SaKuLa 我在厦门可能待过假的公司_(:ェ 」∠)_
    qing0304
        48
    qing0304  
       2018-05-11 18:20:27 +08:00
    git
    lsyAndroid
        49
    lsyAndroid  
       2018-05-11 18:33:44 +08:00 via Android
    git,打分支打习惯了
    GeruzoniAnsasu
        50
    GeruzoniAnsasu  
       2018-05-11 18:56:37 +08:00   ❤️ 3
    git 要严格控制分支

    哪个分支作为开发新 feature 的 fork 分支,哪个分支为某开发人员专有,什么时候 rebase,什么时候 merge

    都要有规定才行

    不然来个人非要做死从别人写一半的分支 fork,再 merge 旧版本,再给你 rebase 到 master,再 patch 到 dev,光看我描述你都觉得恐怖了

    svn 就倒是不会出现这种问题,svn 基本上只有往前滚的可能性,而且容易强制每个 commit 都是完整的 feature,但这种强制也容易拖慢同步进度,使得同步粒度变粗

    如果管理得当而且所有开发人员都很熟悉特性的情况下,git 还是很理想的,但“管理得当”就已经非常难了,“所有开发人员都很熟悉”对于某些传统一点的公司来说简直天方夜谭
    mritd
        51
    mritd  
       2018-05-11 19:03:06 +08:00 via iPhone
    😂 容我好奇的问一下,用 svn ci 啥的怎么处理,还有 gitflow
    winglight2016
        52
    winglight2016  
       2018-05-11 19:42:18 +08:00
    不要怀疑 git,觉得不好用一定是你不会用,相比 svn 已经是代际优势了
    wentaoliang
        53
    wentaoliang  
       2018-05-11 19:58:45 +08:00 via iPhone
    git rebase 了解下?
    AlphaTr
        54
    AlphaTr  
       2018-05-11 22:49:53 +08:00
    接触 git 以后再也用不回去 svn 了,用也是 git-svn 中转
    jin5354
        55
    jin5354  
       2018-05-11 23:22:16 +08:00
    我进来看看有没有用 hg 的
    yylucifer
        56
    yylucifer  
       2018-05-11 23:52:39 +08:00
    楼主的问题是你司的 git flow 没有做好。

    一个良好的 git flow 我觉得很优美。
    niklause
        57
    niklause  
       2018-05-11 23:53:15 +08:00
    肯定是 git 啊
    pepesii
        58
    pepesii  
       2018-05-12 00:06:36 +08:00 via iPhone
    我司在用 hg
    ymd
        59
    ymd  
       2018-05-12 00:36:39 +08:00
    不客气的说 现在还用 svn 的公司 早点跳槽八
    cxbig
        60
    cxbig  
       2018-05-12 01:58:44 +08:00
    Git 用了快 10 年了,早已不记得 SVN 怎么用了。
    bingwenshi
        61
    bingwenshi  
       2018-05-12 02:17:18 +08:00   ❤️ 1
    都 2018 年了,竟然还有人问这问题


    @ymd 是的,还在用 svn 的公司,早点跳槽吧
    msg7086
        62
    msg7086  
       2018-05-12 02:33:29 +08:00
    你不要因为整个团队的人连 Git 都不会用就说 Git 用起来不好吧。

    你觉得 Linux 内核开发团队算大团队吗?

    当然了,如果你们团队的人都不会用 Git,那是用 SVN 好。
    说不定 SVN 都用不溜,那还是打包 QQ 传档标日期得了。

    不要把软件工程师这个职位当成儿戏!
    findingpan
        63
    findingpan  
       2018-05-12 05:01:18 +08:00
    Git 目前常用 hotfix, feature branch, pull request 做 code review 这些吧
    openplatform
        64
    openplatform  
       2018-05-12 05:48:46 +08:00
    Linux Kernel 目前经过 25 年的发展,有 1500 万行代码,运行在无数设备上。

    这算大型项目么?
    northisland
        65
    northisland  
       2018-05-12 09:01:57 +08:00
    都有在用,我们组用 svn ……

    反正我都用的不熟,体会不到该鄙视谁

    不晓得 git 怎么玩文件映射,目录权限;也不晓得 git 多用户 merge 是咋比 svn 好,

    求各位大佬科普
    geelaw
        66
    geelaw  
       2018-05-12 09:26:10 +08:00 via iPhone
    我在很久以前的一家公司实习的时候用的 VSS,再之后的一家公司是 Git,再之后的研究机构是 SVN,再之后在微软的具体的项目是 Git (VSTS/VSO)。

    平时自己用的是 Git (GitHub, VSTS/VSO)。

    我没搞懂,SVN 是不是没有分支啊😪
    msg7086
        67
    msg7086  
       2018-05-12 10:12:07 +08:00
    @geelaw 有,但是代价高到飞起,相当于 cp -r。
    jin5354
        68
    jin5354  
       2018-05-12 10:29:46 +08:00
    @geelaw svn 的分支就是复制一份新的
    arawn
        69
    arawn  
       2018-05-12 10:55:21 +08:00
    没用过 svn。呆过 3 家都是 git
    billchenchina
        70
    billchenchina  
       2018-05-12 11:07:52 +08:00 via Android
    @mritd #51
    webhook 能做吧
    congeec
        71
    congeec  
       2018-05-12 12:40:22 +08:00 via iPhone
    @lzhCoooder 代码很多呢?居然要上 p   4
    oongxx
        72
    oongxx  
       2018-05-12 14:19:46 +08:00
    VSTS -> TFVC
    ChasYuan
        73
    ChasYuan  
       2018-05-12 14:28:06 +08:00 via Android
    svn 做文档管理,开发用 git。
    waruqi
        74
    waruqi  
       2018-05-12 15:11:58 +08:00 via Android
    git
    Mutoo
        75
    Mutoo  
       2018-05-12 15:21:14 +08:00
    @inspoy git submodule 了解一下。
    cnbattle
        76
    cnbattle  
       2018-05-12 15:22:36 +08:00
    svn 是啥? 没用过 (:狗头
    dyllanwli
        77
    dyllanwli  
       2018-05-12 15:29:55 +08:00
    用 git flow 确实很麻烦
    iyangyuan
        78
    iyangyuan  
       2018-05-12 18:32:38 +08:00 via iPhone
    svn
    ldehai
        79
    ldehai  
       2018-05-12 19:07:39 +08:00
    有些公司自己搭服务器,习惯性 SVN,估计很多没听过还可以装 gitlab。
    其他不谈,如果没网络,svn 根本用不起来。git 完全没问题,也不会影响干活。
    用过 git 再也不会喜欢 svn 的。
    chenqh
        80
    chenqh  
       2018-05-12 19:49:56 +08:00
    没网络你们居然能干活的?不 bing 的吗
    lightening
        81
    lightening  
       2018-05-12 19:57:55 +08:00
    如果你 merge 经常有大量冲突,用 svn 也是一样啊,肯定埋头干半天发现提交不了。
    zpf124
        82
    zpf124  
       2018-05-12 20:14:01 +08:00
    svn 虽然我个人很想在小部门里推 git,但大家觉得两者差距并不大,不愿意更换。
    chenqh
        83
    chenqh  
       2018-05-12 21:11:30 +08:00
    @zpf124 本来没有多大区别,除非用了 gitlab,以及你项目非常大,svn 分支建起来太慢
    ckylolo
        84
    ckylolo  
       2018-05-12 21:21:38 +08:00
    不是一个层级的东西,非要比计较的话,svn 过家家,git 才是团队协作和流程控制以及质量保证的利器。

    有兴趣可以了解下

    http://blog.jobbole.com/109466/
    merlin1001
        85
    merlin1001  
       2018-05-18 15:26:16 +08:00
    git 和 svn 都用过,个人感觉小团队开发还是 git 更方便
    XisucksYi
        86
    XisucksYi  
       2020-07-31 12:03:38 +08:00
    那只是你覺得複雜, git 有 local branch, remote branch, remote tracing branch. svn 呢?
    而且我很想知道下對於 MicroServices 開發, svn 怎麼做
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1502 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 17:20 · PVG 01:20 · LAX 09:20 · JFK 12:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.