[开源] 简单粗暴的版本管理 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liuzhiyong
V2EX    分享创造

[开源] 简单粗暴的版本管理

  •  
  •   liuzhiyong 2020-12-1 12:23:48 +08:00 8163 次点击
    这是一个创建于 1760 天前的主题,其中的信息可能已经有所发展或是发生改变。

    简介

    使用压缩包的文件名,进行简单的版本管理。

    场景

    例如编写一个 Word 文档,要版本管理。这时候使用 Git/SVN 显得“大炮打蚊子”。

    特点

    • 非常简单粗暴,就是利用 WinRAR (知道有 7 Zip,但是 RAR 真是“久经考验”呀)。
    • 各个版本在 Windows 的文件管理里面一目了然,即使没有这个工具(版本信息都在文件名里面嘛)。
    • 完全绿色软件。
    • 完全没有联网的功能(甚至没有检查新版本更新)。

    链接

    有待改进

    • PDF 文档目前在某些设备上不清楚。
    • 搜索压缩包(关键词过滤)目前区分大小写英文字母。
    • 压缩包列表的滚动条,快速点击两下,目前会触发双击解压(暂时可以拖动滚动条)。
    第 1 条附言    2020-12-19 21:24:23 +08:00
    Office 文档 / 电路图的设计稿 / Photoshop 文件 / 等等 用这个,简单粗暴,方便可靠。

    (请务必看到,很多人用电脑处理文件,大部分不是专业程序员)
    第 2 条附言    2020-12-19 22:17:59 +08:00
    我见过非常厉害的程序员,比我厉害多了,远超行业平均水平,也用压缩包做版本管理。

    真的是就是搞“keep it simple, stupid”

    https://en.wikipedia.org/wiki/KISS_principle

    https://zh.wikipedia.org/wiki/KISS%E5%8E%9F%E5%88%99
    第 3 条附言    2020-12-20 10:25:50 +08:00
    我不在互联网行业。所在行业喜欢老技术,说好听是“久经考验”,说难听是“老土傻冒”。
    53 条回复    2023-02-10 12:03:50 +08:00
    robot1
        1
    robot1  
       2020-12-19 14:12:44 +08:00
    git 本地版本管理 还啥炮
    MakeItGreat
        2
    MakeItGreat  
       2020-12-19 14:15:59 +08:00 via Android
    当时想实现一个类似
    恭喜楼主
    eason1874
        3
    eason1874  
       2020-12-19 14:46:28 +08:00   4
    没看懂这跟手动输入压缩包文件名有什么区别。
    liuzhiyong
        4
    liuzhiyong  
    OP
       2020-12-19 15:26:44 +08:00 via Android
    @robot1 这个工具超级简单,Git 太复杂,“太重”。
    liuzhiyong
        5
    liuzhiyong  
    OP
       2020-12-19 15:28:13 +08:00 via Android
    @MakeItGreat 哈哈,欢迎修改开源代码,做成自己想要的样子。
    liuzhiyong
        6
    liuzhiyong  
    OP
       2020-12-19 15:31:56 +08:00 via Android
    @eason1874 不用重复输入用户名;自动加上日期时间;说明文字可以很长,把窗口拉长即可;压缩包的列表快速关键词过滤;压缩包的表格快速打开内容,双击即可。
    kingfun
        7
    kingfun  
       2020-12-19 15:37:24 +08:00   1
    git 的分布式版本管理才是神器,而且 git 一点也不重,简单的版本管理就是 pull 和 push,连 merge 都用不上,这你跟我说复杂?那干脆别用电脑了。
    cbangchen
        8
    cbangchen  
       2020-12-19 15:47:07 +08:00 via iPhone
    认真看了一遍,认为这东西完全没有用。不过开心就好,不需要有用。
    lxmfly123
        9
    lxmfly123  
       2020-12-19 15:53:34 +08:00   1
    换个叫法,叫 archive,是不是比版本控制好多了?
    loading
        10
    loading  
       2020-12-19 16:12:00 +08:00 via Android
    我就写了一个压缩文件夹的 bat,拖过去就会生成一个“备份”文件夹,然后压缩,文件名带当前时间。
    liuzhiyong
        11
    liuzhiyong  
    OP
       2020-12-19 16:17:21 +08:00 via Android
    @kingfun 大哥,真的有很多电脑用户连 Git 是啥都不知道。更别说它的术语了。
    liuzhiyong
        12
    liuzhiyong  
    OP
       2020-12-19 1622:02 +08:00 via Android
    @cbangchen 对于熟练 Git/SVN 的人,用处确实有限。重复说一遍,很多处理文件的人根本没听过 Git 。
    liuzhiyong
        13
    liuzhiyong  
    OP
       2020-12-19 16:24:45 +08:00 via Android
    @lxmfly123 archive 太宽泛了,这个工具就是“版本信息在(压缩包的)文件名里面”。
    liuzhiyong
        14
    liuzhiyong  
    OP
       2020-12-19 16:27:16 +08:00 via Android
    @loading 还是有点区别的,这个有用户名和说明文字,有快速筛查解压的表格。
    loading
        15
    loading  
       2020-12-19 16:38:58 +08:00 via Android
    @liuzhiyong 加注解什么的也能写到批处理,我只是说一个一行代码的方法而已。
    lxmfly123
        16
    lxmfly123  
       2020-12-19 16:44:26 +08:00
    @liuzhiyong 你说的“版本信息在(压缩包的)文件名里面”,不就是 archive 的意思吗?
    https://baike.baidu.com/item/%E5%BD%92%E6%A1%A3/11012855
    liuzhiyong
        17
    liuzhiyong  
    OP
       2020-12-19 16:48:54 +08:00 via Android
    @loading 了解,创建压缩包确实“一行代码”可以搞定。有个图形界面更香嘛。
    Jirajine
        18
    Jirajine  
       2020-12-19 16:50:12 +08:00 via Android
    git 虽然功能强大,但设计有一定问题,学习成本高尤其是非 CS 领域人士。
    不过可以换 mercurial 这样的简单版本管理工具,再配个 GUI,大部分人用起来都差不多了。
    liuzhiyong
        19
    liuzhiyong  
    OP
       2020-12-19 16:52:44 +08:00 via Android
    @lxmfly123 知道的,archive 符合此处情境,vfilename 的说法直接了当呀。
    liuzhiyong
        20
    liuzhiyong  
    OP
       2020-12-19 16:57:40 +08:00 via Android
    @Jirajine 收到,这个工具就是“简单粗暴,方便可靠”。功能性比 Git 差远了,我知道的。
    SingeeKing
        21
    SingeeKing  
    PRO
       2020-12-19 19:12:40 +08:00
    如果简单的版本管理需求,大部分用户还是希望的是完全无感,因为他们的需求仅仅是在出现意外时能恢复到某一特定版本,如果每次需要他们自行进行「版本创建」并填写这次修改了什么对他们而言过于麻烦了。因此目前的 Mac 软件思路都是利用系统 Time Machine 功能在保存(甚至是自动保存)时直接创建好版本,对于大多数云服务(例如 Dropbox 等网盘、Google Drive 等在线文档工具)也都是保存(或自动保存)时创建版本。

    而对于复杂的需求,就真的不仅仅是一个「恢复」。例如 git 用法有各种分支管理、diff 等等,这种单纯的归档工具意义并不大。
    liuzhiyong
        22
    liuzhiyong  
    OP
       2020-12-19 19:29:06 +08:00
    @SingeeKing

    “他们的需求仅仅是在出现意外时能恢复到某一特定版本,如果每次需要他们自行进行「版本创建」并填写这次修改了什么对他们而言过于麻烦了”

    如果不填写说明,可能很难“恢复到某一特定版本”(描述就只有日期时间了,“特定版本”是哪个?)

    “而对于复杂的需求,就真的不仅仅是一个「恢复」。例如 git 用法有各种分支管理、diff 等等,这种单纯的归档工具意义并不大。”

    并非只有代码才有版本管理,例如电路图的设计稿,git 的 diff 等等特性就没用的。

    “对于大多数云服务(例如 Dropbox 等网盘、Google Drive 等在线文档工具)也都是保存(或自动保存)时创建版本。”

    事实上,很多项目的开发环境,是彻底断网的。“完全没有联网的功能”是一个卖点。
    suzic
        23
    suzic  
       2020-12-19 19:52:44 +08:00 via Android
    我觉得很有用(对于非程序员来说)
    renmu123
        24
    renmu123  
       2020-12-19 20:16:48 +08:00 via Android
    git 不适合管理 word,目前 word 版本管理还是要看 office365 + onedrive 。虽然也不咋滴,但起码是有了
    MakeItGreat
        25
    MakeItGreat  
       2020-12-19 20:29:37 +08:00 via Android
    替楼主回复:绝大部分人需要的是一个
    靠自动重命名:版本 1 版本 2 版本 3 进行的版本控制软件
    Git onedrive 都太复杂了,不用
    考虑一下绝大部分人的计算机水平!!!!!!
    MakeItGreat
        26
    MakeItGreat  
       2020-12-19 20:31:39 +08:00 via Android
    牛逼和专业要么付费,要么学习
    考虑的是普通用户
    引用 V 站两年前一句话:说拼多多不行的,都是没有眼光的
    这才是拼多多版版本控制,
    liuzhiyong
        27
    liuzhiyong  
    OP
       2020-12-19 21:25:08 +08:00
    @suzic 多谢支持 :-)
    liuzhiyong
        28
    liuzhiyong  
    OP
       2020-12-19 21:31:38 +08:00
    @renmu123 收到,云服务有优势,离线工具也有好处,那就是用户绝对掌控自己的内容,不依赖任何外在条件。
    liuzhiyong
        29
    liuzhiyong  
    OP
       2020-12-19 21:32:26 +08:00
    @MakeItGreat 多谢支持 :-)
    JackalZhao
        30
    JackalZhao  
       2020-12-19 23:09:41 +08:00
    理解你想做的。许多人做程序员时间长了,就丧失从普通人视角思考的能力了。
    yan5990853
        31
    yan5990853  
       2020-12-19 23:37:08 +08:00
    对普通用户还是有用的。
    有个不成熟的建议,弄个 git 超精简的图形界面,支持自动半自动备份更佳。
    这样小白用户也好上手,依托 git 后期想做大做强也好弄。
    favourstreet
        32
    favourstreet  
       2020-12-20 01:29:18 +08:00 via Android
    还是不够 simple 。就像楼上说的,用户只是想要一个无限 ctrl-z 而已。要挪到一个新版本时,我觉得还不如把旧的复制一份然后立刻送进回收站,想回到以前的版本就去回收站里翻出来。(回收站支持重名的被删文件和修改 /删除日期排序)
    MakeItGreat
        33
    MakeItGreat  
       2020-12-20 02:25:02 +08:00 via Android
    熬夜搞定了一个 powershell 脚本:
    启动脚本时,将该文件夹所有文件复制到一个用时间命名的文件夹,
    随后监控该文件夹,所有变化的文件,均移到一个新的用时间命名的文件夹
    不是科班,工作完全不相关,看不懂 c#,这样我已经很满意了
    以后准备加一个开机时,删除这些时间命名文件夹的重复文件,移除空文件夹
    大佬勿喷
    MakeItGreat
        34
    MakeItGreat  
       2020-12-20 02:27:07 +08:00 via Android
    @MakeItGreat 代码实在太傻逼了,就不让大家看了
    跟大家相比,我是在捏泥巴
    liufuseng
        35
    liufuseng  
       2020-12-20 07:43:52 +08:00 via Android
    @MakeItGreat 参考 31 楼的建议,我觉得挺好
    事实上确实很多开发环境是完全断网的,需要离线工具。倒是有内部 SVN,对于 Word 等等还是不够有好
    jinliming2
        36
    jinliming2  
       2020-12-20 08:17:27 +08:00 via iPhone   1
    emmmm,rar 是专利格式,只有被授权的软件才能创建 rar 压缩文件。
    本来还想说楼主怎么创建 rar 的,进 GitHub README 竟然没看到项目描述,要点到链接的第三方网站链接里才看到(手机上 App 跳来跳去的)
    然后才发现,得先装 WinRAR……
    而这个软件个人免费版的广告……团体还得用收费版……emmmm,还是不如 7z 香……
    liuzhiyong
        37
    liuzhiyong  
    OP
       2020-12-20 09:40:09 +08:00
    @JackalZhao 多谢支持 :-)
    liuzhiyong
        38
    liuzhiyong  
    OP
       2020-12-20 09:51:00 +08:00
    @yan5990853 多谢支持 :-) 这个小工具还是保持“傻瓜化”吧。“自动半自动备份”不好搞,那样描述只有日期时间,恢复老版本的时候,用户不知道是哪个归档文件。
    liuzhiyong
        39
    liuzhiyong  
    OP
       2020-12-20 09:53:35 +08:00
    @favourstreet 回收站确实有这个功能。但是用户备份的时候就蒙了,回收站不能“导出”。(压缩包就拷贝即可)
    liuzhiyong
        40
    liuzhiyong  
    OP
       2020-12-20 10:01:18 +08:00
    @MakeItGreat 哇,全自动,很好呀。各有所长啦,我就不懂 powershell,写 C#程序也基本全靠 Google 。
    liuzhiyong
        41
    liuzhiyong  
    OP
       2020-12-20 10:14:54 +08:00
    @liufuseng 收到,我想想……
    liuzhiyong
        42
    liuzhiyong  
    OP
       2020-12-20 10:19:56 +08:00
    @jinliming2 知道 7 Zip 牛啦,唉,我在的行业比较保守,不喜欢新技术,RAR 久经考验。
    MakeItGreat
        43
    MakeItGreat  
       2020-12-20 10:47:19 +08:00 via Android
    @liufuseng 我已经有一个基于 git 和 powershell 监控文件夹变化自动提交的了
    有的东西真的只需要版本 1,版本 2
    哈哈
    asanelder
        44
    asanelder  
       2020-12-20 14:58:36 +08:00   1
    俺选择支持楼主。

    另外,大家不要觉得这东西不满足“你的需求”,就是无用的。

    也不要想当然的认为“git”能满足所有人的需求(你教父母学习 git?)。

    楼主有热情来做这件事,本来就是一件很好的事情嘛。

    楼主就是做了这么一个东西,大家看看有没有用,对你没用,你就不用呗,对你有用,就感谢一下呗。

    又不收费,又不推广微信号。

    楼上的不要有优越感一样的,觉得楼主做的工具 low,土,无用。

    这种思想难道是内卷习惯了,互相鄙视习惯了么?

    俺鼓励楼主这种

    “发现自己有需求,并自己开发给出方案,然后分享给大家的精神”

    这不就是分享的含义嘛?
    cszchen
        45
    cszchen  
       2020-12-20 17:29:16 +08:00
    git 比较适合开发人员
    其他人其实更适合简单粗暴的,最好就是云文档,改一次有个记录那样的
    liuzhiyong
        46
    liuzhiyong  
    OP
       2020-12-20 18:13:00 +08:00
    @asanelder 多谢支持 :-)
    liuzhiyong
        47
    liuzhiyong  
    OP
       2020-12-20 18:18:36 +08:00
    @cszchen “改一次有个记录”在本地很容易实现的,就是监控文件的修改时间。它有一个巨大的麻烦:用户需要恢复到某一版本,查看记录,全是日期时间,没说明文字,蒙了。diff 代码容易,要 diff 二进制文件( Word 文档 / Excel 表格 / 电路图 / PS 文件 / 等等)难呀。
    acmore
        48
    acmore  
       2020-12-21 17:22:39 +08:00   1
    工具本身没有问题,对非专业人员来说 KISS 也没有问题。
    不过 “我见过非常厉害的程序员,比我厉害多了,远超行业平均水平,也用压缩包做版本管理。” 这句话没有内禀逻辑,并不能体现 Git 的不必要性和压缩包管理的必要性,反而还有一丝黑的意味在里边。
    liuzhiyong
        49
    liuzhiyong  
    OP
       2020-12-21 19:57:42 +08:00
    @acmore

    “工具本身没有问题”

    多谢理解 :-)

    “并不能体现 Git 的不必要性和压缩包管理的必要性,反而还有一丝黑的意味在里边”

    没有黑,只能说隔行如隔山,有的行业很保守的。
    lneoi
        50
    lneoi  
       2020-12-22 15:11:19 +08:00
    主要还是操作太麻烦了,应该可以设置一个项目,然后监控目录,自动或者手动做压缩备份、自动改名、增加相关注释信息,备份信息不干扰正常目录,一次设置就能自动完成。
    liuzhiyong
        51
    liuzhiyong  
    OP
       2020-12-22 19:52:55 +08:00
    @lneoi “增加相关注释信息”,这个没法自动呀,很多文件格式不是开源的。
    y_ding
        52
    y_ding  
       2020-12-23 07:45:00 +08:00 via iPhone   1
    开心就好。另外,从未觉得 Git“太重”,local 的版本管理能让你随心所欲,一切可皆 Git
    H97794
        53
    H97794  
       2023-02-10 12:03:50 +08:00
    synology drive 32 个版本控制
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2978 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 13:42 PVG 21:42 LAX 06:42 JFK 09:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86