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

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

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

    简介

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

    场景

    例如编写一个 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 16:22: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  
       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   ·   实用小工具   ·   4396 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 05:32 · PVG 13:32 · LAX 21:32 · JFK 00:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.