#文件 #项目 #ableton #semver #filetime #时间 #目录

程序+库 abletime

用于计算项目花费时间的工具

2 个版本

0.1.1 2020年7月17日
0.1.0 2020年6月30日

#5 in #filetime

MIT 许可证

21KB
281

abletime

CI crates.io MIT license

是什么?

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