This is mostly to make the tests reliable.
Without this the dependencies are inserted into the vector in directory
order, which in my checkout of the repo did not match the alphabetical
order of the dependencies in the test.
Before this commit:
change state of issue f3990ac13cd93a925f2a66e6a72eb0f2 to backlog
After this commit:
change state of issue 406e2330695040fed5fdbcaae5d2b331, new -> inprogress
Instead of a two-step process handled by the application
(`Issue::new_comment()` and `Comment::set_description()` or
`Comment::edit_description()`), make a simpler-to-use single-step
`Issue::add_comment()`.
Move the implementation details from Issue to Comment.
Better log message when adding a comment.
This starts cleaning up the Issue API.
* Start separating the public API from the internal API.
* Make `Issue::new()` and `Issue::edit_description()` better behaved,
simpler, reduce code duplication, and also produce better git log
messages.
* Update `ent` to call the changed `new()` function.
* Add some comments documenting the Issue API.
* `ent new` and `ent edit` now use the editor specified by the EDITOR
environment variable, if any. Defaults to `vi` if unspecified.
This commit makes a couple of changes:
- `ent show ISSUE` now displays the Issue's Comments in chronological
order
- the Comment struct now includes a timestamp, which is the Author Time
of the oldest commit that touches the comment's directory
- the Issue struct now stores its Comments in a sorted Vec, not in
a HashMap
- The Comment's uuid moved into the Comment struct itself, instead of
being the key in the Issue's HashMap of Comments
The Issue struct is a cache of files on disk. There is never an Issue
without a directory to live in.
This commit adds a field to Issue to track what that directory is, so
that we can update those filew when we change the Issue, and commit the
changes to git.