Merge part of jc/portable branch
This commit is contained in:
25
Makefile
25
Makefile
@ -55,6 +55,11 @@ all:
|
|||||||
#
|
#
|
||||||
# Define NO_ICONV if your libc does not properly support iconv.
|
# Define NO_ICONV if your libc does not properly support iconv.
|
||||||
#
|
#
|
||||||
|
# Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
|
||||||
|
# a missing newline at the end of the file.
|
||||||
|
#
|
||||||
|
# Define NO_PYTHON if you want to loose all benefits of the recursive merge.
|
||||||
|
#
|
||||||
# Define COLLISION_CHECK below if you believe that SHA1's
|
# Define COLLISION_CHECK below if you believe that SHA1's
|
||||||
# 1461501637330902918203684832716283019655932542976 hashes do not give you
|
# 1461501637330902918203684832716283019655932542976 hashes do not give you
|
||||||
# sufficient guarantee that no collisions between objects will ever happen.
|
# sufficient guarantee that no collisions between objects will ever happen.
|
||||||
@ -273,6 +278,16 @@ ifeq ($(uname_S),AIX)
|
|||||||
NO_STRCASESTR=YesPlease
|
NO_STRCASESTR=YesPlease
|
||||||
NEEDS_LIBICONV=YesPlease
|
NEEDS_LIBICONV=YesPlease
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(uname_S),IRIX64)
|
||||||
|
NO_IPV6=YesPlease
|
||||||
|
NO_SETENV=YesPlease
|
||||||
|
NO_STRCASESTR=YesPlease
|
||||||
|
NO_SOCKADDR_STORAGE=YesPlease
|
||||||
|
SHELL_PATH=/usr/gnu/bin/bash
|
||||||
|
ALL_CFLAGS += -DPATH_MAX=1024
|
||||||
|
# for now, build 32-bit version
|
||||||
|
ALL_LDFLAGS += -L/usr/lib32
|
||||||
|
endif
|
||||||
ifneq (,$(findstring arm,$(uname_M)))
|
ifneq (,$(findstring arm,$(uname_M)))
|
||||||
ARM_SHA1 = YesPlease
|
ARM_SHA1 = YesPlease
|
||||||
endif
|
endif
|
||||||
@ -403,6 +418,9 @@ else
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
ifdef NO_ACCURATE_DIFF
|
||||||
|
ALL_CFLAGS += -DNO_ACCURATE_DIFF
|
||||||
|
endif
|
||||||
|
|
||||||
ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) $(COMPAT_CFLAGS)
|
ALL_CFLAGS += -DSHA1_HEADER=$(call shellquote,$(SHA1_HEADER)) $(COMPAT_CFLAGS)
|
||||||
LIB_OBJS += $(COMPAT_OBJS)
|
LIB_OBJS += $(COMPAT_OBJS)
|
||||||
@ -426,6 +444,7 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
|
|||||||
sed -e '1s|#!.*/sh|#!$(call shq,$(SHELL_PATH))|' \
|
sed -e '1s|#!.*/sh|#!$(call shq,$(SHELL_PATH))|' \
|
||||||
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
|
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
|
||||||
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
|
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
|
||||||
|
-e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \
|
||||||
$@.sh >$@
|
$@.sh >$@
|
||||||
chmod +x $@
|
chmod +x $@
|
||||||
|
|
||||||
@ -505,6 +524,12 @@ doc:
|
|||||||
|
|
||||||
### Testing rules
|
### Testing rules
|
||||||
|
|
||||||
|
# GNU make supports exporting all variables by "export" without parameters.
|
||||||
|
# However, the environment gets quite big, and some programs have problems
|
||||||
|
# with that.
|
||||||
|
|
||||||
|
export NO_PYTHON
|
||||||
|
|
||||||
test: all
|
test: all
|
||||||
$(MAKE) -C t/ all
|
$(MAKE) -C t/ all
|
||||||
|
|
||||||
|
8
apply.c
8
apply.c
@ -1142,6 +1142,14 @@ static int apply_one_fragment(struct buffer_desc *desc, struct fragment *frag)
|
|||||||
size -= len;
|
size -= len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef NO_ACCURATE_DIFF
|
||||||
|
if (oldsize > 0 && old[oldsize - 1] == '\n' &&
|
||||||
|
newsize > 0 && new[newsize - 1] == '\n') {
|
||||||
|
oldsize--;
|
||||||
|
newsize--;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
offset = find_offset(buf, desc->size, old, oldsize, frag->newpos);
|
offset = find_offset(buf, desc->size, old, oldsize, frag->newpos);
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
int diff = newsize - oldsize;
|
int diff = newsize - oldsize;
|
||||||
|
@ -154,7 +154,7 @@ yes,yes)
|
|||||||
fi &&
|
fi &&
|
||||||
rm -f "$GIT_DIR/objects/sample" &&
|
rm -f "$GIT_DIR/objects/sample" &&
|
||||||
cd "$repo" &&
|
cd "$repo" &&
|
||||||
find objects -depth -print | cpio -puamd$l "$GIT_DIR/" || exit 1
|
find objects -depth -print | cpio -pumd$l "$GIT_DIR/" || exit 1
|
||||||
;;
|
;;
|
||||||
yes)
|
yes)
|
||||||
mkdir -p "$GIT_DIR/objects/info"
|
mkdir -p "$GIT_DIR/objects/info"
|
||||||
|
@ -13,6 +13,10 @@ LF='
|
|||||||
all_strategies='recursive octopus resolve stupid ours'
|
all_strategies='recursive octopus resolve stupid ours'
|
||||||
default_strategies='recursive'
|
default_strategies='recursive'
|
||||||
use_strategies=
|
use_strategies=
|
||||||
|
if test "@@NO_PYTHON@@"; then
|
||||||
|
all_strategies='resolve octopus stupid ours'
|
||||||
|
default_strategies='resolve'
|
||||||
|
fi
|
||||||
|
|
||||||
dropsave() {
|
dropsave() {
|
||||||
rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \
|
rm -f -- "$GIT_DIR/MERGE_HEAD" "$GIT_DIR/MERGE_MSG" \
|
||||||
|
@ -15,6 +15,10 @@ shellquote = '$(call shq,$(1))'
|
|||||||
|
|
||||||
T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
|
T = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)
|
||||||
|
|
||||||
|
ifdef NO_PYTHON
|
||||||
|
GIT_TEST_OPTS += --no-python
|
||||||
|
endif
|
||||||
|
|
||||||
all: $(T) clean
|
all: $(T) clean
|
||||||
|
|
||||||
$(T):
|
$(T):
|
||||||
|
@ -42,7 +42,7 @@ fi
|
|||||||
|
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
"$PYTHON" -c 'import subprocess' || {
|
test "$no_python" || "$PYTHON" -c 'import subprocess' || {
|
||||||
echo >&2 'Your python seem to lack "subprocess" module.
|
echo >&2 'Your python seem to lack "subprocess" module.
|
||||||
Please check INSTALL document.'
|
Please check INSTALL document.'
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -10,6 +10,12 @@
|
|||||||
test_description='Test criss-cross merge'
|
test_description='Test criss-cross merge'
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if test "$no_python"; then
|
||||||
|
echo "Skipping: no python => no recursive merge"
|
||||||
|
test_done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success 'prepare repository' \
|
test_expect_success 'prepare repository' \
|
||||||
'echo "1
|
'echo "1
|
||||||
2
|
2
|
||||||
|
@ -3,6 +3,12 @@
|
|||||||
test_description='Merge-recursive merging renames'
|
test_description='Merge-recursive merging renames'
|
||||||
. ./test-lib.sh
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
if test "$no_python"; then
|
||||||
|
echo "Skipping: no python => no recursive merge"
|
||||||
|
test_done
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
test_expect_success setup \
|
test_expect_success setup \
|
||||||
'
|
'
|
||||||
cat >A <<\EOF &&
|
cat >A <<\EOF &&
|
||||||
|
@ -63,6 +63,8 @@ do
|
|||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
-v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
|
-v|--v|--ve|--ver|--verb|--verbo|--verbos|--verbose)
|
||||||
verbose=t; shift ;;
|
verbose=t; shift ;;
|
||||||
|
--no-python)
|
||||||
|
no_python=t; shift ;;
|
||||||
*)
|
*)
|
||||||
break ;;
|
break ;;
|
||||||
esac
|
esac
|
||||||
|
Reference in New Issue
Block a user