Merge branch 'master' into next
* master: checkout: use --aggressive when running a 3-way merge (-m). revert/cherry-pick: use aggressive merge. read-cache.c: use xcalloc() not calloc() apply: fix infinite loop with multiple patches with --indexmaint
commit
7278a29a27
18
apply.c
18
apply.c
|
@ -21,6 +21,7 @@
|
||||||
//
|
//
|
||||||
static const char *prefix;
|
static const char *prefix;
|
||||||
static int prefix_length = -1;
|
static int prefix_length = -1;
|
||||||
|
static int newfd = -1;
|
||||||
|
|
||||||
static int p_value = 1;
|
static int p_value = 1;
|
||||||
static int allow_binary_replacement = 0;
|
static int allow_binary_replacement = 0;
|
||||||
|
@ -2051,7 +2052,6 @@ static int use_patch(struct patch *p)
|
||||||
|
|
||||||
static int apply_patch(int fd, const char *filename)
|
static int apply_patch(int fd, const char *filename)
|
||||||
{
|
{
|
||||||
int newfd;
|
|
||||||
unsigned long offset, size;
|
unsigned long offset, size;
|
||||||
char *buffer = read_patch_file(fd, &size);
|
char *buffer = read_patch_file(fd, &size);
|
||||||
struct patch *list = NULL, **listp = &list;
|
struct patch *list = NULL, **listp = &list;
|
||||||
|
@ -2082,12 +2082,11 @@ static int apply_patch(int fd, const char *filename)
|
||||||
size -= nr;
|
size -= nr;
|
||||||
}
|
}
|
||||||
|
|
||||||
newfd = -1;
|
|
||||||
if (whitespace_error && (new_whitespace == error_on_whitespace))
|
if (whitespace_error && (new_whitespace == error_on_whitespace))
|
||||||
apply = 0;
|
apply = 0;
|
||||||
|
|
||||||
write_index = check_index && apply;
|
write_index = check_index && apply;
|
||||||
if (write_index)
|
if (write_index && newfd < 0)
|
||||||
newfd = hold_index_file_for_update(&cache_file, get_index_file());
|
newfd = hold_index_file_for_update(&cache_file, get_index_file());
|
||||||
if (check_index) {
|
if (check_index) {
|
||||||
if (read_cache() < 0)
|
if (read_cache() < 0)
|
||||||
|
@ -2100,12 +2099,6 @@ static int apply_patch(int fd, const char *filename)
|
||||||
if (apply)
|
if (apply)
|
||||||
write_out_results(list, skipped_patch);
|
write_out_results(list, skipped_patch);
|
||||||
|
|
||||||
if (write_index) {
|
|
||||||
if (write_cache(newfd, active_cache, active_nr) ||
|
|
||||||
commit_index_file(&cache_file))
|
|
||||||
die("Unable to write new cachefile");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (show_index_info)
|
if (show_index_info)
|
||||||
show_index_list(list);
|
show_index_list(list);
|
||||||
|
|
||||||
|
@ -2264,5 +2257,12 @@ int main(int argc, char **argv)
|
||||||
whitespace_error == 1 ? "" : "s",
|
whitespace_error == 1 ? "" : "s",
|
||||||
whitespace_error == 1 ? "s" : "");
|
whitespace_error == 1 ? "s" : "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (write_index) {
|
||||||
|
if (write_cache(newfd, active_cache, active_nr) ||
|
||||||
|
commit_index_file(&cache_file))
|
||||||
|
die("Unable to write new cachefile");
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,7 +144,7 @@ else
|
||||||
work=`git write-tree` &&
|
work=`git write-tree` &&
|
||||||
git read-tree --reset $new &&
|
git read-tree --reset $new &&
|
||||||
git checkout-index -f -u -q -a &&
|
git checkout-index -f -u -q -a &&
|
||||||
git read-tree -m -u $old $new $work || exit
|
git read-tree -m -u --aggressive $old $new $work || exit
|
||||||
|
|
||||||
if result=`git write-tree 2>/dev/null`
|
if result=`git write-tree 2>/dev/null`
|
||||||
then
|
then
|
||||||
|
|
|
@ -137,7 +137,7 @@ esac >.msg
|
||||||
# $prev and $commit on top of us (when cherry-picking or replaying).
|
# $prev and $commit on top of us (when cherry-picking or replaying).
|
||||||
|
|
||||||
echo >&2 "First trying simple merge strategy to $me."
|
echo >&2 "First trying simple merge strategy to $me."
|
||||||
git-read-tree -m -u $base $head $next &&
|
git-read-tree -m -u --aggressive $base $head $next &&
|
||||||
result=$(git-write-tree 2>/dev/null) || {
|
result=$(git-write-tree 2>/dev/null) || {
|
||||||
echo >&2 "Simple $me fails; trying Automatic $me."
|
echo >&2 "Simple $me fails; trying Automatic $me."
|
||||||
git-merge-index -o git-merge-one-file -a || {
|
git-merge-index -o git-merge-one-file -a || {
|
||||||
|
|
|
@ -583,7 +583,7 @@ int read_cache(void)
|
||||||
|
|
||||||
active_nr = ntohl(hdr->hdr_entries);
|
active_nr = ntohl(hdr->hdr_entries);
|
||||||
active_alloc = alloc_nr(active_nr);
|
active_alloc = alloc_nr(active_nr);
|
||||||
active_cache = calloc(active_alloc, sizeof(struct cache_entry *));
|
active_cache = xcalloc(active_alloc, sizeof(struct cache_entry *));
|
||||||
|
|
||||||
offset = sizeof(*hdr);
|
offset = sizeof(*hdr);
|
||||||
for (i = 0; i < active_nr; i++) {
|
for (i = 0; i < active_nr; i++) {
|
||||||
|
|
Loading…
Reference in New Issue