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

再次安利开源作品 V File Name,新增一个好用的理由

  •  
  •   liuzhiyong · 77 天前 · 3588 次点击
    这是一个创建于 77 天前的主题,其中的信息可能已经有所发展或是发生改变。

    新增一个好用的理由

    历史版本可以丢到移动硬盘(或者其他什么便宜的储存),不占用电脑储存。

    详细解说

    • 我有个习惯,稍微改动一下文件,就要保存为历史版本。相信很多人有这个习惯,之后万一搞砸了,随时回滚。
    • 对于很多二进制文件(不是纯文本的代码),“binary diff”不灵光,于是占用越来越多的电脑储存空间。
    • 使用 V File Name,就可以把历史版本丢到任何地方。

    参考

    https://stackoverflow.com/questions/2983635/can-git-mercurial-svn-or-other-version-control-tools-work-well-when-project-t

    There exist binary diff tools, however they don't help much, since the change in one pixel of an image, or a change of one character in a Word document, does not correspond to change of one byte in the file, due to compression. Thus "nice" handling of such binary data is impossible.

    DeepL 翻译:有一些二进制差异工具,但是它们并没有什么帮助,因为图像中一个像素的变化,或者 Word 文档中一个字符的变化,由于压缩,并不对应于文件中一个字节的变化。因此,对这种二进制数据的 "漂亮 "处理是不可能的。

    链接

    额外说明

    • 这个工具过了 VirusTotal 扫描(刚才的结果是“3/69”,大厂杀毒都说没问题),但是某国产防病毒软件可能会误报。
    • 这个工程代码就放在 GitHub,我当然知道 Git 很牛啦。
    • 某些场合,简单粗暴更好使:很多人用电脑处理文件,需要版本管理,不是只有程序员的,不是只有源代码的。
    第 1 条附言  ·  77 天前

    就是解决这个问题:

    就是解决这个问题

    第 2 条附言  ·  76 天前
    这是第一次推广的帖子:
    https://www.v2ex.com/t/737016

    各种意见(正面反面的都有),我觉得很好。

    就是没人说“看不懂”,因为本来就很简单嘛。

    现在的讨论:

    “学生”、“课堂作业”、“非常稚嫩”、“简陋”、“有什么脸求 Star”、

    “很难说清楚具体用法”、“没看懂这东西怎么用”、“意义不明”、“没说清”、“也没学会”、“完全没懂"、“确实不知道”

    我就说一句话:V2EX 变了,不是原来的 V2EX 了。

    PS

    第一次推广的帖子,那个文档是真的烂(我承认),随便用 Word ( DOCX )倒腾的。没有人抱怨这个。
    33 条回复    2021-07-14 13:42:29 +08:00
    ahhui
        1
    ahhui   77 天前   ❤️ 8
    楼主是学生吗?怎么看这个作品都像是一个课堂作业的产物,并不是一个完整的产品。而且整个功能十分粗糙,文字描述也很难说清楚具体用法,在很多方面都显得非常稚嫩。

    首先感谢楼主的分享精神,但同时也希望楼主能花时间把它做成真正的产品(项目已经有 7 个月之久了,起码要琢磨着把它写得更好吧?),而不是一个课堂作业的样子。下面给产品列出一些建议:

    1. 界面主窗口启动后默认隐藏,显示如迅雷一样的浮窗小窗口;
    2. 通过在资源管理器内拖曳,可以将目录拉到悬浮小窗口上释放,呼出主界面;
    3. 主界面应有项目新建、修改、配置等相关功能;
    4. 添加的项目应该可以一键创建备份,或者调出备份回滚;
    5. 项目备份不依赖用户操作呼出 7zip 等程序,可自动实现打包和分发(调用命令行 7zip 和 rar 等);
    6. 可设定定时完成项目备份,和 /或在满足某个条件的情况下自动备份(如关闭 Photoshop 后等)
    7. 项目文件存储位置可以指定多个备选位置,存储和移动可以在备选位置来回选择,当备选位置脱机的时候,可以提示用户插入对应设备(如移动设备)
    8. 支持云盘存储;
    9. 真正实现单个文件的分别处理,避免每个打包都是对整个目录的压缩,浪费时间和空间;
    10. 在第 9 点的基础上,实现 tag 聚合所有文件备份(如 a 文件有 1\2\3 个更改,b 文件有 1 个更改,tag 包含 a3 和 b1,根据 tag 恢复的时候,a 取第三次更改文件,b 取第一次)这个需求有点类似 git 了。可考虑使用配置方案,让用户选择是否分文件打包。

    以上建议仅供参考,不一定是楼主的需求和目标。只是想说,楼主目前这个作品,还不能称得上是一个作品。
    liuzhiyong
        2
    liuzhiyong   77 天前 via Android
    @ahhui 照你的建议做下去,还不如用 Git 。这个工具的特点是“简单可靠”。看得出来你是个喜欢把事情搞复杂的人,你是公务员吗?
    liuzhiyong
        3
    liuzhiyong   77 天前
    我说错话了,例如有的医生多开药冲业绩,例如有的出租车司机绕路多收钱,例如有的商业合同多搞条款搞晕你……总之我说错话了,我道歉。
    dreampet
        4
    dreampet   77 天前   ❤️ 11
    @liuzhiyong 1 楼的建议有很多可取之处,你的软件离所谓的“简单可靠”还很远,只能说简陋,但你的反应是不是太激烈了?听不得反对意见?
    github 上的提交说明也是毫无意义的日期,而不是具体的修改点,有什么脸求 Star ?
    falcon05
        5
    falcon05   77 天前 via iPhone
    一楼说得很有道理啊,就是个课堂作业的感觉
    GeruzoniAnsasu
        6
    GeruzoniAnsasu   77 天前   ❤️ 8
    翻了一下历史发帖差点直接 B 了……

    说实话恕我愚钝我根本没看懂这东西怎么用,“官网”放了些意义不明的截图但就是没说清前因后果……

    是常驻后台后会监听 [添加到压缩包] 的命令自动弹出窗口来覆盖原有的参数?
    点了确认生成是自动往原对话框填参数然后模拟点击确定?


    作为产品没写清 feature list 和使用指引,作为开源项目没写清 build/contribute 步骤,提交信息也没有信息,这……?



    还有其它的

    > “binary diff”不灵光,于是占用越来越多的电脑储存空间
    是什么逻辑?是说存全量版本要占空间?不是,那你做的东西不也还是存全量吗

    > 使用 V File Name,就可以把历史版本丢到任何地方。
    这“丢到任何地方”是指什么……是说会完整打包整个文件夹?我挪走了你这东西还能看到历史版本吗?能通过它回滚到某个历史吗?……这些完全都没有介绍啊

    - 看起来好像每次打包都要重填各项信息?那我为啥不直接用原始的方法,反正全都要填一遍
    - 怎么区分我现在创建压缩包是想创建历史还是就普通地打一个包?
    - 不用 zip 的原因是“修改起来过于方便”? 这是啥理由?有谁会去改备份文件里的内容吗?真要改,换个格式存就拦不住了?而且我真要改的话拦着我改干啥
    - 你理解你贴的 stackoverflow 问题讨论的是啥吗?说的是虽然版本管理工具能 diff 二进制但其中的差别并不体现在文档结构上所以并不能很好还原出差别。提问的人想问这些东西能不能处理只改一小部分的情况不要全量,回答说不行,然后你做了个全量是想说解决了问题?


    我感觉自己应该回过某个历史发帖但看完发现都没有,有点怪。可能之前我最后都忍住了?





    我不是说历史版本压缩包这种东西没用,相反确实有很多场景需要这样的版本工具,我电脑上测试自己公司产品都累积了 10+个同一产品不同版本的安装包目录,按日期和版本号命名的,但都是手打。
    做这种工具,核心 feature 应该是你很好地处理了各版本压缩包的命名、存放、索引、自动打包 /还原,并且能优秀地与其它东西集成比如网盘、快捷工具( utools/alfred )、编辑环境如 vscode 的插件之类的
    …… 用什么压缩工具真的重要吗你觉得?而且你本来完全可以链接一个 libzip 之类的自动打压缩包就 ok 了,为啥要调另行安装的工具呢,万一 rar 和 7zip 都没装咋办
    GeruzoniAnsasu
        7
    GeruzoniAnsasu   77 天前   ❤️ 1
    哦,我还想补一句

    > 电路图的行业领先的工具,Altium Designer,也搞压缩包保存历史版本

    > 也许你没有听说过 AD(Altium Designer),嗯,这么说吧,很牛

    /t/740128


    做一个新东西就是因为旧的不好才做的,你也是觉得 git/svn 某些方面不好才做的这个东西,那何必要找一个“很牛的东西” 来背书?如果需要用这种想法给自己打气,那“git 就是用存二进制 diff 的方式来管理版本的,git 很牛”你咋反驳?

    要么你分析清楚它们做法的场景和优越性,拿这样的理念来推广,不然听起来跟“通过创建系统还原点来保存历史版本”并没有什么区别
    liuzhiyong
        8
    liuzhiyong   77 天前 via Android
    有个老飞行员,有一天看见别人骑单车,他就问,“你为啥不用飞机呀?”

    好吧,你牛。

    这个工具就是“简单可靠”:如果你发现它没有完成任务,如果你发现它哪里出错了,欢迎反馈。

    我印象中,这个工具大约五百行代码,实在没有必要走项目的全套流程。

    至于“学生”、“课堂作业”之类说辞,现在内卷这么厉害,你们真是抬举这个项目的难度了。

    PS

    我扫了一眼,好多问号,好多反问句。好口才。
    Ultraman
        9
    Ultraman   77 天前 via Android
    我的理解这个小工具就是我把某个时刻的文件 /文件夹打成压缩包的时候可以往最终的压缩包的名字上加一个用户 备注和时间?上面老哥说的关于历史版本到处扔
    Ultraman
        10
    Ultraman   77 天前 via Android
    @Ultraman 到处扔的疑问我也有,这个具体逻辑是怎样的真的有必要说清楚,不然你既没说清楚这个功能怎么用又没说清楚工作逻辑,那我用的时候因为我的理解和你软件的实现中间有出入导致我的文件丢了的话,我是怪你软件还是怪我自己?何况我就是怪了又有卵用又不能把我的文件找回来
    suzic
        12
    suzic   77 天前 via Android
    @suzic 这张图楼主拿去用
    liuzhiyong
        13
    liuzhiyong   77 天前
    @suzic 收到,多谢!
    liuzhiyong
        14
    liuzhiyong   77 天前
    @Ultraman “那我用的时候因为我的理解和你软件的实现中间有出入导致我的文件丢了的话”

    这个软件没有删除功能,你就是想要用它把文件弄丢,都不可能。

    “到处扔的疑问我也有,这个具体逻辑是怎样的真的有必要说清楚”

    四个字,手动操作(移动文件)。它没有任何删除功能,“移动”也算一种删除(来源的文件要消失)。
    xgfan
        15
    xgfan   77 天前
    我仔细看了一遍,也没学会这个怎么用。
    建议录个 gif 。
    abersheeran
        16
    abersheeran   77 天前   ❤️ 1
    怎么说呢,如果是主要为了自用、不想写操作文档大可以不写的……你这个操作文档我看完感觉完全没懂这个东西的作用。

    我之前也分享过自用的脚本,我直接说清楚了自用所以没什么过于详细的文档。也没人说我什么哪里哪里不能这么搞。

    开源软件不是你这个写法。要么你就当他是个彻头彻尾的自用软件,要么你就认真学习其他开源项目一样写明白作用与目的、实现原理、构建方式和使用方式。这种两不像,真的不怪楼上说你。
    muzuiget
        17
    muzuiget   76 天前
    一眼看确实不知道是什么东西,仔细看了下以及评论,原来就是个调用用压缩软件打包工具而已。

    > 对于很多二进制文件(不是纯文本的代码),“binary diff”不灵光,于是占用越来越多的电脑储存空间。

    你这个软件也根本没有解决这个问题,全量备份,还是花时间压缩,甚至不如直接用 git 呢,再说 git 还有 git-lfs 这种方案专门处理二进制大文件。
    minamike
        18
    minamike   76 天前 via iPhone
    所以这就是个能给压缩包名称自动打时间戳的工具?🤔
    criver
        19
    criver   76 天前
    这实在不是一个想把工具做好的态度
    liuzhiyong
        20
    liuzhiyong   76 天前
    新增了“第 2 条附言”。说明书已经详细到了“解压然后双击运行”(并且配有截图)。还要怎么说?我真的不知道。
    PrinceofInj
        21
    PrinceofInj   76 天前 via Android
    LZ 肯定不是吃计算机饭的,估计是平时写了个小工具方便自己用。楼上这么多犯得着嘲讽么。我们公司内部在有企业版 hSharePoint 的情况下还爱搞文件名套娃的行为。非计算机公司这种方式非常常见。
    niuxuewei
        22
    niuxuewei   76 天前
    支持分享,也理解 lz 所要做的东西,总结来说 git 到 vfilename 实际上面向着两个极端:

    git (面向 geek,性能好,学历曲线陡峭) <-> vfilename (面向非从业者,全量备份,理念简单)

    但是如果真的是面向非从业者,更是应该在 UI 、文档上面打磨,从用户的角度出发,尽量减少用户的使用成本,甚至可以通过一个非常简短的视频的方式呈现,总之加油。
    zhaiblog
        23
    zhaiblog   76 天前
    @PrinceofInj 虽然语气有点问题,但还是认真的说明了自己的疑惑。
    我觉得可以理解,作为一名程序员 ,以程序的标准去 看待一个项目很正常嘛,而且 LZ 还特意注册了域名去发布这个软件,说明是想好好弄的。
    出发点是好的,比那种发两句话阴阳怪气的好多了。
    hamkido2000
        24
    hamkido2000   76 天前
    要是能用 btrfs 就好了。。
    zjyl1994
        25
    zjyl1994   75 天前
    说真的,如果我做这个东西会这么做:
    用户选择一个文件夹,我挂一个文件系统的 watcher,检测到文件变动(用户按下 ctrl+s )就保存一个版本到版本库。
    给到用户的就是一个时间点列表,我要回到几点几分,点一下就回去,不满意再跳回来。你这弄得还要手动操作,对于普通人不友好,对于专业用户也没啥用。
    底层实现的话还是可以你这套压缩的东西,定点压缩一个当前的文件包,用户选的时候解压替换当前看到的文件就是了。
    zjyl1994
        26
    zjyl1994   75 天前
    整的我都有点想做一个了,回头我做完了也来推广一下 :)
    感觉蛮多人都会需要的
    Thinginitself
        27
    Thinginitself   75 天前   ❤️ 1
    感觉楼主有点反应过激,面对用户就会有不同声音啊。。。v2ex 上大家的反馈已经很认真很好了,现实中很多用户都只会简单的看一下然后关掉。
    liweiliang
        28
    liweiliang   74 天前
    这做得 多多少少有点敷衍了
    no1xsyzy
        29
    no1xsyzy   74 天前
    我不知道你怎么看出来『就是没人说“看不懂”』的。你发 「 7z vs rar 」 的时候我就说过其实我最初根本没看懂你在干什么,结果发现是因为你做得太简陋了。

    https://www.v2ex.com/t/769735?p=1#r_10440897

    @zjyl1994 OneDrive,请(

    @zhaiblog 你看看 #8 是怎么阴阳怪气的。
    kuaner
        30
    kuaner   74 天前
    说实话,我没看懂
    u2gign
        31
    u2gign   73 天前
    一楼说的很好 楼主做的确实不咋地
    YangWaleed
        32
    YangWaleed   73 天前
    说实话,我也没看懂,以为是用来自动生成 “改”、“完成版”、“最终版”、“绝对不改版” 这些文件名后缀的( doge
    thetbw
        33
    thetbw   66 天前
    以前 windows 有个自带软件好像叫公文包,感觉和你的需求蛮类似的
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   888 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 20:27 · PVG 04:27 · LAX 13:27 · JFK 16:27
    ♥ Do have faith in what you're doing.