Age | Commit message (Collapse) | Author |
|
|
|
Previously, the file paths of TODO lines in the output were relative to
the repository root. When you're in a subdirectory, though, this makes
them harder to work with, as they're relative paths, but aren't relative
to the current working directory.
Change the file path output so that paths are relative to the current
directory instead of the repo root.
|
|
I wasn't clearning up the "subdir" directory created in this test. Tried
adding a new test that used the same subdirectory name, which failed to
create the directory because it was already created here.
|
|
|
|
Add a couple tests to confirm that the program works for files that have
been modified:
* in the working directory but not staged
* in the index but not committed
|
|
Previously, untracked files were not included in the diff, so TODO lines
in those files would not be printed by the program.
Add the untracked `DiffOptions` to include the content of these files
when searching for TODOs.
|
|
Previously, running `git todo` outside the root of the repository would
result in this error:
error: unable to open repository: could not find repository from '.'; class=Repository (6); code=NotFound (-3)
It turns out the `open()` method expects the given path to be the
repository root. Use `open_from_env()` instead, which functions more
like regular Git commands.
|
|
|
|
Set up a release build and distribution packaging. Configure static
linking for 'openssl' and 'libgit2'.
Based on or copied from code from 'git-suggestion'.
|
|
These files were for ideas and explorations of solutions. We now have a
working implementation independent of them.
|
|
|
|
|
|
Copied some of the structure and the Makefile recipe from
'git-suggestion'.
|
|
In af63ef79f5f2bc770844169580902ff61f54ec98, I forgot to add
prerequisites, so when the source changed, the debug binary wasn't
rebuilt before running tests.
|
|
|
|
|
|
|
|
Since it doesn't really make sense to take multiple refs, don't allow
more than one. We can only diff between two trees, and one is fixed as
the workdir.
Also learned that to get an exit code from a `system()` call in Perl,
you have to shift `$?` by 8
(https://perldoc.perl.org/functions/system.html).
|
|
Print usage information with `-h`.
|
|
Turns out `refname_to_id()` wasn't the right function to get a
reference/oid/object from a ref name. Use `revparse_single()` instead to
get a usable reference object.
Add a test for custom diff bases.
|
|
|
|
|
|
If a ref is given on the command line, use that as the diff base.
Otherwise default to master.
|
|
* Remove commented code
* Ignore unused `hunk` variable
|
|
* Ignore lines that don't parse to UTF-8. Might want to figure out how
to support other encodings.
* Ignore lines that don't have a `path`.
* Panic on write errors.
|
|
Add a new `Error` type that we can return in the failure case. Still
need to work out how to handle errors inside the diff callback.
|
|
Allow the branch to be parameterised instead of forcing the base to be
the local "master" branch.
Added the `Todos` struct to store a `Repository` reference, since we
need this for both the base ref and the diff.
Decided to take a `Tree` instead of a `Branch` because we might want to
compare against an arbitrary ref and allow users to specify that ref on
the command line.
|
|
Instead of always printing to standard output, have the function take a
writer to write the output to.
|
|
Move this to a library function for better organisation. This will
facilitate splitting up and refining `write_since()`, and free up
`main()` for command line argument parsing.
|
|
Must have removed this accidentally after I generated the Rust scaffold.
|
|
Update the expectation to include the file name and line number plus the
exact line content as printed by the command.
Remove the extra newline from the output so that now only a single
newline is printed.
|
|
The `new_lineno()` is `None` when the line was removed. Ignoring removed
lines allows us to leave out removed TODOs.
|
|
Test that removed TODO lines don't appear in the command's output.
This currently gives the following error:
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/main.rs:39:43
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'main' panicked at 'Box<Any>', $HOME/.cargo/registry/src/github.com-1ecc6299db9ec823/git2-0.13.11/src/panic.rs:27:9
|
|
Need to restore the repo state back to the master branch and remove the
new branch created in this test.
|
|
|
|
Look for TODO lines since the "master" branch. For each TODO line, print
the file it's in, its line number, and the line, à la grep.
|
|
With the following command:
$ cargo init --bin
|
|
In order to include the 'bin.pm' file, we need to add its containing
folder to the include path. Do this by adding a Makefile with the
required command line argument.
Add a new test that modifies the test file to add a new new TODO line.
Test that it comes back in the `git todo` output.
|
|
Copied with alterations from git-branch-list.
|
|
The goal will be to list all TODOs since the branch point. Additionally,
there should be an option to print the TODOs with file names and line
numbers to enable loading the list into Vim's quickfix list.
|