diff options
author | Russell Belfer <rb@github.com> | 2012-10-06 02:56:57 +0400 |
---|---|---|
committer | Russell Belfer <rb@github.com> | 2012-10-09 22:59:34 +0400 |
commit | 0d64bef941928046d114c4da1acb70bd2907855e (patch) | |
tree | 4ae0ac6484c62b0a63ca44f937d67ba15f97d7f0 /src/fileops.h | |
parent | f3a04e0f49d0f46e578613d1c27161abc4c2bf22 (diff) |
Add complex checkout test and then fix checkout
This started as a complex new test for checkout going through the
"typechanges" test repository, but that revealed numerous issues
with checkout, including:
* complete failure with submodules
* failure to create blobs with exec bits
* problems when replacing a tree with a blob because the tree
"example/" sorts after the blob "example" so the delete was
being processed after the single file blob was created
This fixes most of those problems and includes a number of other
minor changes that made it easier to do that, including improving
the TYPECHANGE support in diff/status, etc.
Diffstat (limited to 'src/fileops.h')
-rw-r--r-- | src/fileops.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/fileops.h b/src/fileops.h index d2944f460..19f7ffd54 100644 --- a/src/fileops.h +++ b/src/fileops.h @@ -107,15 +107,17 @@ typedef enum { * Remove path and any files and directories beneath it. * * @param path Path to to top level directory to process. - * + * @param base Root for relative path. * @param removal_type GIT_DIRREMOVAL_EMPTY_HIERARCHY to remove a hierarchy - * of empty directories (will fail if any file is found), GIT_DIRREMOVAL_FILES_AND_DIRS - * to remove a hierarchy of files and folders, GIT_DIRREMOVAL_ONLY_EMPTY_DIRS to only remove - * empty directories (no failure on file encounter). + * of empty directories (will fail if any file is found), + * GIT_DIRREMOVAL_FILES_AND_DIRS to remove a hierarchy of + * files and folders, + * GIT_DIRREMOVAL_ONLY_EMPTY_DIRS to only remove empty + * directories (no failure on file encounter). * * @return 0 on success; -1 on error. */ -extern int git_futils_rmdir_r(const char *path, git_directory_removal_type removal_type); +extern int git_futils_rmdir_r(const char *path, const char *base, git_directory_removal_type removal_type); /** * Create and open a temporary file with a `_git2_` suffix. |