历史版本可以丢到移动硬盘(或者其他什么便宜的储存),不占用电脑储存。
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 文档中一个字符的变化,由于压缩,并不对应于文件中一个字节的变化。因此,对这种二进制数据的 "漂亮 "处理是不可能的。
就是解决这个问题:
1
0TSH60F7J2rVkg8t 2021-07-03 14:33:09 +08:00 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 了。可考虑使用配置方案,让用户选择是否分文件打包。 以上建议仅供参考,不一定是楼主的需求和目标。只是想说,楼主目前这个作品,还不能称得上是一个作品。 |
2
liuzhiyong OP @ahhui 照你的建议做下去,还不如用 Git 。这个工具的特点是“简单可靠”。看得出来你是个喜欢把事情搞复杂的人,你是公务员吗?
|
3
liuzhiyong OP 我说错话了,例如有的医生多开药冲业绩,例如有的出租车司机绕路多收钱,例如有的商业合同多搞条款搞晕你……总之我说错话了,我道歉。
|
4
dreampet 2021-07-03 16:43:01 +08:00 11
@liuzhiyong 1 楼的建议有很多可取之处,你的软件离所谓的“简单可靠”还很远,只能说简陋,但你的反应是不是太激烈了?听不得反对意见?
github 上的提交说明也是毫无意义的日期,而不是具体的修改点,有什么脸求 Star ? |
5
falcon05 2021-07-03 17:04:42 +08:00 via iPhone
一楼说得很有道理啊,就是个课堂作业的感觉
|
6
GeruzoniAnsasu 2021-07-03 18:14:53 +08:00 8
翻了一下历史发帖差点直接 B 了……
说实话恕我愚钝我根本没看懂这东西怎么用,“官网”放了些意义不明的截图但就是没说清前因后果…… 是常驻后台后会监听 [添加到压缩包] 的命令自动弹出窗口来覆盖原有的参数? 点了确认生成是自动往原对话框填参数然后模拟点击确定? 作为产品没写清 feature list 和使用指引,作为开源项目没写清 build/contribute 步骤,提交信息也没有信息,这……? 还有其它的 > “binary diff”不灵光,于是占用越来越多的电脑储存空间 是什么逻辑?是说存全量版本要占空间?不是,那你做的东西不也还是存全量吗 > 使用 V File Name,就可以把历史版本丢到任何地方。 这“丢到任何地方”是指什么……是说会完整打包整个文件夹?我挪走了你这东西还能看到历史版本吗?能通过它回滚到某个历史吗?……这些完全都没有介绍啊 - 看起来好像每次打包都要重填各项信息?那我为啥不直接用原始的方法,反正全都要填一遍 - 怎么区分我现在创建压缩包是想创建历史还是就普通地打一个包? - 不用 zip 的原因是“修改起来过于方便”? 这是啥理由?有谁会去改备份文件里的内容吗?真要改,换个格式存就拦不住了?而且我真要改的话拦着我改干啥 - 你理解你贴的 stackoverflow 问题讨论的是啥吗?说的是虽然版本管理工具能 diff 二进制但其中的差别并不体现在文档结构上所以并不能很好还原出差别。提问的人想问这些东西能不能处理只改一小部分的情况不要全量,回答说不行,然后你做了个全量是想说解决了问题? 我感觉自己应该回过某个历史发帖但看完发现都没有,有点怪。可能之前我最后都忍住了? 我不是说历史版本压缩包这种东西没用,相反确实有很多场景需要这样的版本工具,我电脑上测试自己公司产品都累积了 10+个同一产品不同版本的安装包目录,按日期和版本号命名的,但都是手打。 做这种工具,核心 feature 应该是你很好地处理了各版本压缩包的命名、存放、索引、自动打包 /还原,并且能优秀地与其它东西集成比如网盘、快捷工具( utools/alfred )、编辑环境如 vscode 的插件之类的 …… 用什么压缩工具真的重要吗你觉得?而且你本来完全可以链接一个 libzip 之类的自动打压缩包就 ok 了,为啥要调另行安装的工具呢,万一 rar 和 7zip 都没装咋办 |
7
GeruzoniAnsasu 2021-07-03 18:25:06 +08:00 1
哦,我还想补一句
> 电路图的行业领先的工具,Altium Designer,也搞压缩包保存历史版本 > 也许你没有听说过 AD(Altium Designer),嗯,这么说吧,很牛 /t/740128 做一个新东西就是因为旧的不好才做的,你也是觉得 git/svn 某些方面不好才做的这个东西,那何必要找一个“很牛的东西” 来背书?如果需要用这种想法给自己打气,那“git 就是用存二进制 diff 的方式来管理版本的,git 很牛”你咋反驳? 要么你分析清楚它们做法的场景和优越性,拿这样的理念来推广,不然听起来跟“通过创建系统还原点来保存历史版本”并没有什么区别 |
8
liuzhiyong OP 有个老飞行员,有一天看见别人骑单车,他就问,“你为啥不用飞机呀?”
好吧,你牛。 这个工具就是“简单可靠”:如果你发现它没有完成任务,如果你发现它哪里出错了,欢迎反馈。 我印象中,这个工具大约五百行代码,实在没有必要走项目的全套流程。 至于“学生”、“课堂作业”之类说辞,现在内卷这么厉害,你们真是抬举这个项目的难度了。 PS 我扫了一眼,好多问号,好多反问句。好口才。 |
9
Ultraman 2021-07-03 19:20:32 +08:00 via Android
我的理解这个小工具就是我把某个时刻的文件 /文件夹打成压缩包的时候可以往最终的压缩包的名字上加一个用户 备注和时间?上面老哥说的关于历史版本到处扔
|
10
Ultraman 2021-07-03 19:24:11 +08:00 via Android
@Ultraman 到处扔的疑问我也有,这个具体逻辑是怎样的真的有必要说清楚,不然你既没说清楚这个功能怎么用又没说清楚工作逻辑,那我用的时候因为我的理解和你软件的实现中间有出入导致我的文件丢了的话,我是怪你软件还是怪我自己?何况我就是怪了又有卵用又不能把我的文件找回来
|
11
suzic 2021-07-03 20:02:25 +08:00 via Android
|
13
liuzhiyong OP @suzic 收到,多谢!
|
14
liuzhiyong OP @Ultraman “那我用的时候因为我的理解和你软件的实现中间有出入导致我的文件丢了的话”
这个软件没有删除功能,你就是想要用它把文件弄丢,都不可能。 “到处扔的疑问我也有,这个具体逻辑是怎样的真的有必要说清楚” 四个字,手动操作(移动文件)。它没有任何删除功能,“移动”也算一种删除(来源的文件要消失)。 |
15
6IbA2bj5ip3tK49j 2021-07-03 22:49:43 +08:00
我仔细看了一遍,也没学会这个怎么用。
建议录个 gif 。 |
16
abersheeran 2021-07-03 23:58:27 +08:00 1
怎么说呢,如果是主要为了自用、不想写操作文档大可以不写的……你这个操作文档我看完感觉完全没懂这个东西的作用。
我之前也分享过自用的脚本,我直接说清楚了自用所以没什么过于详细的文档。也没人说我什么哪里哪里不能这么搞。 开源软件不是你这个写法。要么你就当他是个彻头彻尾的自用软件,要么你就认真学习其他开源项目一样写明白作用与目的、实现原理、构建方式和使用方式。这种两不像,真的不怪楼上说你。 |
17
muzuiget 2021-07-04 04:45:51 +08:00
一眼看确实不知道是什么东西,仔细看了下以及评论,原来就是个调用用压缩软件打包工具而已。
> 对于很多二进制文件(不是纯文本的代码),“binary diff”不灵光,于是占用越来越多的电脑储存空间。 你这个软件也根本没有解决这个问题,全量备份,还是花时间压缩,甚至不如直接用 git 呢,再说 git 还有 git-lfs 这种方案专门处理二进制大文件。 |
18
minamike 2021-07-04 08:28:30 +08:00 via iPhone
所以这就是个能给压缩包名称自动打时间戳的工具?🤔
|
19
criver 2021-07-04 11:25:04 +08:00
这实在不是一个想把工具做好的态度
|
20
liuzhiyong OP 新增了“第 2 条附言”。说明书已经详细到了“解压然后双击运行”(并且配有截图)。还要怎么说?我真的不知道。
|
21
PrinceofInj 2021-07-04 12:31:10 +08:00 via Android
LZ 肯定不是吃计算机饭的,估计是平时写了个小工具方便自己用。楼上这么多犯得着嘲讽么。我们公司内部在有企业版 hSharePoint 的情况下还爱搞文件名套娃的行为。非计算机公司这种方式非常常见。
|
22
niuxuewei 2021-07-04 14:52:09 +08:00
支持分享,也理解 lz 所要做的东西,总结来说 git 到 vfilename 实际上面向着两个极端:
git (面向 geek,性能好,学历曲线陡峭) <-> vfilename (面向非从业者,全量备份,理念简单) 但是如果真的是面向非从业者,更是应该在 UI 、文档上面打磨,从用户的角度出发,尽量减少用户的使用成本,甚至可以通过一个非常简短的视频的方式呈现,总之加油。 |
23
zhaiblog 2021-07-04 16:42:21 +08:00
@PrinceofInj 虽然语气有点问题,但还是认真的说明了自己的疑惑。
我觉得可以理解,作为一名程序员 ,以程序的标准去 看待一个项目很正常嘛,而且 LZ 还特意注册了域名去发布这个软件,说明是想好好弄的。 出发点是好的,比那种发两句话阴阳怪气的好多了。 |
24
hamkido2000 2021-07-05 01:47:10 +08:00
要是能用 btrfs 就好了。。
|
25
zjyl1994 2021-07-05 14:10:35 +08:00
说真的,如果我做这个东西会这么做:
用户选择一个文件夹,我挂一个文件系统的 watcher,检测到文件变动(用户按下 ctrl+s )就保存一个版本到版本库。 给到用户的就是一个时间点列表,我要回到几点几分,点一下就回去,不满意再跳回来。你这弄得还要手动操作,对于普通人不友好,对于专业用户也没啥用。 底层实现的话还是可以你这套压缩的东西,定点压缩一个当前的文件包,用户选的时候解压替换当前看到的文件就是了。 |
26
zjyl1994 2021-07-05 14:11:53 +08:00
整的我都有点想做一个了,回头我做完了也来推广一下 :)
感觉蛮多人都会需要的 |
27
Thinginitself 2021-07-05 16:12:32 +08:00 1
感觉楼主有点反应过激,面对用户就会有不同声音啊。。。v2ex 上大家的反馈已经很认真很好了,现实中很多用户都只会简单的看一下然后关掉。
|
28
liweiliang 2021-07-06 10:31:47 +08:00
这做得 多多少少有点敷衍了
|
29
no1xsyzy 2021-07-06 12:03:14 +08:00
我不知道你怎么看出来『就是没人说“看不懂”』的。你发 「 7z vs rar 」 的时候我就说过其实我最初根本没看懂你在干什么,结果发现是因为你做得太简陋了。
https://www.v2ex.com/t/769735?p=1#r_10440897 @zjyl1994 OneDrive,请( @zhaiblog 你看看 #8 是怎么阴阳怪气的。 |
30
kuaner 2021-07-06 16:31:44 +08:00
说实话,我没看懂
|
31
u2gign 2021-07-07 12:39:49 +08:00
一楼说的很好 楼主做的确实不咋地
|
32
YangWaleed 2021-07-07 19:41:45 +08:00
说实话,我也没看懂,以为是用来自动生成 “改”、“完成版”、“最终版”、“绝对不改版” 这些文件名后缀的( doge
|
33
thetbw 2021-07-14 13:42:29 +08:00
以前 windows 有个自带软件好像叫公文包,感觉和你的需求蛮类似的
|