Root directory should contain *.rec files with the schema of the
records. For example:
- person.rec:
- %rec: person
- %key: id
- %unique: name
- %mandatory: name email
- %type: id line
- %type: name line
- %type: email email
-
- id: stargrave
- name: Сергей Матвеев
- email: stargrave@stargrave.org
-
- task.rec:
- %rec: task
- %key: id
- %mandatory: name created
- %unique: name created about result
- %allowed: about result ass proj status
- %sort: created
- %type: id line
- %type: name line
- %type: created date
- %type: ass rec person
- %type: proj enum
- + c (C99)
- + go (Go)
- + py (Python3)
- + tcl (Tcl)
- %type: status enum
- + done (task is finished)
- + reject
- + wip (work in progress)
+ -- person.rec --
+ %rec: person
+ %key: id
+ %unique: name
+ %mandatory: name email
+ %type: id line
+ %type: name line
+ %type: email email
+
+ id: stargrave
+ name: Сергей Матвеев
+ email: stargrave@stargrave.org
+
+ -- task.rec --
+ %rec: task
+ %key: id
+ %mandatory: name created
+ %unique: name created about result
+ %allowed: about result ass proj status
+ %sort: created
+ %type: id line
+ %type: name line
+ %type: created date
+ %type: ass rec person
+ %type: proj enum
+ + c (C99)
+ + go (Go)
+ + py (Python3)
+ + tcl (Tcl)
+ %type: status enum
+ + done (task is finished)
+ + reject
+ + wip (work in progress)
Schema of the issues/tasks must be trailing *.rec file after the sort.
git log issue-name!
You can edit meta files either manually (it is trivial text-based
-human-friendly format) or with recset utility. Add "deps: foo-bar" field
+human-friendly format) or with recset utility. Add "dep: foo-bar" field
and press "gf" in your Vi editor to go to "foo-bar" directory of the
dependant issue.
+ ------------------------ >8 ------------------------
+
"metas" script exports the whole issues database without about/result
fields. "show" includes them. "full" also prepends *.rec files to the
output. They are expected to be filtered with recsel/recdel utilities.
"cd" lists all issues piped to "fzf" utility, that previews each one
with "show" script.
+Personally I "hash -d" schwabrak's directory to be able to quickly call
+commands from it:
+
+ $ hash -d s=~/work/schwabrak
+ $ cd my/issues
+ $ ~s/add issue name to create
+
+To ease the creation of the new issue's directory structure, you can use
+"add" command as seen above. And yes, it is intended that "issue" and
+"name", "to", "create" can be passed as separate arguments, but
+issue-name-to-create will be created as expected.
+
+ ------------------------ >8 ------------------------
+
+Person: ~s/schemas | recsel -t person -e 'email ~ "stargrave"'
+Unfinished tasks: ~s/metas | recsel -e 'status != "done"'
+Full tasks info for person and project: ~s/full |
+ recsel -t task -e 'ass = "stargrave" && proj = "tcl"'
+
+ ------------------------ >8 ------------------------
+
The "comment" issue's file is intended to keep the last comment related to
the issue. By committing it you automatically accompany it with your
(commit's author) name and the time it was added.
- $ cat >issues-name/comment <<EOF
+ $ cat >issue-name/comment <<EOF
Here are my thoughts:
* bla bla bla
EOF
$ git log -p issues-name/comment
-Personally I "hash -d" schwabrak's directory to be able to quickly call
-commands from it:
-
- $ hash -d s=~/work/schwabrak
- $ cd my/issues
- $ ~s/add issue name to create
-
-To ease the creation of the new issue's directory structure, you can use
-"add" command as seen above. And yes, it is intended that "issue" and
-"name", "to", "create" can be passed as separate arguments, but
-issue-name-to-create will be created as expected.