зеркало из https://github.com/microsoft/git.git
scalar: .scalarCache should live above enlistment
We should not be putting the .scalarCache inside the enlistment as a sibling to the 'src' directory. This only happens in "unattended" mode, but it also negates any benefit of a shared object cache because each enlistment absolutely does not share any objects with others. Move the shared object cache in this case to a level above the enlistment, so at least there is some hope that it can be reused. This is also critical to the upcoming --no-src option, since the shared object cache cannot be located within the Git repository. Signed-off-by: Derrick Stolee <derrickstolee@github.com>
This commit is contained in:
Родитель
2d3036acb0
Коммит
5b626414bb
10
scalar.c
10
scalar.c
|
@ -22,6 +22,7 @@
|
|||
#include "trace2.h"
|
||||
#include "json-parser.h"
|
||||
#include "remote.h"
|
||||
#include "path.h"
|
||||
|
||||
static int is_unattended(void) {
|
||||
return git_env_bool("Scalar_UNATTENDED", 0);
|
||||
|
@ -476,8 +477,13 @@ static char *default_cache_root(const char *root)
|
|||
{
|
||||
const char *env;
|
||||
|
||||
if (is_unattended())
|
||||
return xstrfmt("%s/.scalarCache", root);
|
||||
if (is_unattended()) {
|
||||
struct strbuf path = STRBUF_INIT;
|
||||
strbuf_addstr(&path, root);
|
||||
strip_last_path_component(&path);
|
||||
strbuf_addstr(&path, "/.scalarCache");
|
||||
return strbuf_detach(&path, NULL);
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
(void)env;
|
||||
|
|
|
@ -306,7 +306,7 @@ test_expect_success '`scalar clone` with GVFS-enabled server' '
|
|||
cache_key="url_$(printf "%s" http://$HOST_PORT/ |
|
||||
tr A-Z a-z |
|
||||
test-tool sha1)" &&
|
||||
echo "$(pwd)/using-gvfs/.scalarCache/$cache_key" >expect &&
|
||||
echo "$(pwd)/.scalarCache/$cache_key" >expect &&
|
||||
git -C using-gvfs/src config gvfs.sharedCache >actual &&
|
||||
test_cmp expect actual &&
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче