V2EX 首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
V2EX  ›  分享创造

看着日渐多的 Git,一个 SVN 粉的情怀

  •  
  •   booty · 8 天前 · 6522 次点击

    国内外现在遍地都是 Git 仓库,但是 SVN 做的好的没有一个,虽然很多 Git 仓库也支持 SVN 模式,但是功能是不齐全的。 我喜欢 SVN 的目录权限控制,还有它可以指定提交记录合并代码,当然还有它方便快捷的操作。 作为一个 SVN 死忠粉,这是不能忍的!!! 于是我自己做了一个 svnbucket.com 自认为是市面上最好的、功能最齐全的吧。

    第 1 条附言  ·  2 天前
    还有个 SVN 用的特别爽的,就是可以单独 checkout 子目录,项目里策划、美术,测试,服务端,客户端,只需要 checkout 他们需要的目录就行了,爽的很,而 Git 需要整个仓库都 clone 下来,如果有很多美术等大文件的话,那是很痛苦的。
    135 回复  |  直到 2018-02-21 08:40:52 +08:00
    1  2  
        101
    wm5d8b   6 天前
    为什么没有同时支持 git 和 svn 的私服?这样不就可以满足大家的喜好了?
        102
    booty   6 天前
    @wm5d8b #101 很多 Git 仓库都支持 svn 模式呀,但不是完整的 svn,有些功能做不了
        103
    jameslan   6 天前 via Android
    svn 方便快捷的操作?你跟我一定生活在不同的宇宙中
        104
    towser   6 天前
    @booty 何不留微信交流交流
        105
    booty   6 天前
    @towser #104 来个企鹅群吧:699148921
        106
    booty   6 天前
    @jameslan #103 同样的操作,我们来比下速度?
        107
    wm5d8b   6 天前
    @booty #102 GitLab、GitBucket、Gogs 都不是原生支持 svn,要装插件转换,非常麻烦
        108
    jameslan   6 天前 via Android
    @booty 随便啊,svn 的慢是原理性的,根源都是追求 global atomic。所以任何一个 checkin 都要锁根目录;没办法实现真 branch,只能用目录模拟;等等。
    svn 用户当然也活的好好的,就是少 checkin,少开 branch 呗。
    两个 checkin 之间的代码管理?缺了也死不了人的。
        109
    booty   5 天前
    @jameslan 认为 SVN 慢,感觉你是没有好好学习过怎么用。
        110
    youngxhui   5 天前 via Android
    虽然不会用 SVN 只会 git,但是还是要支持楼主
        111
    booty   5 天前
    @youngxhui #110 感谢支持,SVN 很简单,可以试下。祝新年快乐
        112
    jameslan   5 天前 via Android
    @booty 说来说去也没有干货。svn 搁 18 年前是先进的,解决了 cvs 只有文件版本,没有 repo 版本的问题。现在么,只合适做特定用途。

    滚滚的技术潮流,不以谁的意志为转移。
        113
    booty   5 天前
    @jameslan #112 SVN 当前在工作中用的还是很爽的
        114
    ITOutsider   5 天前 via iPhone
    自己水平差,怪工具,哈哈哈
        115
    youngxhui   5 天前
    有个错别字,希望改正一下,是 登录 不是 登陆
    ![]( http://7xt81u.com1.z0.glb.clouddn.com/Snipaste_2018-02-16_13-37-29.png)
        116
    booty   4 天前
    @youngxhui #115 好的,多谢提醒
        117
    natforum   4 天前 via Android
    我四年前用的头像😂
        118
    msg7086   4 天前   ♥ 1
    #106 #108 #109 @booty @jameslan
    随便说个场景好了,一个 2G 的 repo,现在需要同时开发 10 个 feature,修正 20 个 bug。bug 必须进仓库跑两次 CI,合并前一次,模拟合并后一次,然后合并更改; feature 需要等所有 bug 被合并以后再跑 CI,合并前一次,模拟合并后一次,然后 merge ;所有的 feature 必须先 rebase 再 merge 以保证可以单个 feature 可以被单独 revert ;所有的 feature 必须每天至少提交一次,但是合并前需要按照合理结构拆分重整 commits。所有的 feature 和 bug 都要同时进行开发。

    我就不说速度快慢了,你能顺利完成这些要求而不把仓库搞崩我就算 Git 输……(/滑稽
        119
    junbaor   3 天前
    不错,希望能支持 GitHub 账号登录。
        120
    booty   3 天前
    @natforum #117 哈哈,喜欢这个笑脸旺,狗年祝大家旺旺旺...
        121
    booty   3 天前
    @msg7086 #118 显然你还没用会 SVN,你说的这些都可以轻松完成,而且没有那么复杂。我曾经参与 60~70 人的游戏开发团队,我们的仓库远不止 2G,我们的 feature 也经常超过 10 个,BUG 那就更不用说了。我说下我们的开发方式,我们是两周更新一个版本出去外网,全体人员都是在 trunk 上开发的,每次更新版本都是从 trunk 开一个分支出来,比如 online1.0,online1.1。如果线上版本出了问题,直接在分支上进行修复、测试、发布代码到外网进行修复,最后选中相关的提交记录合并到 trunk,这样 trunk 上也修复这个问题了。你说的新特性开发我们都是在 trunk 上开发的,如果不是下个版本放出的新特性可以自己开个分支做。我们这种开发方式非常简单方便,也没有遇到任何问题。
        122
    booty   3 天前
    @junbaor #119 感谢建议,我抽空集成下
        123
    shmilypeter   3 天前
    svn 感觉在分支方面不如 git,还有一个最重要的就是 git 是分布式的
        124
    booty   3 天前
    @shmilypeter #123 嗯,这个不可否认,分支方面 Git 是设计的比 SVN 好的
        125
    msg7086   3 天前
    @booty 在 trunk 上开发,那就让我说中了嘛。
    连最基本的每个 feature 必须开分支都做不到。
    连最基本的每个 feature 必须先运行 CI 再合并入主库都做不到。(你们怕不是连 CI 都没有?)
    全 trunk 上开发,还什么我还没用会 SVN,我们™十年前在公司里开发就用这个流程了。
    现在都 8012 年了,要是我哪个上司让我用十年前的流程做全 trunk 开发,我非打死他不可。
    还我说的这些都轻松完成,你不要闹了。
    看清楚,我上面说的是平均每周 10-20 个分支,至少 20-30 次历史重写和合并,不是你说的那个两周才开那么两三个还什么都不干的。

    我司在我刚入公司的时候,用 Git 做着全 trunk 开发,就像你说的这样所有开发都在 master 上做,稳定版打 release-3.0 release 3.1 分支,出 bug 了直接在分支上改完,复制粘贴提交到 master。我看到仓库日志的时候我真的是强忍着没把他们骂得狗血淋头。
        126
    booty   3 天前 via iPhone
    @msg7086 你这有点上赶鸭子上架,让 SVN 按照 git 开发方式来做。不同工具有不同优缺点,要使用他们合适的方式才能真正发挥他们的作用。SVN 是不建议使劲开大量分支的,我们用最简单的方式就可以松松应付你说的需求,你说的开发方式适合 git 不适合 SVN。另外 SVN 的合并不要停留在复制黏贴上,这样用 SVN 怎么可能顺畅。
        127
    msg7086   3 天前
    @booty 这不叫最简单的方式。
    代码合并进公共分支不提前做自动化测试,这说出来又不是什么光荣的事情。
    如果你们没自动化测试,没 feature 隔离,还这么理直气壮,那我就不再多废话了。

    还有什么叫停留在复制粘贴上?你以为我说的是文件的复制粘贴?不要闹好吗,复制粘贴的是提交更改,你知道 SVN 里的 Cherry-pick 吗?那你知道 Git 里也有 Cherry-pick 吗。
        128
    booty   2 天前
    @msg7086 #127 没啥好争的,各有各的喜好,用好了都很好。
        129
    huntzhan   2 天前
    > 看着日渐多的 Git,一个 SVN 粉的情怀

    十年前用「日渐多的」来形容 Git 是合适的,然而现在 Git 已经是主流了。SVN 估计再过不久就会彻底死了。

    https://imgur.com/a/06vsL

    https://imgur.com/a/oCyoU
        130
    huntzhan   2 天前
    Google Trend 显示,目前 Git 的关注度超过 SVN 关注度十倍,而且还在不断上升中。目前 SVN 主要受关注的地区是中国,我猜这个锅是墙的



    https://imgur.com/5Dw32Mc.jpg
        131
    huntzhan   2 天前
    再插一句,之前我在腾讯的时候,部门比较重视安全性也是用 SVN。我十分理解他们的做法,然后跳槽了。
        132
    booty   2 天前 via iPhone
    @huntzhan 虽然 Git 很灵活强大,但 SVN 依旧可以很好的应付开发需求,权限控制是公司特别看中的,所以 SVN 还是有很多公司在用的。
        133
    huntzhan   2 天前
    @booty 你说的「很多公司」与「特别看中」我不太同意。大多数公司( Microsoft, Google, Facebook, Apple, etc.)的 FTE 可以看到公司里所有的代码。我不否认有公司喜欢用防贼的心态做版本控制(华为、腾讯某些部门),但这毕竟不是主流。
        134
    booty   2 天前 via iPhone
    @huntzhan 你说的全部是国外的巨头企业,国内的你了解下
        135
    jameslan   4 小时 59 分钟前 via Android
    @booty

    那种基于文件访问的权限控制,太简单太局限了。在 precommit hook 前面不太够看。

    lightweight branch 让开发的并行性更好。因为开发中的 branch 不会影响其他人,而又可以随时采用 trunk 中的最新改动(通过 branch 间的 merge )。这样最小化 merge 回 trunk 的工作量。而 svn 的 branch 太 heavy,做短期 branch 太痛苦。不论何种 vcs,长期的,不频繁 merge 的 branch 都应尽量避免。

    业界潮流从 svn 到 git 的转变,实际上是开发理念和实践的演进。虽然会有一定程度的追求新鲜事物,开发者总体看是理性的,潮流的转变有其内在原因。

    源码在公司内部的开放程度,和企业文化密切相关,是否鼓励合作,创新。所谓见贤思齐,封闭的,敝帚自珍式的环境应当被嫌弃,被改变,而不是作为抱残守缺的挡箭牌。
    1  2  
    DigitalOcean
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   1321 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.0 · 77ms · UTC 05:40 · PVG 13:40 · LAX 21:40 · JFK 00:40
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1