projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Provide a way to flush git-diff-tree's output
[git.git]
/
read-tree.c
diff --git
a/read-tree.c
b/read-tree.c
index
26f4f7e
..
e16e91b
100644
(file)
--- a/
read-tree.c
+++ b/
read-tree.c
@@
-12,6
+12,7
@@
#include <sys/time.h>
#include <signal.h>
#include <sys/time.h>
#include <signal.h>
+static int reset = 0;
static int merge = 0;
static int update = 0;
static int index_only = 0;
static int merge = 0;
static int update = 0;
static int index_only = 0;
@@
-416,6
+417,10
@@
static void verify_uptodate(struct cache_entry *ce)
return;
errno = 0;
}
return;
errno = 0;
}
+ if (reset) {
+ ce->ce_flags |= htons(CE_UPDATE);
+ return;
+ }
if (errno == ENOENT)
return;
die("Entry '%s' not uptodate. Cannot merge.", ce->name);
if (errno == ENOENT)
return;
die("Entry '%s' not uptodate. Cannot merge.", ce->name);
@@
-684,8
+689,14
@@
static int oneway_merge(struct cache_entry **src)
merge_size);
if (!a)
merge_size);
if (!a)
- return
0
;
+ return
deleted_entry(old, NULL)
;
if (old && same(old, a)) {
if (old && same(old, a)) {
+ if (reset) {
+ struct stat st;
+ if (lstat(old->name, &st) ||
+ ce_match_stat(old, &st, 1))
+ old->ce_flags |= htons(CE_UPDATE);
+ }
return keep_entry(old);
}
return merged_entry(a, NULL);
return keep_entry(old);
}
return merged_entry(a, NULL);
@@
-719,7
+730,7
@@
static struct cache_file cache_file;
int main(int argc, char **argv)
{
int main(int argc, char **argv)
{
- int i, newfd,
reset,
stage = 0;
+ int i, newfd, stage = 0;
unsigned char sha1[20];
merge_fn_t fn = NULL;
unsigned char sha1[20];
merge_fn_t fn = NULL;
@@
-794,8
+805,8
@@
int main(int argc, char **argv)
if (1 < index_only + update)
usage(read_tree_usage);
if (1 < index_only + update)
usage(read_tree_usage);
- if (get_sha1(arg, sha1)
< 0
)
-
usage(read_tree_usage
);
+ if (get_sha1(arg, sha1))
+
die("Not a valid object name %s", arg
);
if (list_tree(sha1) < 0)
die("failed to unpack tree object %s", arg);
stage++;
if (list_tree(sha1) < 0)
die("failed to unpack tree object %s", arg);
stage++;