Update git_repository_open #623

Merged
merged 1 commit into from Apr 13, 2012
Commits on Apr 11, 2012
  1. @arrbee

    Refactor git_repository_open with new options

    arrbee committed Apr 11, 2012
    Add a new command `git_repository_open_ext` with extended options
    that control how searching for a repository will be done.  The
    existing `git_repository_open` and `git_repository_discover` are
    reimplemented on top of it.  We may want to change the default
    behavior of `git_repository_open` but this commit does not do that.
    
    Improve support for "gitdir" files where the work dir is separate
    from the repo and support for the "separate-git-dir" config.  Also,
    add support for opening repos created with `git-new-workdir` script
    (although I have only confirmed that they can be opened, not that
    all functions work correctly).
    
    There are also a few minor changes that came up:
    
    - Fix `git_path_prettify` to allow in-place prettifying.
    
    - Fix `git_path_root` to support backslashes on Win32.  This fix
      should help many repo open/discover scenarios - it is the one
      function called when opening before prettifying the path.
    
    - Tweak `git_config_get_string` to set the "out" pointer to NULL
      if the config value is not found.  Allows some other cleanup.
    
    - Fix a couple places that should have been calling
      `git_repository_config__weakptr` and were not.
    
    - Fix `cl_git_sandbox_init` clar helper to support bare repos.