mirror of
https://github.com/git/git.git
synced 2024-11-17 22:44:49 +01:00
Merge branch 'lt/oneway' into next
* lt/oneway: read-tree --reset -u fix.
This commit is contained in:
commit
f6fb133b84
1 changed files with 12 additions and 4 deletions
16
read-tree.c
16
read-tree.c
|
@ -13,6 +13,7 @@
|
|||
#include <sys/time.h>
|
||||
#include <signal.h>
|
||||
|
||||
static int reset = 0;
|
||||
static int merge = 0;
|
||||
static int update = 0;
|
||||
static int index_only = 0;
|
||||
|
@ -419,6 +420,10 @@ static void verify_uptodate(struct cache_entry *ce)
|
|||
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);
|
||||
|
@ -723,9 +728,12 @@ static int oneway_merge(struct cache_entry **src)
|
|||
return deleted_entry(old, NULL);
|
||||
}
|
||||
if (old && same(old, a)) {
|
||||
struct stat st;
|
||||
if (lstat(old->name, &st) || ce_match_stat(old, &st, 1))
|
||||
old->ce_flags |= htons(CE_UPDATE);
|
||||
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);
|
||||
|
@ -793,7 +801,7 @@ static struct cache_file cache_file;
|
|||
|
||||
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;
|
||||
|
||||
|
|
Loading…
Reference in a new issue