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

svn 明明很好用呀,为啥那么多人歧视?

  •  1
     
  •   zarte · 2019-04-17 17:04:05 +08:00 · 9848 次点击
    这是一个创建于 2079 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.导出修改的文件:
    svn:选择提交记录右键导出。
    git:命令导出数据太多的时候就无法导出
    2.冲突
    svn:图形界面查看直接修改保存
    git:没用过图形界面的
    3.分支
    git:分支修改后实际上本地文件是变了,感觉跟手动选择更新没啥区别

    第 1 条附言  ·  2019-04-19 10:17:10 +08:00
    git 离线也能提交这一点好,有的时候会用到。
    git 图形界面确实没用过。
    89 条回复    2019-04-19 13:07:09 +08:00
    dog
        1
    dog  
       2019-04-17 17:37:28 +08:00 via iPhone   ❤️ 1
    因为那些半懂不懂的就喜欢鄙视旧技术 猛吹新技术
    undeflife
        2
    undeflife  
       2019-04-17 17:46:31 +08:00
    svn 作为版本工具不赖, 我个人更倾向于把 git 定义为协作工具. 把 git 跟 svn 这样去比较,我觉得你还没理解 git

    1.导出修改的文件:
    git:git diff xxxx >> aaa.patch 或者 git format-patch branch --stdout > aaa.patch 不管是导出文件改动、commit、还是分支都很容易
    2. 冲突
    git: 不会手动的话 图形工具的选择也很多
    3. 分支
    没看懂你在表达什么
    HongJay
        3
    HongJay  
       2019-04-17 17:56:25 +08:00   ❤️ 2
    svn 开分支有多可怕你知道么。
    hlwjia
        4
    hlwjia  
       2019-04-17 17:57:40 +08:00   ❤️ 2
    3. 分支
    没看懂你在表达什么
    hlwjia
        5
    hlwjia  
       2019-04-17 17:58:11 +08:00   ❤️ 2
    2. 冲突
    没用过就代表没有好用的?
    hlwjia
        6
    hlwjia  
       2019-04-17 17:59:37 +08:00   ❤️ 4
    要吐槽可以,不过槽点要选好;没选好槽点,和喷子就没有区别了
    lincanbin
        7
    lincanbin  
       2019-04-17 17:59:45 +08:00
    git:去中心化,在家连不上公司 Git 也能继续写代码,能 commit 能回滚,享受版本管理。
    nullcoder
        8
    nullcoder  
       2019-04-17 18:01:17 +08:00   ❤️ 11
    svn: 不用出差,活不用带回家,人不在公司接电话都可以“我不记得怎么写的了”
    gulucn
        9
    gulucn  
       2019-04-17 18:04:10 +08:00 via Android
    没试过 svn 切换分支开发的?跟 git 差远了。
    wysnylc
        10
    wysnylc  
       2019-04-17 18:07:09 +08:00   ❤️ 4
    svn 分支很烂,git 同样有图形界面
    吹捧新技术贬低旧技术不可取,固守旧技术不学习新技术更加致命
    ACool
        11
    ACool  
       2019-04-17 18:07:22 +08:00 via Android
    鹅厂的路过,开发用的 svn,分支管理就是 shit
    falcon05
        12
    falcon05  
       2019-04-17 18:10:34 +08:00 via iPhone
    好久没用 svn 了,楼主说得这些没啥感觉,记得 svn 可以只检出部分的内容,不用检出整个项目,还有它的权限控制好像做得比 git 完善。
    balabalaguguji
        13
    balabalaguguji  
       2019-04-17 18:16:49 +08:00
    @HongJay 你完全不懂 SVN 的分支,SVN 的分支早就不是全部 copy 了
    balabalaguguji
        14
    balabalaguguji  
       2019-04-17 18:18:05 +08:00
    @gulucn 为什么这么多人对 SVN 切分支还停留在几十年前的理解水平,现在 SVN 切换分支,创建分支都是瞬间的
    balabalaguguji
        15
    balabalaguguji  
       2019-04-17 18:21:41 +08:00
    我个人也是比较喜欢用 SVN,简单、够用,图形化看 diff,解决冲突。
    都是很好的工具,各有所长,任何一个只要你熟练账号,都能很好的协作。
    很多人喷 SVN,其实是对他不够了解,比如分支这个,很多人还以为开个分支等于全部内容复制一次...
    balabalaguguji
        16
    balabalaguguji  
       2019-04-17 18:22:16 +08:00
    另外推荐你们一个很好用的 SVN 平台,svnbucket.com
    keepeye
        17
    keepeye  
       2019-04-17 18:24:13 +08:00
    git 用的很顺手,主要是离线可用,不用连远程仓库
    gouflv
        18
    gouflv  
       2019-04-17 18:26:30 +08:00 via Android
    楼主带着主观感受的评价就不一一吐槽了,你觉得好用就行,但是不能阻止我歧视这种还不会用 git 的人
    pkookp8
        19
    pkookp8  
       2019-04-17 18:28:27 +08:00 via Android   ❤️ 1
    svn 有权限管理,严格控制每个路径的权限,就像在说不是你的你别管
    git 只有项目的权限
    人生不要花费在这种没意义的权限管理中,不相信我就别用我
    love
        20
    love  
       2019-04-17 18:52:32 +08:00 via Android
    @balabalaguguji svn 分支难用不是指速度。不知道现在怎样了,以前和 git 相比相当于手动挡
    kevinhwang
        21
    kevinhwang  
       2019-04-17 18:55:42 +08:00 via Android   ❤️ 1
    git 是生态。如果你还抱着 svn 证明很少关注 github 里面的开源项目。
    across
        22
    across  
       2019-04-17 18:57:07 +08:00 via iPhone
    @ACool 竟然没买 perforce...
    learnshare
        23
    learnshare  
       2019-04-17 19:19:32 +08:00
    图形界面是优势?没用过怎么来的结论
    ACool
        24
    ACool  
       2019-04-17 19:20:23 +08:00 via Android
    @across 都是自研的
    cmheia
        25
    cmheia  
       2019-04-17 21:11:03 +08:00
    服务器不行,每次打开 log,客户端先卡半个小时,前人还把子目录移来移去,追溯历史基本成为不可行的一件事,还能好用?
    randyo
        26
    randyo  
       2019-04-17 21:21:53 +08:00 via Android
    公司用 SVN 可以尝试本地用 git-svn 桥接,自己就可以愉快用 git 了
    FakeLeung
        27
    FakeLeung  
       2019-04-17 21:23:50 +08:00   ❤️ 1
    不鄙视用 svn 的人,只鄙视两者都不会的程序员。
    tyrealgray
        28
    tyrealgray  
       2019-04-17 21:26:33 +08:00
    为什么这么多人对 SVN 切分支还停留在几十年前的理解水平

    因为就是几十年前被坑了才会换到 git 啊,没毛病
    opengps
        29
    opengps  
       2019-04-17 21:28:28 +08:00   ❤️ 1
    我习惯用 svn 管文件,git 管代码
    Sharuru
        30
    Sharuru  
       2019-04-17 21:30:35 +08:00
    git 主要分支比起 svn 管理起来容易,但学习成本略高。
    svn 上手简单超简单,而且不服就 lock,糙快猛。

    反正两者对二进制都支持不好( pdf,doc 之类的)。

    我反正给啥用啥,我都喜欢,我都爱用。
    starsky007
        31
    starsky007  
       2019-04-17 21:39:16 +08:00 via Android
    歧视倒不至于,两个都好,但 Git 更好。
    RyuZheng
        32
    RyuZheng  
       2019-04-17 21:41:56 +08:00
    和 29 楼一样,我之前有大量 Excel、Word 文件,所以管理这些文件的版本使用 SVN 管理项目,而代码使用 Git ;一直用的很舒服
    des
        33
    des  
       2019-04-17 21:51:07 +08:00 via iPad
    @Sharuru
    world 有修订审阅功能,可以放 svn 然后用这个功能,不过文件合并应该是不行的。

    建议用一阵子再来对比吧,都没用过,是没法比较的
    starsky007
        34
    starsky007  
       2019-04-17 21:51:35 +08:00 via Android
    @opengps
    @RyuZheng
    请教一下,管理二进制文件方面,Git 没有 SVN 好吗?
    des
        35
    des  
       2019-04-17 21:53:59 +08:00 via iPad
    另外提醒一下各位 GitHub 也是能用 svn checkout 出来的
    des
        36
    des  
       2019-04-17 21:57:54 +08:00 via iPad
    @starsky007

    说实在的,二进制文件,这两个都不是特别好用。
    git 的话这些操作步骤有些烦,因为根本就不能合并,虽说有 git lfs 可以用
    hhhsuan
        37
    hhhsuan  
       2019-04-17 22:03:38 +08:00 via Android
    svn 有分支?
    RyuZheng
        38
    RyuZheng  
       2019-04-17 22:10:07 +08:00   ❤️ 1
    @starsky007 #34 git 只要你打开过这个 Excel,光标移动一下都算文件改动了,而且都是二进制的,根本不能版本跟踪,至少 SVN 效果还会好一点,自带 Compare,或者你使用 Office 自身的 compare。而且 SVN 其实也可以用 Git-SVN 来进行管理,语句跟 Git 类似,就是不是太完美,有时会出一些小 bug ;但是我之前一直使用 Sourcetree 来进行管理,很舒服。
    starsky007
        39
    starsky007  
       2019-04-17 22:21:47 +08:00 via Android
    @RyuZheng

    感谢回复。

    SVN 确实更加人性化一点,自带了不少比较 Office 文件的办法,开箱即用。Git 应该通过配置比较工具,也能达到目的,明天试试。
    micean
        40
    micean  
       2019-04-17 22:29:01 +08:00   ❤️ 1
    svn 管理文档很好用,因为可以可以只看单个文件而不需要整个库 check out 下来
    jim9606
        41
    jim9606  
       2019-04-17 23:05:53 +08:00
    完全可以把 git 当成 svn 用,git 的意义在于可以脱离服务器工作。因为比 svn 多了本地仓库与远程仓库同步的步骤 fetch,push,pull(fetch+merge),刚接触的可能会晕。
    至于权限控制,可以用 gitosis 或者 gitlab 整体方案,或者直接拆分项目。
    icyalala
        42
    icyalala  
       2019-04-17 23:12:00 +08:00
    git 和 svn 各有各的特色。被鄙视的是那种 "只会用一个但是鄙视另一个" 的人。
    murmur
        43
    murmur  
       2019-04-17 23:13:41 +08:00
    svn 适合企业、分工明确的项目
    git 特别适合云撕逼
    lusi1990
        44
    lusi1990  
       2019-04-17 23:21:27 +08:00 via Android
    @nullcoder 这个棒
    MonoLogueChi
        45
    MonoLogueChi  
       2019-04-17 23:24:01 +08:00 via Android
    游戏开发者表示,git 真 tm 难用
    afx
        46
    afx  
       2019-04-17 23:25:11 +08:00 via iPhone
    @HongJay 含泪点赞,尤其项目文件大的时候,真带薪开分支
    duzhihao
        47
    duzhihao  
       2019-04-18 01:21:38 +08:00 via iPhone
    算了。还是换 react 和 vue 谁好的问题吧
    GeruzoniAnsasu
        48
    GeruzoniAnsasu  
       2019-04-18 02:13:35 +08:00   ❤️ 2
    两个工具的倾向很不一样

    svn 主要作用在于控制版本历史
    git 的目的在于多人协作


    违背设计倾向去使用无论哪个都会寸步难行
    SVN 你想在多人合作下细粒度地分工并行简直是噩梦,带薪开分支我笑了了一下,而且其他人是无法容忍分支上有 wip 节点的,他得从过去的某个 full-featured 节点分支出去再 merge 回来,这对于 svn 来说简直相当于上刑
    GIT 的话首先它的历史系统真的太复杂了,一个 merge 节点包含过去两条并行的历史,一个复杂的多人协作项目,用可视化界面一眼看上去 5 条竖线顿时头大,更别说没 GUI 的话翻 commit 能翻成傻逼,这很大程度也是为什么几乎所有用 git 的项目都要强调“在 merge 到主线前必须 rebase ”,目的就是减少并行历史,节点逻辑相对清晰。而 SVN 的特性决定了没法搞出来这么复杂的节点历史树,每一个分支都是源码副本的单线历史,非常清晰
    GeruzoniAnsasu
        49
    GeruzoniAnsasu  
       2019-04-18 02:27:31 +08:00   ❤️ 4
    “歧视 svn ”的原因在于 互联网行业开发特性就是迭代快,版本多,分工细,模块上线时间不同步,这些因素迫使大家去选择“倾向于多人协作”的 git

    你可以想象一下用 SVN 得撕逼撕成啥样:
    “哎卧槽说了这个 pipeline 没跑完之前不要 push 啊,没测完就加个新版本进来到时候怎么合啊”
    “哪个傻逼往公共主线上推了一个没写完的微服务,赶快出来挨打,我 tm 删构建代码都删了半天”
    “什么? 分支 1 上这个特性在 r305 就有了啊,怎么分支 5 都滚到 r378 了还没加上……什么?代码结构变了没法合并?那你赶快给我重写一个一样的,今晚搞定可以吧?”
    “ A 你跟 B 的模块对接完成了吗? 啥还没搞定?赶紧搞完,别的同事都没法上传代码了”
    chenqh
        50
    chenqh  
       2019-04-18 02:39:31 +08:00
    没网你们真的能够写代码吗?方正我不能
    chenqh
        51
    chenqh  
       2019-04-18 02:44:17 +08:00
    感觉还是 git 难用,如果不是 gayhub,git 不会有现在这么火
    mingl0280
        52
    mingl0280  
       2019-04-18 05:39:34 +08:00
    shi 一样的 svn 的分支管理……现在公司用着 svn 真的是十分蛋疼……
    xuanbg
        53
    xuanbg  
       2019-04-18 07:54:29 +08:00
    SVN 不难用,但 Git 更好用呀!
    Mutoo
        54
    Mutoo  
       2019-04-18 08:03:42 +08:00
    公司在国内用 svn,我在国外兼职远程工作简直是恶梦,遇到网络不好的时候,没法提交。后来用 git-svn 桥接解决。
    另一个痛点上面也提到了,就是如果有人往仓库提交了有错误的代码,不等他修好,导致其它人都无法正常协作,这是非常蛋疼的,一周总会发生一两次。这主要是 SVN 分支非常难用导致的。
    Cbdy
        55
    Cbdy  
       2019-04-18 08:05:32 +08:00
    mohoumk2
        56
    mohoumk2  
       2019-04-18 08:05:37 +08:00 via Android
    svn 不是管理文件的吗………替代 ftp 特好用
    wdv2ly
        57
    wdv2ly  
       2019-04-18 08:09:41 +08:00
    @hlwjia 哈哈哈哈+1,git 或许有不好的地方,但 LZ 选的槽点恰恰坐实了他一点不懂 git
    sugars
        58
    sugars  
       2019-04-18 08:17:58 +08:00
    有更好用的 git 我为什么要用 svn ?所以这就是别人眼中的歧视
    babedoll
        59
    babedoll  
       2019-04-18 08:20:35 +08:00
    你们用过 TFS 吗 我吹爆!!
    不仅有每次代码上传的历史记录,也就是任何时候可以回退到历史版本。而且上传自己更改的代码的时候如果和其他人有冲突会有历史文件对比和代码块重新选择!

    呜呜呜太好用了,TFS 一生推。
    raptor
        60
    raptor  
       2019-04-18 08:42:09 +08:00
    我还以为自己穿越了,翻了一下旧文,发现我吹 svn 的时候是 2005 年……
    sonyxperia
        61
    sonyxperia  
       2019-04-18 08:42:17 +08:00
    我也觉得 svn 简单多了
    shench
        62
    shench  
       2019-04-18 08:50:01 +08:00
    因为 SVN 是图形界面啊,还有,它比较老啊~ (手动狗头)
    zdd2389
        63
    zdd2389  
       2019-04-18 09:02:13 +08:00
    svn 有一个操作一直没明白,就是本地有代码的时候,如何 check in 到 svn 服务器上? import 上传本地没有版本管理
    xiangyuecn
        64
    xiangyuecn  
       2019-04-18 09:07:34 +08:00
    因为 TortoiseSVN 好用,还没用过 git 的分支,不过没发现 svn 的分支有什么问题呀

    另外:svn 虽老,但 svn 一个吊打 git 的功能:目录级别的权限控制 和 检出,不接受反驳。

    github 上的仓库管理我用 git 客户端比较少,大部分时间用的 TortoiseSVN 客户端,有没有相同的 v2er

    sagaxu
        65
    sagaxu  
       2019-04-18 09:09:46 +08:00 via Android
    svn 普遍不加班,这点吊打 git
    sevenQu
        66
    sevenQu  
       2019-04-18 09:12:54 +08:00
    不管黑猫白猫,抓到老鼠就是好猫。还记得之前懵懵懂懂,用的 svn 连接的新浪云,那时 git 还没这么广泛
    123s
        67
    123s  
       2019-04-18 09:20:58 +08:00
    有时候要随大流,现在都是 git。就像别人都开摩托车,你还开电动自行车。
    wupher
        68
    wupher  
       2019-04-18 09:22:54 +08:00
    SVN 拉分支,尤其是切换分支,还是挺麻烦的。更别提分支比较了。

    SVN 在连不上 SVN 服务器的情况下,基本什么都做不了。Git 还可以本地 commit,后续再 push,拉分支,切分支也没问题。

    最后,SVN 要真这么好,哪来的 github,应该现在大家用的是 svnhub 才对。
    ZhLTE
        69
    ZhLTE  
       2019-04-18 09:23:40 +08:00
    都用我也觉得单就使用来说 svn 比 git 好用过了
    ZhLTE
        70
    ZhLTE  
       2019-04-18 09:24:08 +08:00
    @ZhLTE 过->多
    ioschen
        71
    ioschen  
       2019-04-18 09:27:15 +08:00
    反感独裁,喜欢民主
    CoCoMcRee
        72
    CoCoMcRee  
       2019-04-18 09:29:23 +08:00
    看你项目侧重点吧
    SVN 的优势在于开发人员的权限管理.
    Git 的优势在于多人开发同一个项目时的协作以及分支版本管理等.

    如果你只是自己一个人用,连分支都不需要的话,其实 svn 和 git 用起来都差不多, 就上传,拉取这两功能.
    wfd0807
        73
    wfd0807  
       2019-04-18 09:31:02 +08:00
    不管什么东西对比一下都能吵吵起来,这很 V2 !
    mbtfdwlx
        74
    mbtfdwlx  
       2019-04-18 11:29:55 +08:00
    git 图形化工具可以尝试下 souretree
    abcbuzhiming
        75
    abcbuzhiming  
       2019-04-18 12:02:20 +08:00
    @ioschen 别装逼了,GIT 合并代码的时候不是独裁的吗?
    hemingyang
        76
    hemingyang  
       2019-04-18 12:07:06 +08:00 via Android
    就像有人说 eclipse 没有 idea 好用一样
    ioschen
        77
    ioschen  
       2019-04-18 12:15:43 +08:00
    @abcbuzhiming 总统签字的时候不是独裁吗?你爸付款的时候不是独裁吗?
    947211232
        78
    947211232  
       2019-04-18 12:27:51 +08:00
    权限选 svn,团队协作选 git,只有深入开发一下才懂什么是好什么是便捷,我就是 svn 到 git 的。
    momocraft
        79
    momocraft  
       2019-04-18 12:28:42 +08:00
    我觉得能写出这样对比的人对 git 或 svn 的评论的价值都有限
    bannychen
        80
    bannychen  
       2019-04-18 13:47:38 +08:00
    @RyuZheng 您用的是海归 svn 吗,我现在合计用这个来管理论文呢
    int64ago
        81
    int64ago  
       2019-04-18 14:13:23 +08:00
    那你就继续用 svn 好了,都 9102 年了还有人问这个问题
    lshero
        82
    lshero  
       2019-04-18 14:18:34 +08:00
    我在想有啥工具可以同时管理 svn 和 git 的
    毕竟一些编译打包好的东西丢给 git 也没有啥优势
    loveour
        83
    loveour  
       2019-04-18 14:27:03 +08:00
    @MonoLogueChi #45 +1.游戏要用 Git 是真的费劲。
    loryyang
        84
    loryyang  
       2019-04-18 15:27:24 +08:00
    我想说大部分的项目根本触及不到 SVN 的弱点,而 SVN 的易用性完爆 GIT
    GIT 有他的优点,但是大部分人根本用不到或者不会用
    psklf
        85
    psklf  
       2019-04-18 15:50:08 +08:00
    svn 分支先不谈,我用 svn 的时候发现 ignore 做不好,谁知道怎么像 gitignore 一样设置这个项目的忽略文件?
    kevin1852
        86
    kevin1852  
       2019-04-18 16:00:54 +08:00
    svn 分支操作都是对文件操作,开销太大
    git 是对 index 操作,创建分支开销小
    geying
        87
    geying  
       2019-04-18 17:09:13 +08:00
    不都是看场景和工作环境么。。。
    xiangyuecn
        88
    xiangyuecn  
       2019-04-19 12:42:04 +08:00
    @psklf #85 其实 svn 和 git 的忽略基本一致,只不过 svn 存在文件夹属性里,git 存在一个文件里面。目录上看起来 svn 的更简洁些,没有太多垃圾性质的文件,但编辑起来多那么几个步骤; git 好编辑些,打开文件就是一顿改。

    另外像#84 楼说的颇为舒适,各有优缺点吧,就普通使用来讲两个并没有太大区别,可能用到的也就两个,不是拉就是推😅

    github 还是蛮好,支持 svn 来管理,我在 github 很少写.gitignore 文件,用的多的还是文件夹里面设置属性,但不知道是不是 git 里面弱化了文件夹的概念还是怎么着,导致 svn 对空文件夹也不允许提交。

    psklf
        89
    psklf  
       2019-04-19 13:07:09 +08:00
    @xiangyuecn #87 感谢回复,我当时在 mac 系统下似乎没有这个设置选项。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 14:34 · PVG 22:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.