Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
convert read_cache_preload() to take struct pathspec
author
Nguyễn Thái Ngọc Duy
<pclouds@gmail.com>
Sun, 14 Jul 2013 08:35:49 +0000
(15:35 +0700)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 15 Jul 2013 17:56:08 +0000
(10:56 -0700)
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/checkout.c
patch
|
blob
|
history
builtin/commit.c
patch
|
blob
|
history
builtin/diff-files.c
patch
|
blob
|
history
builtin/diff-index.c
patch
|
blob
|
history
builtin/diff.c
patch
|
blob
|
history
cache.h
patch
|
blob
|
history
preload-index.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
78a9514
)
diff --git
a/builtin/checkout.c
b/builtin/checkout.c
index 6721de2ac867fe8b566ef0c6815fc870efb6ec98..2f0fb8d07c99831c5c3c817de50608736b7524a2 100644
(file)
--- a/
builtin/checkout.c
+++ b/
builtin/checkout.c
@@
-262,7
+262,7
@@
static int checkout_paths(const struct checkout_opts *opts,
lock_file = xcalloc(1, sizeof(struct lock_file));
newfd = hold_locked_index(lock_file, 1);
lock_file = xcalloc(1, sizeof(struct lock_file));
newfd = hold_locked_index(lock_file, 1);
- if (read_cache_preload(
opts->pathspec.raw
) < 0)
+ if (read_cache_preload(
&opts->pathspec
) < 0)
return error(_("corrupt index file"));
if (opts->source_tree)
return error(_("corrupt index file"));
if (opts->source_tree)
diff --git
a/builtin/commit.c
b/builtin/commit.c
index 64d1a3d236546c620fc2a7abb68cf3f5c824ea6e..0344ec72afd171c6c55386eb70432745dbc01248 100644
(file)
--- a/
builtin/commit.c
+++ b/
builtin/commit.c
@@
-294,7
+294,7
@@
static char *prepare_index(int argc, const char **argv, const char *prefix,
PATHSPEC_PREFER_FULL,
prefix, argv);
PATHSPEC_PREFER_FULL,
prefix, argv);
- if (read_cache_preload(
pathspec.raw
) < 0)
+ if (read_cache_preload(
&pathspec
) < 0)
die(_("index file corrupt"));
if (interactive) {
die(_("index file corrupt"));
if (interactive) {
@@
-1245,7
+1245,7
@@
int cmd_status(int argc, const char **argv, const char *prefix)
PATHSPEC_PREFER_FULL,
prefix, argv);
PATHSPEC_PREFER_FULL,
prefix, argv);
- read_cache_preload(
s.pathspec.raw
);
+ read_cache_preload(
&s.pathspec
);
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, s.pathspec.raw, NULL, NULL);
fd = hold_locked_index(&index_lock, 0);
refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, s.pathspec.raw, NULL, NULL);
fd = hold_locked_index(&index_lock, 0);
diff --git
a/builtin/diff-files.c
b/builtin/diff-files.c
index 46085f862f937b005493319cea25b93bcb10c999..9200069363ff016d167f6885688650158c12e507 100644
(file)
--- a/
builtin/diff-files.c
+++ b/
builtin/diff-files.c
@@
-61,7
+61,7
@@
int cmd_diff_files(int argc, const char **argv, const char *prefix)
(rev.diffopt.output_format & DIFF_FORMAT_PATCH))
rev.combine_merges = rev.dense_combined_merges = 1;
(rev.diffopt.output_format & DIFF_FORMAT_PATCH))
rev.combine_merges = rev.dense_combined_merges = 1;
- if (read_cache_preload(
rev.diffopt.pathspec.raw
) < 0) {
+ if (read_cache_preload(
&rev.diffopt.pathspec
) < 0) {
perror("read_cache_preload");
return -1;
}
perror("read_cache_preload");
return -1;
}
diff --git
a/builtin/diff-index.c
b/builtin/diff-index.c
index 1c737f79216fda2e5395422d8aee2e4f5d6482a4..ce15b23042d8472573b88e0ee9a6032673321ea3 100644
(file)
--- a/
builtin/diff-index.c
+++ b/
builtin/diff-index.c
@@
-43,7
+43,7
@@
int cmd_diff_index(int argc, const char **argv, const char *prefix)
usage(diff_cache_usage);
if (!cached) {
setup_work_tree();
usage(diff_cache_usage);
if (!cached) {
setup_work_tree();
- if (read_cache_preload(
rev.diffopt.pathspec.raw
) < 0) {
+ if (read_cache_preload(
&rev.diffopt.pathspec
) < 0) {
perror("read_cache_preload");
return -1;
}
perror("read_cache_preload");
return -1;
}
diff --git
a/builtin/diff.c
b/builtin/diff.c
index 6bb41aff5d5ed8729373a654d509685c776dc069..bb84ba0e4694a6ef2cda7898ec9c61fa80bf74ae 100644
(file)
--- a/
builtin/diff.c
+++ b/
builtin/diff.c
@@
-140,7
+140,7
@@
static int builtin_diff_index(struct rev_info *revs,
usage(builtin_diff_usage);
if (!cached) {
setup_work_tree();
usage(builtin_diff_usage);
if (!cached) {
setup_work_tree();
- if (read_cache_preload(
revs->diffopt.pathspec.raw
) < 0) {
+ if (read_cache_preload(
&revs->diffopt.pathspec
) < 0) {
perror("read_cache_preload");
return -1;
}
perror("read_cache_preload");
return -1;
}
@@
-242,7
+242,7
@@
static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv
revs->combine_merges = revs->dense_combined_merges = 1;
setup_work_tree();
revs->combine_merges = revs->dense_combined_merges = 1;
setup_work_tree();
- if (read_cache_preload(
revs->diffopt.pathspec.raw
) < 0) {
+ if (read_cache_preload(
&revs->diffopt.pathspec
) < 0) {
perror("read_cache_preload");
return -1;
}
perror("read_cache_preload");
return -1;
}
diff --git
a/cache.h
b/cache.h
index fd0a6f8f8375a02e40764b15fb28ce7eea187a74..03705462c4a3a2b47fad38cb7f1279cdfb4a335f 100644
(file)
--- a/
cache.h
+++ b/
cache.h
@@
-449,7
+449,7
@@
extern int init_db(const char *template_dir, unsigned int flags);
/* Initialize and use the cache information */
extern int read_index(struct index_state *);
/* Initialize and use the cache information */
extern int read_index(struct index_state *);
-extern int read_index_preload(struct index_state *, const
char *
*pathspec);
+extern int read_index_preload(struct index_state *, const
struct pathspec
*pathspec);
extern int read_index_from(struct index_state *, const char *path);
extern int is_index_unborn(struct index_state *);
extern int read_index_unmerged(struct index_state *);
extern int read_index_from(struct index_state *, const char *path);
extern int is_index_unborn(struct index_state *);
extern int read_index_unmerged(struct index_state *);
diff --git
a/preload-index.c
b/preload-index.c
index cddfffab9a8fddc77cc307ae738437a2f2bef739..8c44ceb2c715936b314fc10a7aae3dfb44172327 100644
(file)
--- a/
preload-index.c
+++ b/
preload-index.c
@@
-5,7
+5,8
@@
#include "pathspec.h"
#ifdef NO_PTHREADS
#include "pathspec.h"
#ifdef NO_PTHREADS
-static void preload_index(struct index_state *index, const char **pathspec)
+static void preload_index(struct index_state *index,
+ const struct pathspec *pathspec)
{
; /* nothing */
}
{
; /* nothing */
}
@@
-25,7
+26,7
@@
static void preload_index(struct index_state *index, const char **pathspec)
struct thread_data {
pthread_t pthread;
struct index_state *index;
struct thread_data {
pthread_t pthread;
struct index_state *index;
-
const char **
pathspec;
+
struct pathspec
pathspec;
int offset, nr;
};
int offset, nr;
};
@@
-36,9
+37,7
@@
static void *preload_thread(void *_data)
struct index_state *index = p->index;
struct cache_entry **cep = index->cache + p->offset;
struct cache_def cache;
struct index_state *index = p->index;
struct cache_entry **cep = index->cache + p->offset;
struct cache_def cache;
- struct pathspec pathspec;
- init_pathspec(&pathspec, p->pathspec);
memset(&cache, 0, sizeof(cache));
nr = p->nr;
if (nr + p->offset > index->cache_nr)
memset(&cache, 0, sizeof(cache));
nr = p->nr;
if (nr + p->offset > index->cache_nr)
@@
-54,7
+53,7
@@
static void *preload_thread(void *_data)
continue;
if (ce_uptodate(ce))
continue;
continue;
if (ce_uptodate(ce))
continue;
- if (!ce_path_match(ce, &pathspec))
+ if (!ce_path_match(ce, &p
->p
athspec))
continue;
if (threaded_has_symlink_leading_path(&cache, ce->name, ce_namelen(ce)))
continue;
continue;
if (threaded_has_symlink_leading_path(&cache, ce->name, ce_namelen(ce)))
continue;
@@
-64,11
+63,11
@@
static void *preload_thread(void *_data)
continue;
ce_mark_uptodate(ce);
} while (--nr > 0);
continue;
ce_mark_uptodate(ce);
} while (--nr > 0);
- free_pathspec(&pathspec);
return NULL;
}
return NULL;
}
-static void preload_index(struct index_state *index, const char **pathspec)
+static void preload_index(struct index_state *index,
+ const struct pathspec *pathspec)
{
int threads, i, work, offset;
struct thread_data data[MAX_PARALLEL];
{
int threads, i, work, offset;
struct thread_data data[MAX_PARALLEL];
@@
-83,10
+82,12
@@
static void preload_index(struct index_state *index, const char **pathspec)
threads = MAX_PARALLEL;
offset = 0;
work = DIV_ROUND_UP(index->cache_nr, threads);
threads = MAX_PARALLEL;
offset = 0;
work = DIV_ROUND_UP(index->cache_nr, threads);
+ memset(&data, 0, sizeof(data));
for (i = 0; i < threads; i++) {
struct thread_data *p = data+i;
p->index = index;
for (i = 0; i < threads; i++) {
struct thread_data *p = data+i;
p->index = index;
- p->pathspec = pathspec;
+ if (pathspec)
+ copy_pathspec(&p->pathspec, pathspec);
p->offset = offset;
p->nr = work;
offset += work;
p->offset = offset;
p->nr = work;
offset += work;
@@
-101,7
+102,8
@@
static void preload_index(struct index_state *index, const char **pathspec)
}
#endif
}
#endif
-int read_index_preload(struct index_state *index, const char **pathspec)
+int read_index_preload(struct index_state *index,
+ const struct pathspec *pathspec)
{
int retval = read_index(index);
{
int retval = read_index(index);