Revision history for Git-Repository

1.22 Tue Sep  6 23:39:54 CEST 2011
        - made t/21-submodule.t pass with git > (RT #70585)
        - made t/21-submodule.t pass with git <

1.21 Mon Jul 11 23:34:47 CEST 2011
        - fix a deep recursion caused by a change in System::Command 1.05
          (thanks to Thomas Klausner)
        - made t/21-submodule.t pass when git is not available or too old
          or no identity is configured

1.20 Thu Jun  9 14:08:43 CEST 2011
        - None. It's as good as 1.19, without the stupid test fail.
        - one test always failed if run outside of a git repository,
          so I didn't detect it, but all testers did :-(
          Kazuhiro Shibuya provided a patch!

1.19 Wed Jun  8 23:39:22 CEST 2011
        - new final_output() method to Git::Repository::Command,
          that does the git-specific error checking when collecting
          the final output
        - Git::Repository::Log::Iterator will now properly die/warn
          when the log command is incorrect (thanks to Lasse Makholm
          for the bug report and proposed patch)
        - Git::Repository::Command now supports an arrayref as the 'git'
          option value, thus allowing calling wrappers like sudo
          (thanks to Dominic Humphries for the initial patch)
        - moved the HOWTO part of the doc to Git::Repository::Tutorial

1.18 Sat Apr 16 13:47:26 CEST 2011
        - the create() method was fragile (parsing the output of
          porcelain commands) and is now obsolete
        - added an example for running git shortlog (RT #66783)

1.17 Tue Feb  1 01:01:10 CET 2011
        - Git::Repository::Command now uses System::Command internally
        - skip some tests that needed a specific version of git
        - delete GIT_EDITOR in tests that check it (Nigel Metheringham)
        - getting a working Win32 implementation is now delegated
          to System::Command

1.16 Sun Jan 16 12:23:42 CET 2011
        - the reaping of the child process is now delegated to a special
          Git::Repository::Command::Reaper object.
          Code such as my $fh = Git::Repository::Command->new(@cmd)->stdout()
          will now work as expected.
        - Test::Git::has_git() now accepts the usual options hash
        - fixed tests to pass again under Perl 5.6.2

1.15 Tue Jan 11 22:42:35 CET 2011
        - experimental MSWin32 full support using pipes
          (thanks to BinGOs for pointing me to a perlmonks post by ikegami,
          that contained working code)
        - Git::Repository::Log now has a raw_message() accessor, that
          returns the message with 4-space indent output by git log
          (Note that this change is INCOMPATIBLE with previous versions,
          in which message() returned the indented log message, and you
          had to make up your own "clean" version).
        - no more skipping tests under MSWin32, but there are some issues
          with the win32 code, as sometimes the output or errput of the git
          command is lost (HELP!)
        - bundle Test::Git, a module providing a few utility functions
          for testing code requiring a git repository

1.14 Wed Oct 27 21:49:45 CEST 2010
        - complete rewrite of _has_git, which was renamed to _is_git,
          with a much improved cache for the "is this git valid?" info
        - calling new() with the 'git' option will now work correctly
          when there is no git in the PATH (fixes RT bug #62283,
          reported by Todd Rinaldo)
        - improved the plugin system design (thanks to Aristotle Pagaltzis)
        - fixes for making Git::Repository work with modules that do
          bad things to STDIN, STDOUT and STDERR (thanks to Todd Rinaldo)
        - improved tests on Win32 (thanks to Olivier Raginel (BABAR)
          for giving me access to a Win32 VM with Git installed)
        - sadly, the work on Win32 showed that Git::Repository doesn't
          fully support that platform, but the test suite safely skips
          the tests that hang under Win32. I hope to fix this over time.

1.13 Mon Oct 18 22:36:17 CEST 2010
        - using 'git' as an option of a Git::Repository object now works
          as expected
        - version() also accepts option hashes
        - plugin system to load new keywords in the Git::Repository namespace
        - Git::Repository::Plugin::Log provides the log() method with the
          help of Git::Repository::Log and Git::Repository::Log::Iterator
          (Thanks to Todd Rinaldo and Aristotle Pagaltzis for discussions
          and ideas about what became the plugin system.)
        - tested against 120+ versions of git, including all versions
          of the 1.6.* and 1.7.* branches up until

1.12 Mon Oct  4 02:30:51 CEST 2010
        - the input option can now be empty: it means "close stdin first"
        - if the input option is undef, it still means "don't touch stdin"

1.11 Sat Oct  2 18:17:33 CEST 2010
        - fixed a bug in version comparison
          (version is smaller than
        - skip tests that fail between between versions 1.7.1 and
          (thanks to S├ębastien Aperghis-Tramoni for the private report)
        - fix abs_path dying on Win32 with a path to a non-existent file

1.10 Fri Sep 24 18:04:05 CEST 2010
        - Git::Repository::Command doesn't write to the command stdin
          if the input option is set to something empty
        - Git::Repository::Command now has a version number too
        - minor copy editing by Aristotle Pagaltzis

1.09 Thu Aug 19 00:34:47 CEST 2010
        - now handle SIGPIPE when writing to git stdin
          (fixes RT bug #60482, reported by Todd Rinaldo (TODDR))
        - new() ignores the 'input' option for git commands called
          during initialization
        - t/20-simple.t should stop failing with "Non-zero wait status: 13"
          as it has been doing since 1.05.

1.08 Tue Aug 17 14:49:11 CEST 2010
        - Git::Repository->new() now supports git versions older than 1.5.3
        - ensure we have some identity when committing
        - make tests require the lowest git version they support

1.07 Sat Aug 14 16:52:21 CEST 2010
        - support for option hash in create(), which is attached to the
          returned Git::Repository object
        - accessors for Git::Repository::Command objects
          (including a 'cmdline' accessor)
        - removed the wc_subdir() attribute, which is useless and
          redundant with the cwd option
        - completely rewrote the repo_path and wc_path computation in new()
        - support new (post-v1.7.1) clone output in create()
        - less confusing names for options and attributes:
          + new() now takes git_dir and work_tree
            (instead of repository and working_copy)
          + the corresponding attributes are now git_dir and work_tree
            (instead of repo_path and wc_path)
          + the older options and attributes are being kept for compatibility
        - tests for the case when GIT_DIR is not .git (Mark Lawrence)
        - protect git log tests against format.pretty (Aristotle Pagaltzis)
        - tests for backward-compatibility with repository, working_copy, etc.

1.06 Sat Jul  3 22:02:59 CEST 2010
        - none
        - just make sure all tests fail gracefully when git is not installed

1.05 Sat Jul  3 00:40:09 CEST 2010
        - version() method returns the git binary version
        - version_eq(), version_gt(), etc allow simple version comparison
          for the current git binary
        - allow providing a default option hash to Git::Repository->new()
        - Document git init behaviour changed in 1.6.5
        - extensive version comparison tests

1.04 Sun Jun 27 17:24:02 CEST 2010
        - create() now supports "reinitializing existing Git repository"
          (thanks to Michael G. Schwern)
        - test a few extra cases

1.03 Sat Jun 19 00:27:28 CEST 2010
        - fix module to work with Perl 5.6.x
        - support GIT_DIR & GIT_WORK_TREE environment variables, when
          run without a Git::Repository object, and even allow an
          override when there is one, for those who know what they're
        - fix the case where /tmp is a symlink to some other place
        - fix abs_path dying on Win32 with a path to a non-existent file

1.02 Wed Jun 16 01:27:17 CEST 2010
        - sensible defaults for Git::Repository->new() without parameters
        - correctly setup Git::Repository if working_copy points to a
          subdirectory of the actual work tree
        - wc_subdir() points to the given subdirectory
        - skip tests that fail if /tmp is a git repository

1.01 Mon Jun 14 08:17:38 CEST 2010
        - consider git failing with a usage message as a fatal error
        - don't bother testing too much if git is older than v1.6.0

1.00 Sat Jun 12 11:50:06 CEST 2010
        - Git::Repository provides context and a simple run() method
        - Git::Repository::Command is the actual workhorse
        - 94% test coverage