2 个版本
0.1.1 | 2020年7月17日 |
---|---|
0.1.0 | 2020年6月30日 |
#5 in #filetime
21KB
281 行
abletime
是什么?
abletime
通过检查特定目录中项目文件的创建和修改时间戳来计算在项目上花费的时间的工具。
为什么?
学习 Rust 的借口 :)
此工具对于像(例如 我)这样的极客来说非常有用,他们已经让语义版本控制影响了编程项目之外的流程(即 Ableton 项目,其中项目由单个文件表示,而不是包含许多文件的存储库)。就像受版本控制的代码一样,这对于其他类型的项目也有很多好处:轻松回到旧版本,随时间变化的历史记录,以及删除在较新版本中不需要但在将来某个时候可能需要参考的文件。
项目文件的语义版本控制建议方法
- 每次新保存都是一个补丁版本
- 每次新会话都是一个次版本
- 主版本表示项目里程碑或方向上的重大变化
如果项目根据以下基本规则构建,abletime
将非常有用
- 项目文件都保存在同一个目录中
- 每个新版本都保存为副本(最好在名称中使用新的语义版本号)
例如
$ ls -l ~/Ableton\ Projects/abletime\ Project
-rw-r--r--@ 1 adam staff 302K May 22 11:09 abletime 0.0.1.als
-rw-r--r--@ 1 adam staff 407K May 22 11:40 abletime 0.0.2.als
-rw-r--r--@ 1 adam staff 423K May 22 11:46 abletime 0.0.3.als
-rw-r--r--@ 1 adam staff 538K May 22 12:04 abletime 0.0.4.als
-rw-r--r--@ 1 adam staff 537K May 22 16:53 abletime 0.1.0.als
-rw-r--r--@ 1 adam staff 576K May 22 17:18 abletime 0.1.1.als
abletime
的灵感来自试图量化在创作歌曲时可能出现的黑洞,但假设使用上述结构,它可以应用于任何类型的项目。只需告诉 abletime
要查找哪种类型的文件即可。
用法
USAGE:
abletime [OPTIONS] [directory]
ARGS:
<directory> Directory to inspect. Defaults to current directory [default: .]
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-m, --max-minutes-between-saves <max-minutes-between-saves>
Maximum number of minutes allowed between saves for time to be counted. Values <= 0 will disable this
feature [default: 60]
-s, --suffix <suffix>
Project file suffix. Default value works for Ableton projects [default: .als]
$ cargo install abletime
$ abletime ~/Ableton\ Projects/abletime\ Project
Start time Duration Name
Version 0.0.x - 0:55:42.955
Fri May 22 11:09:15 0:31:00.002 abletime 0.0.1.als
Fri May 22 11:40:15 0:06:38.036 abletime 0.0.2.als
Fri May 22 11:46:53 0:18:04.473 abletime 0.0.3.als
Fri May 22 12:04:58 0:00:00.443 abletime 0.0.4.als
Version 0.1.x - 0:25:07.077
Fri May 22 16:53:06 0:25:06.602 abletime 0.1.0.als
Fri May 22 17:18:12 0:00:00.475 abletime 0.1.1.als
Total project time
1:20:50.033
实现细节
- 为了避免高估,使用保存之间的最大时间作为识别表示会话结束的项目文件的粗略方法。这些版本的持续时间回退到
modified time - created time
。在上面的示例中,它们小于 1 秒。
可能要实现的事情
- 可视化
依赖关系
~6MB
~98K SLoC