# 0.004002

Fix minor issues so git-autofixup works with Git for Windows:

- close index temp file so git can write to it. (Windows has different file
  locking behaviour than *nix.)
- load Pod::Usage at runtime since Git for Windows doesn't include it and has
  special handling for `git <cmd> --help` such that it wouldn't get used anyway
  unless git-autofixup was invoked directly.

Fix some test failures:

- skip tests when perl is for Cygwin but git is for MSYS
- skip testing backslashes on Windows (Cygwin|MSYS)
- fallback to --set-upstream for old git versions where --set-upstream-to isn't
  available

# 0.004001

- Fix test plans so Test::More::plan() doesn't get called twice when git isn't
  available.

# 0.004000

- Automatically choose an upstream revision if one isn't supplied, based on the
  upstream/tracking branch. Thanks to Walter Smuts and Johannes Altmanninger
  for their help in figuring out the details.
- Support quoted filenames in diff output. git-autofixup now works with
  filenames containing non-ASCII characters.
- Improve error messages and handling. For git commands that are expected to
  fail, their stderr is captured, annotated with the command, and printed, to
  clarify the cause of errors.
- Deprecate --gitopt|-g in favor of using the GIT_CONFIG_{COUNT,KEY,VALUE}
  environment variables.

# 0.003002

- Speed up creation of temporary git index by copying the existing one and
  subtracting recent changes
- Speed up `git-blame` by only considering commits since the given revision
- Handle filenames (in git diff output) that contain spaces
- Suppress Git warning about implicit default branch

Many thanks to Johannes Altmanninger for his continued work; he implemented or
contributed to all the important changes in this release.

# 0.003001

- Fix bug where the index would be left out-of-sync with `HEAD` after
  autofixing unstaged hunks due to a temporary index being used. If you're
  running v0.003000 and hit this, `git restore --staged` can be used to read
  the new `HEAD`'s tree into the index. Thanks to Johannes Altmanninger for
  finding and fixing this.

# 0.003000

The most important change to the interface is that now, if there are any hunks
staged in the index, only those hunks will be considered for assigning to fixup
commits. A temporary git index is used to make any created fixup commits, so
any staged hunks that don't get assigned will remain staged. Thanks to Jonas
Bernoulli and Max Odnoletkov for their help with this.

- Add --gitopt to allow working around git settings issues
- Add --exit-code option, which gives more granular status about what subset of
  hunks were assigned to commits

Bug fixes:

- Fix diff commands so that the diff.noprefix, diff.mnemonicPrefix, and
  diff.external settings don't result in us getting unexpected input. Thanks to
  Paolo Giarrusso and Ryan Campbell for help with this.
- Fix bug where multiple hunks assigned to the same commit would result in
  copies of the same fixup commit, resulting in "patch does not apply" errors.
  Thanks to Johannes Altmanninger for identifying and fixing this.

# 0.002007

- Fix hunk parsing for files with multiple hunks (broken in 0.002006)
- Create fixup commits in a consistent order

# 0.002006

- Improve docs for the --strict option
- Fix hunk parsing for files without a newline at EOF

# 0.002005

- Fix running from repo subdirectories
- Fix docs for invoking as "git autofixup"

# 0.002004

- Fix angle brackets in POD

# 0.002003

- Check git version when running tests

# 0.002002

- Fix tests when git user.name and email aren't configured.

# 0.002001

- Make compatible with perl 5.8.4. Previously 5.8.9 was required.

# 0.002000

- Better descriptions of hunk handling now printed to stdout.
- Use --strict=1 behaviour as a fallback when --strict=0.
- Fix blamed line number and left side output for runs of added lines

# 0.001002

- Make compatible with perl5.8
- --help now shows the manpage
